Pro Yearly is on sale from $80 to $50! »

Entendendo seu usuário com Intel Context Sensing

Entendendo seu usuário com Intel Context Sensing

Palestra ministrada na edição 2015 do Intel Software Day (Salvador) e na edição #27 do Android Meetup em São Paulo

D4b7a3e2ed10f86e0b52498713ba2601?s=128

Ubiratan Soares

June 12, 2015
Tweet

Transcript

  1. ENTENDENDO SEU USUÁRIO COM INTEL CONTEXT SENSING Intel Software Day

    Junho de 2015
  2. @ubiratanfsoares +UbiratanSoares ubiratansoares gdgsp.org ubiratansoares.github.io

  3. MOTIVAÇÃO Em um cenário no qual o entendimento de cada

    usuário singular é cada vez mais importante, como obter dados de contexto e executar ações de forma automatizada ?
  4. INTEL CONTEXT SENSING Framework de alto nível no topo da

    API do Android para obtenção de dados contextuais do usuário, bem como aprendizado e ações com base nesse contexto
  5. Android App Context Sensing Historical Context Context States Intel Cloud

    Services
  6. CONTEXT HISTORY Dados armazenados localmente no aparelho, com possibilidade de

    sincronização na nuvem, que podem ser capturados pelos mais diversos meios e utilizados para aprendizado do usuário posteriormente
  7. BUILT-IN HISTORY ITEMS Location History Location Visits User Routes User

    Searches
  8. CONTEXT STATES Dados obtidos em um determinado instante, e que

    apenas fazem sentido se consumidos em um curto período de tempo. Esses estados podem ser “sentidos" pela aplicação, que será notificada periodicamente sobre alterações nesse contexto
  9. BUILT-IN CONTEXT STATES Activity Recogition Audio Classification Pedometer Location Installed

    Applications Running Applications Battery Calendar Call Contacts Device Information Music Network Information Device Position Motion Detectors …
  10. DEMO

  11. CONTEXT STATE DETAILS Item Identifider ContextType.AUDIO State Information Audio Classification

    (Speech, Motion, Mechanical, Music) Probability Sensing Settings Mode (Fast, Every Minute, OnChange) Continuous Flag (Pause / Dont Pause on Sleep) Android Permissions android.permission.RECORD_AUDIO intel.aware.permission.ACCESS_AWARESERVICE Cloud Services Scopes context:device:sensor (to read from cloud services) context:post:device:sensor (to push to cloud services)
  12. MAIS SOBRE CONTEXT STATES Existem vários estados de contexto que

    são cloud-powered (ex. condições do tempo) É possível criar estados de contexto customizados e consumí-los Aparelhos Intel são capazes de agregar mais informação para determinados contextos
  13. RULES ENGINE Motor de regras para avaliar dados de acordo

    com o contexto, disparando ações de acordo com o resultado do avaliação
  14. “Quando eu estou dirigindo, e eu perdi uma ligação, enviar

    um SMS dizendo que eu ligo depois” Rules Engine
  15. RuleManager ruleManager = new RuleManager(); ruleManager.setOperationMode(RULE_OPERATION_MODE.FAST); List<IRuleAction> onTrueActionsList = new

    ArrayList<IRuleAction>(); onTrueActionsList.add(new IRuleAction() { public void execute(Context context) { Log.i("Info", "You made 30 steps!"); }}); String ruleName = "stepsAdvice"; String ruleDescription = "Advice me when I do 30 or more steps."; String condition = "Pedometer.steps >= 30"; Rule rule = new Rule(ruleName, ruleDescription, condition, onTrueActionsList, null); rule.activate();
  16. RULES LEARNER Motor de inferência para aprender novas regras a

    partir de estados de contexto : machine learning on-device
  17. Rules Learner Suggested Rule Suggested Rule User Behavior

  18. RuleLearner ruleLearner = new RuleLearner( "My Learned Rule”, "When the

    WiFi status changes, is because [?] happens.", new FullLikelyHood( 0.33f, 10, Action.WifiChange, Arrays.asList("Place.type", “Date.partOfWeek")) ); ruleManager.setOperationMode(RULE_OPERATION_MODE.FAST);
  19. ruleLearner.start(); List<SuggestedRule> suggestedRules = ruleLearner.getSuggestedRules(); if (suggestedRules.size() == 0) {

    Log.i("APP", "No suggested rules yet..."); } else { for (SuggestedRule rule : suggestedRules) { StringBuilder sb = new StringBuilder(); sb.append("Action Value: " + rule.getActionValue()); for (Entry<String, String> e : rule.getConditionValues().entrySet()) { sb.append("\n> When: " + e.getKey() + " --> " + e.getValue()); } Log.i("APP", "Suggested Rule:\n" + sb.toString()); } } ruleLearner.stop();
  20. SAIBA MAIS http://bit.ly/context-sdk-api https://github.com/ubiratansoares/context-sdk-playground https://software.intel.com/en-us/context-sensing-sdk http://bit.ly/context-sdk-get-started http://bit.ly/context-rules-engine http://bit.ly/context-rules-learner

  21. OBRIGADO