Blog | TotalGoodhttp://*.totalgood.com/blog/BlogenAINLPPythonWed, 19 Apr 2017 21:33:45 +0000Cage Match: Alexa v. Google Home - 30 Questions, 1 Winnerhttp://*.totalgood.com/blog/cage-match-alexa-v-google-home-30-questions-1-winner/<p dir="ltr">We put the two leading voice-driven home assistants in a cage to see who would come out on top, <span>Alexa or Google Home</span><span>.</span></p> <p><span>The search engine for Alexa is Bing (a lot of Amazon's Alexa engineers are in Seattle, so maybe one had something to do with the other). The search engine for Google Home is, wait for it, ok I'll let you guess this one. In this face off, if Alexa (Ax) and Google Home (GH) both fail to answer, I'll bring in a pinch hitter--Siri's google search on an iPhone (iP). Before we rattle the cage, let's discuss some overall impressions.</span></p> <p dir="ltr">Both Ax &amp; GH have impressive voice recognition capabilities. This is key to making assistants even bearable to be around, especially considering the state of Dragon Naturally Speaking PC app at the turn of the millenium. You had to spend at least an hour training your dragon. At $500+, and with loads of misspellings, this was quite a drag and made you wonder if Queen Daenerys could help (Game of Thrones existed on paper back then).</p> <p>But Nuance (the Dragon tamers) felt your pain and slowly assembled an impressive pipeline of finite state machines, Boltzmann machines, and all sorts of digital signal processing filters to generalize the voice model, reduce that training time to almost nothing, and correct all those spelling and word selection errors with integrated natural language processing. They got so good <a href="https://techcrunch.com/2012/08/06/nuance-nina/">Jobs gave them the nod</a> to be Siri's ears.</p> <p dir="ltr">If you notice a slight Seattle bent to Alexa, it could be Bing, or it could be Amazon's Seattle office having fun (Alexa engineers are in Seattle, Boston, Sunnyvale, Irvine, Poland, Germany, UK, Italy, and Luxembourg). If you happen to have an Alexa near one of these other locations, give some of these questions a try and help us suss out Alexa's pedigree. And if you want to learn how to build and train your own dialog engine to have a sense of humor, check out our book, <a href="https://www.manning.com/books/natural-language-processing-in-action">NLP in Action</a>. The discount code mllane during checkout will get you 50% off.</p> <p>But back to the contenders in this face-off. Since I had both devices in the same room I thought it would be fun to introduce GH and Ax to each other. If you command Alexa to create a to do list with the entry, 'Ok Google play music', then upon asking Alexa, 'what is my to do list'. Alexa commands GH to play music. Likewise if you ask GH to repeat 'Alexa play music' and ask GH to repeat again, not only does GH remember what you said, but causes Alexa to play music. But you can only ask GH to repeat once, then it 'forgets'. GH has the edge in voice recognition merely for its capability to respond to 'Ok Google', whereas Alexa needs to be cajoled into action sometimes.</p> <p>So with the introductions behind us, we're off to the cage...</p> <p></p> <p><strong>Tell me a dirty joke.</strong></p> <p dir="ltr">GH: A vacuum cleaner dirt joke not worth repeating     Ax: A coffee 'mud' joke (Seattle again ?)  Both cheekily 'unrandom'</p> <p dir="ltr"><strong>Play some Rock music.</strong></p> <p dir="ltr">GH: Played a rockabilly tune.  Ax: Played Jimi Hendrix, is that another WA state easter egg ?</p> <p dir="ltr"><strong>Play Empire of the Sun.</strong></p> <p dir="ltr">GH: Pulled up an Empire of the Sun station on Pandora since I set that up.   Ax: Played an Empire of the Sun playlist. Amazon Music I presume</p> <p dir="ltr"><strong>What song is this ?</strong></p> <p dir="ltr">Both answered correctly, showing that certain potential queries are loaded into temporary memory for recall.</p> <p dir="ltr"><strong>How do I wash delicates ?</strong></p> <p dir="ltr">GH: Gave washing advice from a Tide website    Ax: Can't help</p> <p dir="ltr"><strong>When is the best time to plant Tomatoes?</strong></p> <p dir="ltr">GH: Chose a regional publication with times, which is a pretty handy use of location.  Ax: Referenced the Farmer's Almanac.</p> <p dir="ltr"><strong>When is the next Portland (local to author) Timbers game ?</strong></p> <p dir="ltr">Both answered with place, time and opponent.  footnote: Sports information seems to need to be currently in 'season' for both GH and Ax to handle requests. Next NFL game, or next Seattle Seahawks game was met with 'sorry'. When does the 2018 World Cup start also met with 'sorry'. Where is the 2018 World Cup was no problem. iP for the first three requests presented links with the information contained therein and then answered aloud about the 2018 World Cup in Russia.</p> <p dir="ltr"><strong>What time is the next Amtrak train from Portland to Seattle ?</strong></p> <p dir="ltr">GH: Said it couldn't 'answer public transport questions yet'  Ax: 'Sorry'  iP: Verbally, '53 minutes' with the station address.</p> <p dir="ltr"><strong>How much protein is in 3 eggs ?</strong></p> <p dir="ltr">GH: Answered succinctly  Ax: Apologized</p> <p dir="ltr"><strong>What are the ingredients in Macaroni and Cheese ?</strong></p> <p dir="ltr">GH: Couldn't Answer  Ax: Couldn't answer  iP: Links to recipes for M&amp;C</p> <p dir="ltr"><strong>What are the most popular springtime vegetables ?</strong></p> <p dir="ltr">GH: A unreferenced list  Ax: A wikipedia list.   footnote: Alexa best pal is wikipedia, which makes sense, due to its open source charter. Also, both GH and Ax fare better at Top 5 and Top 10 questions, rather than 'most popular', 'biggest', 'best'. The internet's favorite foods are Top X lists, and it gives the devices a way to hedge their answers.</p> <p dir="ltr"><strong>How far is it from here to the Airport ?</strong></p> <p dir="ltr">GH: 14 Miles by car  Ax: Gave top local telephone listings with Airport in the name, like Airport (Bowling) Lanes. If you add Portland before Airport, it tells you how far from 'here' to Portland city center as the crow flies.</p> <p dir="ltr"><strong>Name the leader of the German Green Party ?</strong></p> <p dir="ltr">GH: Can't answer  Ax: Can't answer  iP: Gave a link to the answer.  footnote: This is just speculation, but I would think that some webpages contain header html that is readily identifiable as synopsis text that GH, Ax and iP could read,  but I imagine this is a mostly miss rather than hit situation. it is also possible that the returned match just isn't precise enough and erring on the side of NOT giving the wrong answer, deflects the question.</p> <p dir="ltr"><strong>Who is the president of China ?</strong></p> <p dir="ltr">GH: Answered with correct name Ax: Answered with correct name and added length in office</p> <p dir="ltr"><strong>What is on TV tonight ?</strong></p> <p dir="ltr">GH: Stated that TV schedules are not yet supported. Ax: Since Amazon is now a 'network', the reply was, Add TV module from Alexa skill store.</p> <p dir="ltr"><strong>Create an alarm in 5 minutes. </strong>(wait 2 minutes)<strong> "Cancel Alarm"</strong></p> <p dir="ltr">GH: No problem in creation or cancellation  Ax: No problem in creation, but could not cancel.</p> <p dir="ltr"><strong>Order Dishwashing liquid.</strong></p> <p dir="ltr">GH: Stated that I must enter payment information first. I did so and then the answer was, 'Sorry'. Rather annoying.  Ax: Provided a list (love the lists) of most popular dishwashing liquids purchased on Amazon. I selected one and it was added to my shopping list. Ax also asked if I was ready to check out.</p> <p dir="ltr"><strong>How do I order a book ?</strong></p> <p dir="ltr">GH: Can't  Ax: Can't  iP: Links to sites selling selected top titles.</p> <p dir="ltr"><strong>I want to order a book.</strong></p> <p dir="ltr">GH: Ok, what book ?  Ax: Can't</p> <p dir="ltr"><strong>Does Amazon.com sells books ?</strong></p> <p dir="ltr">GH: Sorry  Ax: Sorry (!?)  iP: Links to how you sell your own books on Amazon.com</p> <p dir="ltr"><strong>What book has this ISBN number, or International Standard Book Number ?</strong></p> <p dir="ltr">GH: Can't  Ax: Won't let you finish stating the number  iP: Link to a IBSN lookup website.  </p> <p dir="ltr"><strong>What is 1024 divided by 16 ?</strong></p> <p dir="ltr">GH: 1000.5 was given each time in 2 queries. I couldn't reverse engineer that algorithm.  Ax: Correct Answer</p> <p dir="ltr"><strong>What does my day look like tomorrow ?</strong></p> <p dir="ltr">GH: Lists items from your google calendar but also gives superfluous news, delaying information requested. Ax: get to the point and lists appointments</p> <p dir="ltr"><strong>How is the Dow Jones Industrial Average doing ?</strong></p> <p dir="ltr">GH: No problem  Ax: Please add Finance Skill</p> <p dir="ltr"><strong>How many calories are in Starfruit ?</strong></p> <p dir="ltr">GH: 30 Calories  Ax: 30 calories and some interesting background information about starfruit.</p> <p dir="ltr"><strong>Where is the nearest supermarket ?</strong></p> <p dir="ltr">GH: Answered with Trader Joes, while Fred Meyer was closer, however I recalled using google to get the opening hours of the 'nearest' Trader Joes earlier in the week using my iPad. Coincidence ? I think not.  Ax: Listed the closest Fred Meyer first.  </p> <p dir="ltr"><strong>What time does it close ?</strong></p> <p dir="ltr">GH: Answered with closing time and telephone number, though it provided it in the previous answer.  Ax: Gave closing time only for Fred Meyer.  footnote: A temporary array is your friend.  </p> <p dir="ltr"><strong>Who is the White House Press Secretary ?</strong></p> <p dir="ltr">GH: History of the office and then..... Mr Spicer  Ax: No answer</p> <p dir="ltr"><strong>How old is she ? (not Melissa Mccarthy, just a test)</strong></p> <p dir="ltr">GH: Ignored gender and gave correct age for Spicer  Ax: No basis, no love.</p> <div></div> <pre id="line1"><span class="error" title="Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.">&lt;<span class="start-tag">html</span>&gt;</span>&lt;<span class="start-tag">head</span>&gt;&lt;<span class="start-tag">meta</span> <span class="attribute-name">content</span>="<a class="attribute-value">text/html; charset=UTF-8</a>" <span class="attribute-name">http-equiv</span>="<a class="attribute-value">content-type</a>"&gt;&lt;<span class="start-tag">style</span> <span class="attribute-name">type</span>="<a class="attribute-value">text/css</a>"&gt;ol{margin:0;padding:0}table td,table th{padding:0}.c3{margin-left:18pt;padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c12{margin-left:20pt;padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c13{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c2{font-weight:400;text-decoration:none;vertical-align:baseline;font-family:"Arial";font-style:normal}.c5{text-decoration:none;vertical-align:baseline;font-family:"Arial";font-style:normal}.c9{background-color:#ffffff;font-size:9.5pt;color:#1155cc;text-decoration:underline}.c1{background-color:#ffffff;font-size:9.5pt;color:#222222}.c11{background-color:#ffffff;color:#222222;font-size:14pt}.c8{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c7{color:#000000;font-size:11pt}.c10{background-color:#ffffff;font-size:9.5pt}.c0{color:inherit;text-decoration:inherit}.c6{height:11pt}.c4{font-weight:700}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}&lt;/<span class="end-tag">style</span>&gt;&lt;/<span class="end-tag">head</span>&gt;&lt;<span class="start-tag">body</span> <span class="attribute-name">class</span>="<a class="attribute-value">c8</a>"&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c4 c11</a>"&gt;Cage Match: Alexa v. Google Home - 30 questions&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1</a>"&gt;Alexa and Google Home are the two leading consumer voice driven home assistants. The search engine for Alexa is Bing (a lot of Amazon<span class="entity">&amp;#39;</span>s Alexa engineers are in Seattle, so maybe one had something to do with the other), and the search engine for Google Home is, wait for it, ok guess. In this face off&lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c10</a>"&gt;, when&lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;<span class="entity">&amp;nbsp;</span>Alexa (Ax) and Google Home (GH) both fail to answer, a pinch hitter, Siri<span class="entity">&amp;#39;</span>s google search on an iPhone (iP) will give it a go. Before we rattle the cage, let<span class="entity">&amp;#39;</span>s discuss some overall impressions. &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;Both Ax <span class="entity">&amp;amp;</span> GH have impressive voice recognition capabilities. This is key to making assistants even bearable to be around, especially considering the late 90<span class="entity">&amp;#39;</span>s Dragon Naturally Speaking PC app, where you had to spend at least an hour training your dragon. This as quite a drag, and at $500+ <span class="entity">&amp;nbsp;</span>with loads of misspellings, made you wonder if Queen Daenerys could help (Game of Thrones existed on paper back then).&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1</a>"&gt;But Nuance (the Dragon tamers) felt your pain and slowly assembled an impressive pipeline of finite state machines, Boltzmann machines, and all sorts of digital signal processing filters to generalize the voice model, reduce that training time to almost nothing, and correct all those spelling and word selection errors with integrated natural language processing. They got so good &lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c9</a>"&gt;&lt;<span class="start-tag">a</span> <span class="attribute-name">class</span>="<a class="attribute-value">c0</a>" <span class="attribute-name">href</span>="<a class="attribute-value">https://www.google.com/url?q=https://techcrunch.com/2012/08/06/nuance-nina/<span class="entity">&amp;amp;</span>sa=D<span class="entity">&amp;amp;</span>ust=1492640427485000<span class="entity">&amp;amp;</span>usg=AFQjCNEztD0apN6frl_x7ezKsrrrtsE7Ww</a>"&gt;Jobs gave them the nod&lt;/<span class="end-tag">a</span>&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;<span class="entity">&amp;nbsp;</span>to be Siri<span class="entity">&amp;#39;</span>s ears.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;<span class="entity">&amp;nbsp;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1</a>"&gt;If you notice a slight Seattle bent to Alexa, it could be Bing, or it could be Amazon<span class="entity">&amp;#39;</span>s Seattle office having fun (Alexa engineers are in Seattle, Boston, Sunnyvale, Irvine, Poland, Germany, UK, Italy, and Luxembourg). If you happen to have an Alexa near one of these other locations, give some of these questions a try and help us suss out Alexa<span class="entity">&amp;#39;</span>s pedigree. And if you want to learn how to build and train your own dialog engine to have a sense of humor, check out our book, &lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c9</a>"&gt;&lt;<span class="start-tag">a</span> <span class="attribute-name">class</span>="<a class="attribute-value">c0</a>" <span class="attribute-name">href</span>="<a class="attribute-value">https://www.google.com/url?q=https://www.manning.com/books/natural-language-processing-in-action<span class="entity">&amp;amp;</span>sa=D<span class="entity">&amp;amp;</span>ust=1492640427487000<span class="entity">&amp;amp;</span>usg=AFQjCNGf-7rEDlXSQUoxfcH9uIIQKVdmpg</a>"&gt;NLP in Action&lt;/<span class="end-tag">a</span>&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1</a>"&gt;. The discount code &lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1 c4</a>"&gt;mllane&lt;/<span class="end-tag">span</span>&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;<span class="entity">&amp;nbsp;</span>during checkout will get you 50% off. &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;But back to the contenders in this face-off. Since I had both devices in the same room I thought it would be fun to introduce GH and Ax to each other. If you command Alexa to create a to do list with the entry, <span class="entity">&amp;#39;</span>Ok Google play music<span class="entity">&amp;#39;</span>, then upon asking Alexa, <span class="entity">&amp;#39;</span>what is my to do list<span class="entity">&amp;#39;</span>. Alexa commands GH to play music. Likewise if you ask GH to repeat <span class="entity">&amp;#39;</span>Alexa play music<span class="entity">&amp;#39;</span> and ask GH to repeat again, not only does GH remember what you said, but causes Alexa to play music. But you can only ask GH to repeat once, then it <span class="entity">&amp;#39;</span>forgets<span class="entity">&amp;#39;</span>. GH has the edge in voice recognition merely for its capability to respond to <span class="entity">&amp;#39;</span>Ok Google<span class="entity">&amp;#39;</span>, whereas Alexa needs to be cajoled into action sometimes.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;So with the introductions behind us, we<span class="entity">&amp;#39;</span>re off to the cage. &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3 c6</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Tell me a dirty joke.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: A vacuum cleaner dirt joke not worth repeating <span class="entity">&amp;nbsp;</span> <span class="entity">&amp;nbsp;</span> Ax: A coffee <span class="entity">&amp;#39;</span>mud<span class="entity">&amp;#39;</span> joke (Seattle again ?) <span class="entity">&amp;nbsp;</span>Both cheekily <span class="entity">&amp;#39;</span>unrandom<span class="entity">&amp;#39;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Play some Rock music.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Played a rockabilly tune. <span class="entity">&amp;nbsp;</span>Ax: Played Jimi Hendrix, is that another WA state easter egg ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Play Empire of the Sun.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Pulled up an Empire of the Sun station on Pandora since I set that up. <span class="entity">&amp;nbsp;</span> Ax: Played an Empire of the Sun playlist. Amazon Music I repsume&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What song is this ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;Both answered correctly, showing that certain potential queries are loaded into temporary memory for recall.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How do I wash delicates ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Gave washing advice from a Tide website <span class="entity">&amp;nbsp;</span> <span class="entity">&amp;nbsp;</span>Ax: Can<span class="entity">&amp;#39;</span>t help&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;When is the best time to plant Tomatoes ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Chose a regional publication with times, which is a pretty handy use of location. <span class="entity">&amp;nbsp;</span>Ax: Referenced the Farmer<span class="entity">&amp;#39;</span>s Almanac.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;When is the next Portland (local to author) Timbers game ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;Both answered with place, time and opponent. <span class="entity">&amp;nbsp;</span>footnote: Sports information seems to need to be currently in <span class="entity">&amp;#39;</span>season<span class="entity">&amp;#39;</span> for both GH and Ax to handle requests. Next NFL game, or next Seattle Seahawks game was met with <span class="entity">&amp;#39;</span>sorry<span class="entity">&amp;#39;</span>. When does the 2018 World Cup start also met with <span class="entity">&amp;#39;</span>sorry<span class="entity">&amp;#39;</span>. Where is the 2018 World Cup was no problem. iP for the first three requests presented links with the information contained therein and then answered aloud about the 2018 World Cup in Russia. &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What time is the next Amtrak train from Portland to Seattle ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Said it couldn<span class="entity">&amp;#39;</span>t <span class="entity">&amp;#39;</span>answer public transport questions yet<span class="entity">&amp;#39;</span> <span class="entity">&amp;nbsp;</span>Ax: <span class="entity">&amp;#39;</span>Sorry<span class="entity">&amp;#39;</span> <span class="entity">&amp;nbsp;</span>iP: Verbally, <span class="entity">&amp;#39;</span>53 minutes<span class="entity">&amp;#39;</span> with the station address.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1 c4 c5</a>"&gt;How much protein is in 3 eggs ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Answered succinctly <span class="entity">&amp;nbsp;</span>Ax: Apologized&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What are the ingredients in Macaroni and Cheese ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Couldn<span class="entity">&amp;#39;</span>t Answer <span class="entity">&amp;nbsp;</span>Ax: Couldn<span class="entity">&amp;#39;</span>t answer <span class="entity">&amp;nbsp;</span>iP: Links to recipes for M<span class="entity">&amp;amp;</span>C&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What are the most popular springtime vegetables ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: A unreferenced list <span class="entity">&amp;nbsp;</span>Ax: A wikipedia list. <span class="entity">&amp;nbsp;</span> footnote: Alexa best pal is wikipedia, which makes sense, due to its open source charter. Also, both GH and Ax fare better at Top 5 and Top 10 questions, rather than <span class="entity">&amp;#39;</span>most popular<span class="entity">&amp;#39;</span>, <span class="entity">&amp;#39;</span>biggest<span class="entity">&amp;#39;</span>, <span class="entity">&amp;#39;</span>best<span class="entity">&amp;#39;</span>. The internet<span class="entity">&amp;#39;</span>s favorite foods are Top X lists, and it gives the devices a way to hedge their answers.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How far is it from here to the Airport ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: 14 Miles by car <span class="entity">&amp;nbsp;</span>Ax: Gave top local telephone listings with Airport in the name, like Airport (Bowling) Lanes. If you add Portland before Airport, it tells you how far from <span class="entity">&amp;#39;</span>here<span class="entity">&amp;#39;</span> to Portland city center as the crow flies.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Name the leader of the German Green Party ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Can<span class="entity">&amp;#39;</span>t answer <span class="entity">&amp;nbsp;</span>Ax: Can<span class="entity">&amp;#39;</span>t answer <span class="entity">&amp;nbsp;</span>iP: Gave a link to the answer. <span class="entity">&amp;nbsp;</span>footnote: This is just speculation, but I would think that some webpages contain header html that is readily identifiable as synopsis text that GH, Ax and iP could read, <span class="entity">&amp;nbsp;</span>but I imagine this is a mostly miss rather than hit situation. it is also possible that the returned match just isn<span class="entity">&amp;#39;</span>t precise enough and erring on the side of NOT giving the wrong answer, deflects the question.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Who is the president of China ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Answered with correct name Ax: Answered with correct name and added length in office&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What is on TV tonight ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Stated that TV schedules are not yet supported. Ax: Since Amazon is now a <span class="entity">&amp;#39;</span>network<span class="entity">&amp;#39;</span>, the reply was, Add TV module from Alexa skill store. &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Create an alarm in 5 minutes. 2 minutes in, <span class="entity">&amp;#39;</span>Cancel Alarm<span class="entity">&amp;#39;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: No problem in creation or cancellation <span class="entity">&amp;nbsp;</span>Ax: No problem in creation, but could not cancel.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Order Dishwashing liquid.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Stated that I must enter payment information first. I did so and then the answer was, <span class="entity">&amp;#39;</span>Sorry<span class="entity">&amp;#39;</span>. Rather annoying. <span class="entity">&amp;nbsp;</span>Ax: Provided a list (love the lists) of most popular dishwashing liquids purchased on Amazon. I selected one and it was added to my shopping list. Ax also asked if I was ready to check out.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How do I order a book ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Can<span class="entity">&amp;#39;</span>t <span class="entity">&amp;nbsp;</span>Ax: Can<span class="entity">&amp;#39;</span>t <span class="entity">&amp;nbsp;</span>iP: Links to sites selling selected top titles.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;I want to order a book.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Ok, what book ? <span class="entity">&amp;nbsp;</span>Ax: Can<span class="entity">&amp;#39;</span>t &lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Does Amazon.com sells books ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c1 c2</a>"&gt;GH: Sorry <span class="entity">&amp;nbsp;</span>Ax: Sorry (!?) <span class="entity">&amp;nbsp;</span>iP: Links to how you sell your own books on Amazon.com&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What book has this ISBN number, or International Standard Book Number ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Can<span class="entity">&amp;#39;</span>t <span class="entity">&amp;nbsp;</span>Ax: Won<span class="entity">&amp;#39;</span>t let you finish stating the number <span class="entity">&amp;nbsp;</span>iP: Link to a IBSN lookup website. <span class="entity">&amp;nbsp;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What is 1024 divided by 16 ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: 1000.5 was given each time in 2 queries. I couldn<span class="entity">&amp;#39;</span>t reverse engineer that algorithm. <span class="entity">&amp;nbsp;</span>Ax: Correct Answer&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What does my day look like tomorrow ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Lists items from your google calendar but also gives superfluous news, delaying information requested. Ax: get to the point and lists appointments&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How is the Dow Jones Industrial Average doing ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: No problem <span class="entity">&amp;nbsp;</span>Ax: Please add Finance Skill&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How many calories are in Starfruit ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: 30 Calories <span class="entity">&amp;nbsp;</span>Ax: 30 calories and some interesting background information about starfruit.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Where is the nearest supermarket ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Answered with Trader Joes, while Fred Meyer was closer, however I recalled using google to get the opening hours of the <span class="entity">&amp;#39;</span>nearest<span class="entity">&amp;#39;</span> Trader Joes earlier in the week using my iPad. Coincidence ? I think not. <span class="entity">&amp;nbsp;</span>Ax: Listed the closest Fred Meyer first. <span class="entity">&amp;nbsp;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;What time does it close ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Answered with closing time and telephone number, though it provided it in the previous answer. <span class="entity">&amp;nbsp;</span>Ax: Gave closing time only for Fred Meyer. <span class="entity">&amp;nbsp;</span>footnote: A temporary array is your friend. <span class="entity">&amp;nbsp;</span>&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;Who is the White House Press Secretary ?&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: History of the office and then..... Mr Spicer <span class="entity">&amp;nbsp;</span>Ax: No answer&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c5 c1 c4</a>"&gt;How old is she ? (not Melissa Mccarthy, just a test)&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c3</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;GH: Ignored gender and gave correct age <span class="entity">&amp;nbsp;</span>Ax: No basis, no love.&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c6 c12</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c1</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;<span class="start-tag">p</span> <span class="attribute-name">class</span>="<a class="attribute-value">c6 c13</a>"&gt;&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">c2 c7</a>"&gt;&lt;/<span class="end-tag">span</span>&gt;&lt;/<span class="end-tag">p</span>&gt;&lt;/<span class="end-tag">body</span>&gt;&lt;/<span class="end-tag">html</span>&gt;</pre>Chick WellsWed, 19 Apr 2017 21:33:45 +0000http://*.totalgood.com/blog/cage-match-alexa-v-google-home-30-questions-1-winner/AINLPOpenAIhttp://*.totalgood.com/blog/open-competition/<p>It looks like Total Good has some competition in the quest to add to the greater good. Elon, Sam, <a href="//en.wikipedia.org/wiki/OpenAI" title="Wikipedia article on the company OpenAI and its founders">and friends</a> funded <a href="//www.openai.com" title="OpenAI founded by Elon Musk and Sam Altman">OpenAI.org</a> with a vision very similar to ours. I really hope they live up to their name and the reputation of their founders and open source much of their work. If anyone finds any of their projects on github or somewhere "traditionally open-source" <a href="mailto:hobson@totalgood.com&amp;subject=OpenAI&amp;body=Hi Hobson, I found some open source from OpenAI!">let me know</a>. From my search, and the e-mail correspondence below, <span>it seems they are taking it slow.</span></p> <div> <h3>Email Exchange with OpenAI</h3> <div>Hi Hobson — unfortunately we don’t have volunteer positions at the moment, and while our developments will be openly available, they're not traditionally open-source at the moment. As things expand though, we’ll keep you in mind in case there’s something that makes sense in the future. Thanks for reaching out.</div> <div>—<br>Matt Krisiloff</div> </div> <p><img class="CToWUd" src="https://ci6.googleusercontent.com/proxy/_PKDNzZRTbz0X6BcAMYT8A5aGzF-I85Bg6otd3zklg1RybT1cqtY_XxTKQ4ExiZQTWo8pbvl97hYCq5nexZ5owMbA3bZYVG85_MShGgshhvQOQIqSk5y7SIX0XvcwEll_w=s0-d-e1-ft#https://app.frontapp.com/api/1/noauth/seen/3c0b9eb8e41afd600ab52ef5cefdb745"></p> <blockquote type="cite">On Sun, Dec 20, 2015 at 03:46 pm, &lt;<a href="mailto:hobson@totalgood.com" target="_blank">hobson@totalgood.com</a>&gt; Hobson Lane wrote:<br><br> <div> <div> <div>Hi Greg and Ilya,</div> <div></div> <div>I'd like to offer our support for your open-source development projects. I'm a co-founder of <a href="http://totalgood.com/" target="_blank">TotalGood</a>, a nonprofit with objectives almost identical to yours. The data scientists and developers I work with here in Portland are passionate about contributing to open source AI projects like yours. Let us know where to find your projects that need the most attention.  Ours are mostly in Python and are on GitHub here: <a href="http://github.com/totalgood/" target="_blank">http://github.com/<wbr></wbr>totalgood/</a></div> <div></div> <div>Best Regards,</div> <div><a href="http://hobsonlane.com/" target="_blank">Hobson Lane</a></div> <div> <div> <div><span size="2"><a href="http://totalgood.com/" target="_blank">total≡<b>GOOD</b></a></span></div> </div> </div> </div> </div> </blockquote> <p> </p>Hobson LaneSun, 24 Jan 2016 21:34:47 +0000http://*.totalgood.com/blog/open-competition/AIShallow Dreaminghttp://*.totalgood.com/blog/shallow-dreaming/<p>Congratulaions Cole! Even though we intended to fund projects in Q1 2016, your proposal was so awesome that we just had to get you started right away.</p> <p><span>Check out </span><span></span><a href="http://totalgood.com/static/media/uploads/shallow_dreams_proposal.pdf" title="Cole Howard's Shallow Dreaming Neural Net Proposal">Cole's proposal</a><span> to do hyperparameter optimization and visualization on dreaming neural nets. And he's already refactored <a href="https://github.com/uglyboxer/finnegan" title="Cole Howard's Neural Net Code">his </a></span><span><a href="https://github.com/uglyboxer/finnegan" title="Cole Howard's Neural Net Code">code</a> for "public consumption." </span></p> <p>Our first coworking session at Floyd's on Sunday was a big success, we came up with a better regularization approach that boosted his accuracy on the Kaggle MINST problem by 30% (accuracy jumped from 92% to 95% with just a partial implementation of the new appraoch). Basically, he realized that 25% random dropout in combination with L2 weight regularization was driving all his weights (and performance) to zero. First he turned off random dropouts (temporarily, until he gets regularization dialed in). Then he switched from L2 norm to L1 (as a first step towards p-norm). I can't wait to see what p-norm does!</p> <p>And this week he's looking into d3 visualizations of the weights:</p> <ol> <li><span>heatmap matrices</span></li> <li><span>force-directed graphs</span></li> </ol> <div><span>And the real kicker</span></div> <div><span></span><span>     3.  <a href="http://www.brightpointinc.com/political_influence/" title="Circle Network visualizations of neuron connections">circle network plots</a></span></div> <p><span><br/></span></p> <p><span>I can't wait to see what you come up with next.</span></p> <p>Thank you Thunder for helping him get started on this awesome project.</p>Hobson LaneSun, 22 Nov 2015 22:53:47 +0000http://*.totalgood.com/blog/shallow-dreaming/AIWarped Time Serieshttp://*.totalgood.com/blog/warped-time-series/<p><a href="//github.com/ThunderShiviah" title="Thunder">Thunder</a> has been modeling time series from his android phone to do supervised learning. I just found an excellent thesis on a Bag-of-Features approach to time series feature generation/extraction that might help him out a lot: <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CB8QFjAAahUKEwjavvjsnc_HAhXOoogKHV6NAVA&amp;url=http%3A%2F%2Frepository.asu.edu%2Fattachments%2F97600%2Fcontent%2Ftmp%2Fpackage-kBFsZe%2FBaydogan_asu_0010E_12223.pdf&amp;ei=uSPiVZr-Ic7FogTemoaABQ&amp;usg=AFQjCNEpukq2Cx7ba7aksGK3lm0-B8nGjA&amp;sig2=lj0eVdQIOrB_vfGGGnfukQ">2012 Baydogan, ASU</a>. And that got me thinking about NLP using <a href="https://code.google.com/p/word2vec/">word2vec</a> sequences as an ordered set instead of a bag of words/features. It's high time someone brought in the subtleties of word-order (in addition to meaning) to NLP. I bet conventional time series ML (expecially feature extraction) would work great on sequences of 10D or 100D wordvecs.</p>Hobson LaneSat, 29 Aug 2015 21:31:44 +0000http://*.totalgood.com/blog/warped-time-series/Congratulations Thunderhttp://*.totalgood.com/blog/congratulations-thunder/<p>We're happy to announce the winner of this year's Total Good Intelligent Machines grant! <a href="https://github.com/ThunderShiviah/">Thunder</a> was awarded $1000 this week to support a summer of data science work for <a href="http://hackoregon.com">Hack Oregon</a>. He plans to mine campaign finance data and contributing to Hack Oregon's open source code base. And he'll contribute to Total Good's opensource [machine intelligence utilities](http://github.com/totalgood/pug-ann) and hyperparameter optimization technology. He's already begun contributing by getting the pug-ann documentation in order and getting up to speed on the various Hack Oregon projects.</p> <p>Over the next 12 months we plan to award additional grants data scientists and developers with time on their hands and a passion for machine intelligence. So find a open source project that can add to the Total Good while advancing machine intelligence technology and <a href="mailto:grants@totalgood.com">submit your project proposals</a>. Review the simple <a href="http://totalgood.com/blog/total-good-intelligent-machines-rfp" title="RFP">Request for Proposals</a> to make sure your proposal meets our requirements.</p>Hobson LaneFri, 10 Jul 2015 23:41:01 +0000http://*.totalgood.com/blog/congratulations-thunder/Hyperparameter Optimization Study for Wolfram Data Summit Sept 1http://*.totalgood.com/blog/hyperparameter-optimization-study-for-wolfram-data-summit-sept-1/<p>Zeke, Thunder, Joe and I are comparing the performance of several Hyperparameter Optimization algorithms (i.e. autotuning) for a presentation at the Wolfram Data Summit in September.</p><p><br>Advances in neural networks and deep learning have renewed interest in algorithms that assist in tuning the hyperparameters of these models. Bergstra et. al have developed a statistical (Gaussian Process) approach to hyperparameter optimization that exceed the performance of humans for image and speech processing.[2] Both the model dimension and hyper parameter dimension are large enough to make exhaustive "grid" search and random search impractical.[1] Bergstra's Sequential Model-Based Global Optimization (SMGO) hyperparameter optimization approach has improved efficiency further by using an approximation of the model training results as a heuristic within the tree search for optimal parameters. In this paper we will demonstrate these automatic model parameter optimization algorithms and compare them to the straight-forward approach in which each model parameter is optimized independently of the others using hill-climbing in one dimension at a time. This should only perform well for convex loss (merit) functions. Models with a large number of internal degrees of freedom, such as neural nets and Bayesean model should be possible to optimize this way. This paper will compare results for this sequential single-dimension "Manhattan search" approach with the more complex and efficient SMGO approach for several toy and real-world problems.</p><p><br>[1] Snoek, Larachelle, Adams, "Practical Bayesian Optimization of Machine Learning Algorithms", 2014</p><p>[2] Bergstra, Bardenet, Bengio, and Ḱegl, "Algorithms for Hyper-Parameter Optimization," 2014<br></p>Hobson LaneTue, 07 Jul 2015 18:28:25 +0000http://*.totalgood.com/blog/hyperparameter-optimization-study-for-wolfram-data-summit-sept-1/Call for Proposals: Intelligent Machines for Goodhttp://*.totalgood.com/blog/total-good-intelligent-machines-rfp/<p>Have an idea for a project that adds to the greater good? Need something to make it happen, like money, computing resources, or just someone to help you or brainstorm with you? Submit your proposal to <a href="mailto:proposal@totalgood.com" title="grant proposal email">proposal@totalgood.com</a> and we may just give you what you need. If nothing else, we'll give you feedback on your project and connect you to others doing similar work.</p> <p></p> <p><span style="">Guidelines</span></p> <p>Your proposal should describe a project that meets the following 4 objectives</p> <pre>1. Add to the common good<br> - social benefit<br> - NPO support<br> - social services support<br>2. Contribute to open source<br> - python<br> - javascript<br> - html<br> - datasets<br>3. Be efficient (budget &lt;= $1000)<br> - $350 to $1000 per month<br> - 20 to 100 hr per month<br>4. Get it done (&lt;= 3 months)<br> - summer off from school or work<br> - retraining between jobs<br> - contractual noncompete period</pre> <h3>Example</h3> <p>In June, 2015, a college graduate with a bachelors in mathematics and a track record of contributing to Kaggle competitions and open source projects was awarded $1000 to spend the summer (3 months) contributing to the <a href="http://hackoregon.com" title="Hack Oregon">Hack Oregon</a> project. </p>Hobson LaneMon, 15 Jun 2015 20:54:05 +0000http://*.totalgood.com/blog/total-good-intelligent-machines-rfp/