<snapdata remixID="14354532"><project name="word2vec word analogy search" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"><notes>A demonstration of using word embeddings to solve word analogy problems. Also a search program to find new analogies.&#xD;&#xD;See https://docs.google.com/document/d/1JXdu2-R01JSFqkxkTK0yvhGIwG6ql76uZ7HUyoQXNEM/edit#</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="word2vec word analogy search"><notes>A demonstration of using word embeddings to solve word analogy problems. Also a search program to find new analogies.&#xD;&#xD;See https://docs.google.com/document/d/1JXdu2-R01JSFqkxkTK0yvhGIwG6ql76uZ7HUyoQXNEM/edit#</notes><palette><category name="word2vec" color="0,116,143,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Open this in a new tab" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>re_open_full_window</l><list></list></custom-block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _&#xD;</translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l></list><l>this.setColor(new Color(r, g, b));</l></block><list><block var="r"/><block var="g"/><block var="b"/></list></block></script></block-definition><block-definition s="square of distance from features %&apos;features 1&apos; to %&apos;features 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="245.00000000000003" collapsed="false">When comparing distances one can save some time by avoiding many calls to square root. See also the &apos;distance from features ...&apos; block.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportPower"><block s="reportDifference"><block var="features 1"/><block var="features 2"/></block><l>2</l></block></custom-block></block></script></block-definition><block-definition s="magnitude of %&apos;features&apos;" type="reporter" category="variables"><comment x="0" y="0" w="323" collapsed="false">Reports distance to the center of the space. See https://en.wikipedia.org/wiki/Norm_(mathematics)#Euclidean_norm</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportPower"><block var="features"/><l>2</l></block></custom-block></block></block></script></block-definition><block-definition s="dot product %&apos;list 1&apos; %&apos;list 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="255.7142857142857" collapsed="false">See https://en.wikipedia.org/wiki/Dot_product</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportVariadicProduct"><list><block var="list 1"/><block var="list 2"/></list></block></custom-block></block></script><scripts><script x="305.7142857142857" y="97.1190476190476"><custom-block s="Open web page %txt"><l>https://en.wikipedia.org/wiki/Dot_product</l></custom-block></script></scripts></block-definition><block-definition s="cosine similarity %&apos;list 1&apos; %&apos;list 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="213.28571428571422" collapsed="false">See https://en.wikipedia.org/wiki/Cosine_similarity&#xD;There is a faster JavaScript version of this.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportQuotient"><custom-block s="dot product %l %l"><block var="list 1"/><block var="list 2"/></custom-block><block s="reportVariadicProduct"><list><custom-block s="magnitude of %l"><block var="list 1"/></custom-block><custom-block s="magnitude of %l"><block var="list 2"/></custom-block></list></block></block></block></script><scripts><script x="392.8571428571429" y="85.69047619047619"><custom-block s="Open web page %txt"><l>https://en.wikipedia.org/wiki/Cosine_similarity</l></custom-block></script></scripts></block-definition><block-definition s="Snap! version of closest word to %&apos;target features&apos; except %&apos;exceptions&apos; and report progress %&apos;report progress&apos;" type="reporter" category="variables"><comment x="0" y="0" w="318.5714285714286" collapsed="false">See &quot;closest word to ...&quot; that is much much faster.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>target magnitude</l><l>candidate features</l><l>best word</l><l>best distance</l><l>candidate distance</l><l>count</l></list></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doSetVar"><l>best distance</l><l>9999999</l></block><block s="doSetVar"><l>target magnitude</l><custom-block s="magnitude of %l"><block var="target features"/></custom-block></block><block s="doWarp"><script><custom-block s="%upvar for each %upvar of %l %cs"><l>#</l><l>word</l><custom-block s="all words in language %txt with features"><l></l></custom-block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="exceptions"/><block var="word"/></block></block><script><block s="doIf"><block var="report progress"/><script><block s="doThink"><block s="reportJoinWords"><list><block var="best word"/><l> is the best match so far after looking at </l><block var="#"/><l> words. Distance is </l><block var="best distance"/></list></block></block></script><list></list></block><block s="doSetVar"><l>candidate features</l><custom-block s="features of %txt in language %txt"><block var="word"/><l></l></custom-block></block><block s="doSetVar"><l>candidate distance</l><custom-block s="square of distance from features %l to %l"><block var="target features"/><block var="candidate features"/></custom-block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="candidate distance"/><block var="best distance"/></list></block><script><block s="doSetVar"><l>best word</l><block var="word"/></block><block s="doSetVar"><l>best distance</l><block var="candidate distance"/></block></script><list></list></block></script><list></list></block></script></custom-block><block s="doReport"><block var="best word"/></block></script></block></script></block-definition><block-definition s="distance from features %&apos;features 1&apos; to %&apos;features 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="330.71428571428567" collapsed="false">Euclidean distance between features using Snap! hyperblocks.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportPower"><block s="reportDifference"><block var="features 1"/><block var="features 2"/></block><l>2</l></block></custom-block></block></block></script><scripts><script x="501.4285714285714" y="80.69047619047622"><custom-block s="Open web page %txt"><l>https://en.wikipedia.org/wiki/Euclidean_distance</l></custom-block></script></scripts></block-definition><block-definition s="average %&apos;list1&apos; and %&apos;list 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="172" collapsed="false">Reports the average value of corresponding items in the two lists.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="list1"/><block var="list 2"/></list></block><l>2</l></block></block></script></block-definition><block-definition s="mean distance of %&apos;word&apos; to %&apos;words&apos; $nl using %&apos;distance measure&apos; in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="307" collapsed="false">Reports the average distance from &apos;word&apos; to each of the &apos;words&apos;.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%l"></input><input type="%txt" readonly="true"><options>Euclidean distance&#xD;Cosine similarity</options></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="let %upvar be %s"><l>sum</l><l>0</l></custom-block><custom-block s="let %upvar be %s"><l>word features</l><custom-block s="features of %txt in language %txt"><block var="word"/><block var="language"/></custom-block></custom-block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="words"/><script><block s="doChangeVar"><l>sum</l><custom-block s="if %b then %anyUE else %anyUE"><block s="reportVariadicEquals"><list><block var="distance measure"/><l>Euclidean distance</l></list></block><custom-block s="Euclidean distance between %l and %l using JavaScript"><block var="word features"/><custom-block s="features of %txt in language %txt"><block var="item"/><block var="language"/></custom-block></custom-block><custom-block s="cosine similarity %l %l JavaScript version"><block var="word features"/><custom-block s="features of %txt in language %txt"><block var="item"/><block var="language"/></custom-block></custom-block></custom-block></block></script></custom-block><block s="doReport"><block s="reportQuotient"><block var="sum"/><block s="reportListAttribute"><l><option>length</option></l><block var="words"/></block></block></block></script></block-definition><block-definition s="%&apos;#&apos; map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>#</l><block var="count"/></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block><block s="reportVariadicSum"><list><block var="count"/><l>1</l></list></block></list></block></block></block></script><list><l>data</l><l>count</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>#</l><block var="count"/></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block><block s="reportVariadicSum"><list><block var="count"/><l>1</l></list></block></list></block></block></block></script><list><l>data lists</l><l>count</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block><l>1</l></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/><l>1</l></list></block></block></script></block></script></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block-definition><block-definition s="average of each item %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="159" collapsed="false">Reports the average of each element in the list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportQuotient"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="list"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block></script></block-definition><block-definition s="map %&apos;function&apos; across each item in %&apos;data lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="262.8571428571429" collapsed="false">Apples function to corresponding items in the &apos;data lists&apos;.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><l></l></list></block><custom-block s="map %repRing across each item in %l"><block var="function"/><l/></custom-block></block></block></script></block-definition><block-definition s="Euclidean distance between %&apos;point 1&apos; and %&apos;point 2&apos; using JavaScript" type="reporter" category="lists"><comment x="0" y="0" w="279.2857142857143" collapsed="false">Reports the distance between the points. Works with any dimensions from 1 to what fits in memory.&#xD;To see how this can be implemented in a slower way in Snap! open the &apos;distance from features ... to ...&apos; block</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>euclidean_distance</l><list><block var="point 1"/><block var="point 2"/></list></custom-block></block></script><scripts><script x="451.71428571428584" y="106.85714285714283"><custom-block s="Open web page %txt"><l>https://en.wikipedia.org/wiki/Euclidean_distance</l></custom-block></script></scripts></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script><list></list></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block-definition><block-definition s="cosine similarity %&apos;list 1&apos; %&apos;list 2&apos; JavaScript version" type="reporter" category="lists"><comment x="0" y="0" w="234" collapsed="false">See https://en.wikipedia.org/wiki/Cosine_similarity&#xD;There is a pure Snap! version of this.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>cosine_similarity</l><list><block var="list 1"/><block var="list 2"/></list></custom-block></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations>de:für jedes _ von _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="Open help page" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>open_help_page</l><list><l></l></list></custom-block></script></block-definition><block-definition s="set default language to %&apos;language&apos;" type="command" category="sensing"><comment x="0" y="0" w="275.7142857142857" collapsed="false">Language to use for speech input and output only if no language or voice is specified. Can be the language name in English or itself. Or the official code for the language such as fr-FR for French in France. Also used as the default language for the word embedding blocks.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>set_default_language</l><list><block var="language"/></list></custom-block></script></block-definition><block-definition s="all words in language %&apos;language&apos; with features" type="reporter" category="variables"><comment x="0" y="0" w="224.7398158482143" collapsed="false">Reports all the words that have a list of features accessible via the &quot;features of&quot; reporter block. Data obtained from https://github.com/facebookresearch/fastText</comment><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>all_words_with_features</l><list><block var="language"/></list></custom-block></block></script></block-definition><block-definition s="closest word to %&apos;features&apos; $nl in language %&apos;language&apos; $nl not including %&apos;exceptions&apos; $nl and do as words are found %&apos;when word found&apos; $nl with distance measure %&apos;distance measure&apos;" type="reporter" category="variables"><comment x="0" y="0" w="328.5714285714286" collapsed="false">Reports the word that is closest to the features. Uses a distance measure which can be either Eucliean Distance or Cosine similarity. You can choose from among 15 languages or leave it blank for the default language. Optionally one can &quot;watch&quot; it search by adding blocks to the &quot;when word found&quot; slot. The block is passed the best word so far, its distance, and the number of words considered so far.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input><input type="%l"></input><input type="%cmdRing"></input><input type="%txt" readonly="true">Cosine similarity<options>Euclidean distance&#xD;Cosine similarity</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>closest_word</l><list><block var="features"/><block var="exceptions"/><block var="when word found"/><block var="distance measure"/><block var="language"/></list></custom-block></block></script></block-definition><block-definition s="location of %&apos;word&apos; in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="384.2857142857144" collapsed="false">Reports a location of a word embedding use t-SNE. See https://en.wikipedia.org/wiki/T-distributed_stochastic_neighbor_embedding</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><custom-block s="let %upvar be %s"><l>location</l><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>word_to_location</l><list><block var="word"/><block var="language"/></list></custom-block></custom-block><block s="doIf"><custom-block s="empty? %l"><block var="location"/></custom-block><script><block s="doReport"><block var="location"/></block></script><list></list></block><custom-block s="let %upvar be %s"><l>stage size</l><custom-block s="setting %s"><l>Stage size</l></custom-block></custom-block><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="location"/></block><block s="reportListItem"><l>1</l><block var="stage size"/></block></list></block><block s="reportQuotient"><block s="reportListItem"><l>1</l><block var="stage size"/></block><l>2</l></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="location"/></block><block s="reportListItem"><l>2</l><block var="stage size"/></block></list></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="stage size"/></block><l>2</l></block></block></list></block><comment w="295" collapsed="true">Convert from 0 to 1 coordinates to Snap! coordinations.</comment></block></script></block-definition><block-definition s="set pen color to h: %&apos;h&apos; s: %&apos;s&apos; v: %&apos;v&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">0.3</input><input type="%n">0.7</input><input type="%n">0.6</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>h</l><l>s</l><l>v</l></list><l>var col = new Color();&#xD;col.set_hsv(h, s, v);&#xD;this.setColor(col);</l></block><list><block var="h"/><block var="s"/><block var="v"/></list></block></script></block-definition><block-definition s="HSV color" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return new List(this.color.hsv());</l></block><list></list></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations>de:drucke _ in Größe _&#xD;</translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="repeat text %&apos;text&apos; %&apos;n&apos; times" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="text"/><custom-block s="repeat text %txt %n times"><block var="text"/><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="display word %&apos;word&apos; in language %&apos;language&apos; with size %&apos;size&apos; and zoom by %&apos;zoom&apos;" type="command" category="pen"><comment x="0" y="0" w="220" collapsed="true">Displays the word near similar words.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input><input type="%n">12</input><input type="%n">1</input></inputs><script><custom-block s="let %upvar be %s"><l>location</l><custom-block s="location of %txt in language %txt"><block var="word"/><block var="language"/></custom-block></custom-block><custom-block s="let %upvar be %s"><l>x</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="location"/></block><block var="zoom"/></list></block><block s="reportVariadicProduct"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>5</l></list></block><comment w="278" collapsed="false">Attempt to center the word. 12/2 would be correct if every character was full width.</comment></block></custom-block><custom-block s="let %upvar be %s"><l>y</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="location"/></block><block var="zoom"/></list></block></custom-block><custom-block s="let %upvar be %s"><l>pen color</l><custom-block s="HSV color"></custom-block></custom-block><block s="gotoXY"><block var="x"/><block var="y"/></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="pen color"/></block><l>.2</l><l>1</l></custom-block><custom-block s="label %txt of size %n"><custom-block s="repeat text %txt %n times"><l>█</l><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block></custom-block><block var="size"/></custom-block><block s="gotoXY"><block var="x"/><block var="y"/><comment w="224.99999999999991" collapsed="true">Display the word centered at the location.</comment></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="pen color"/></block><block s="reportListItem"><l>2</l><block var="pen color"/></block><block s="reportListItem"><l>3</l><block var="pen color"/></block></custom-block><custom-block s="label %txt of size %n"><block var="word"/><block var="size"/></custom-block></script></block-definition><block-definition s="closest word to %&apos;features&apos; $nl in language %&apos;language&apos; $nl not including %&apos;exceptions&apos;" type="reporter" category="variables"><comment x="0" y="0" w="328.5714285714286" collapsed="false">Reports the word that is closest to the features.  You can choose from among 15 languages or leave it blank for the default language. There is a full-featured version of this block as well.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input><input type="%l"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>closest_word</l><list><block var="features"/><block var="exceptions"/><l></l><l>Cosine similarity</l><block var="language"/></list></custom-block></block></script></block-definition><block-definition s="features of %&apos;word&apos; in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="343.5714285714286" collapsed="false">Reports a list of 300 numbers that &quot;describes&quot; the word. You can choose among 15 languages or leave it blank and use the default language. &#xD;To learn about these numbers see https://en.wikipedia.org/wiki/Word_embedding&#xD;The new name for this block is &quot;features of word ...&quot;</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><block s="doReport"><custom-block s="features of word %txt in language %txt"><block var="word"/><block var="language"/></custom-block></block></script></block-definition><block-definition s="wait for word embeddings in language %&apos;language&apos; $nl or use this word embeddings url %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;&#xD;English&#xD;&#xD;Finnish&#xD;&#xD;French&#xD;&#xD;German&#xD;&#xD;Greek&#xD;&#xD;Hindi&#xD;&#xD;Indonesian&#xD;&#xD;Italian&#xD;&#xD;Japanese&#xD;&#xD;Portuguese&#xD;&#xD;Sinhalese&#xD;&#xD;Swedish</options></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>loaded</l></list></block><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Load words to features in language %txt then %cmdRing %br use this URL instead of default %txt"><block var="language"/><block s="reifyScript"><script><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block var="url"/></custom-block><block s="doWaitUntil"><block var="loaded"/></block></script></block-definition><block-definition s="Load words to features in language %&apos;language&apos; then %&apos;do when loaded&apos; $nl use this URL instead of default %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"><options>Chinese&#xD;&#xD;English&#xD;&#xD;Finnish&#xD;&#xD;French&#xD;&#xD;German&#xD;&#xD;Greek&#xD;&#xD;Hindi&#xD;&#xD;Indonesian&#xD;&#xD;Italian&#xD;&#xD;Japanese&#xD;&#xD;Portuguese&#xD;&#xD;Sinhalese&#xD;&#xD;Swedish</options></input><input type="%cmdRing"></input><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>word_embeddings_ready</l><list><block var="language"/><block var="do when loaded"/><block var="url"/></list></custom-block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="value"/></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block-definition><block-definition s="closest words to %&apos;features&apos; in language %&apos;language&apos; $nl and include distances %&apos;include distances&apos;" type="reporter" category="variables"><comment x="0" y="0" w="218.57142857142858" collapsed="false">Reports all the words sorted by closeness to &apos;features&apos;. Optionally can report pairs of words and distances. Distances are measured using cosine similarity.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="closest words to %l in language %txt %br and include distances %b %br do with result %cmdRing"><block var="features"/><block var="language"/><block var="include distances"/><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block var="words"/></block></script><list><l>words</l></list></block></custom-block><block s="doWaitUntil"><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="closest words to %&apos;features&apos; in language %&apos;language&apos; $nl and include distances %&apos;include distances&apos; $nl do with result %&apos;process result&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>record_callbacks(finished_callback);</options></input><input type="%b">false</input><input type="%cmdRing"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><custom-block s="load tensorflow"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>closest_words</l><list><block var="features"/><block var="language"/><block var="include distances"/><block var="process result"/></list></custom-block></block></script></block-definition><block-definition s="average features of each word %&apos;words&apos; in language %&apos;language&apos;" type="reporter" category="lists"><comment x="0" y="0" w="152" collapsed="false">Finds the average of the features of each word in &apos;words&apos;.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="let %upvar be %s"><l>list of words</l><block s="reportTextSplit"><block var="words"/><l><option>word</option></l></block></custom-block><custom-block s="let %upvar be %s"><l>number of words</l><block s="reportListAttribute"><l><option>length</option></l><block var="list of words"/></block></custom-block><custom-block s="let %upvar be %s"><l>list of features</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="features of %txt in language %txt"><block var="word"/><block var="language"/></custom-block></autolambda><list><l>word</l></list></block><block var="list of words"/></block></custom-block><block s="doSetVar"><l>list of features</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><l/></block><l>0</l></list></block></autolambda><list></list></block><block var="list of features"/></block><comment w="241.99999999999997" collapsed="true">Remove features from unrecognised words.</comment></block><custom-block s="let %upvar be %s"><l>features added</l><block s="reportCombine"><block var="list of features"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></custom-block><block s="doReport"><block s="reportQuotient"><block var="features added"/><block var="number of words"/></block></block></script></block-definition><block-definition s="map %&apos;reporter&apos; on each element of %&apos;list 1&apos; and %&apos;list 2&apos;" type="reporter" category="variables"><comment x="0" y="0" w="242.1428571428572" collapsed="false">Reports a list created by applying reporter to corresponding elements of the lists.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="list 1"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><custom-block s="empty? %l"><block var="list 2"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="reporter"/><list><block s="reportListItem"><l>1</l><block var="list 1"/></block><block s="reportListItem"><l>1</l><block var="list 2"/></block></list></block><custom-block s="map %repRing on each element of %l and %l"><block var="reporter"/><block s="reportCDR"><block var="list 1"/></block><block s="reportCDR"><block var="list 2"/></block></custom-block></block></block></script></block-definition><block-definition s="get features of sentences %&apos;sentences&apos; $nl then do with result %&apos;process result&apos;" type="command" category="variables"><comment x="0" y="0" w="385.85714285714283" collapsed="true">Passes a list of lists of 512 features of input &apos;sentences&apos; to &apos;process result&apos;. </comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%cmdRing"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="load tensorflow"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>sentence_features</l><list><block var="sentences"/><block var="process result"/></list></custom-block></block></script></block-definition><block-definition s="features of sentence %&apos;sentence&apos;" type="reporter" category="variables"><comment x="0" y="0" w="208.57142857142858" collapsed="false">Reports 512 features for the sentence.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="get features of sentences %l %br then do with result %cmdRing"><block s="reportNewList"><list><block var="sentence"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportListItem"><l>1</l><block var="list of features list"/></block></block></script><list><l>list of features list</l></list></block></custom-block><block s="doWaitUntil"><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="tokenize %&apos;sentence&apos; $nl then do with result %&apos;process result&apos;" type="command" category="variables"><comment x="0" y="0" w="287.8571428571429" collapsed="true">Passes to &apos;process result&apos; a tokenization of the sentence.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%cmdRing"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="load tensorflow"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>tokenize_sentence</l><list><block var="sentence"/><block var="process result"/></list></custom-block></block></script></block-definition><block-definition s="tokenize %&apos;sentence&apos;" type="reporter" category="variables"><comment x="0" y="0" w="182.85714285714286" collapsed="true">Reports tokens for the sentence.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="tokenize %txt %br then do with result %cmdRing"><block var="sentence"/><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block var="tokens"/></block></script><list><l>tokens</l></list></block></custom-block><block s="doWaitUntil"><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="features of sentences %&apos;sentences&apos;" type="reporter" category="variables"><comment x="0" y="0" w="267.14285714285717" collapsed="true">Reports a list of 512 features for each sentence.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="get features of sentences %l %br then do with result %cmdRing"><block var="sentences"/><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block var="list of features list"/></block></script><list><l>list of features list</l></list></block></custom-block><block s="doWaitUntil"><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="features of word %&apos;word&apos; in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="343.5714285714286" collapsed="false">Reports a list of 300 numbers that &quot;describes&quot; the word. You can choose among 15 languages or leave it blank and use the default language. &#xD;To learn about these numbers see https://en.wikipedia.org/wiki/Word_embedding</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="wait for word embeddings in language %txt %br or use this word embeddings url %txt"><block var="language"/><l></l></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>word_to_features</l><list><block var="word"/><block var="language"/></list></custom-block></block></script></block-definition><block-definition s="call eCraft2Learn reporter %&apos;reporter name&apos; with %&apos;inputs&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l><l>no_warning</l></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;&#xD;    return ecraft2learn.run(function_name, parameters);&#xD;&#xD;}&#xD;&#xD;if (!no_warning) {&#xD;&#xD;    alert("Any eCraft2Learn command must be run before the " + function_name + " reporter.");&#xD;&#xD;}&#xD;&#xD;return 0;</l></block><list><block var="reporter name"/><block var="inputs"/></list></block></block></script></block-definition><block-definition s="load tensorflow" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>loaded</l></list></block><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>load_tensorflow</l><list><block s="reifyScript"><script><block s="doSetVar"><l>loaded</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></list></custom-block><block s="doWaitUntil"><block var="loaded"/></block></script></block-definition><block-definition s="Answer %&apos;question&apos; from %&apos;passage&apos; $nl process answers with %&apos;answers receiver&apos; $nl and if there is error %&apos;handle error&apos;" type="command" category="other"><comment x="0" y="0" w="191.42857142857144" collapsed="false">Uses &apos;passage&apos; to answer &apos;question&apos;.&#xD;The &apos;answer question&apos; reporter is easier to use and relies upon this block.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="Load eCraft2Learn library"></custom-block><custom-block s="load tensorflow"></custom-block><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>answer_question</l><list><block var="question"/><block var="passage"/><block var="answers receiver"/><block var="handle error"/></list></custom-block></block></script><scripts><comment x="37.85714285714286" y="158.71428571428572" w="509.4105747767857" collapsed="false">This uses BERT to answer questions.&#xD;See https://blog.tensorflow.org/2020/03/exploring-helpful-uses-for-bert-in-your-browser-tensorflow-js.html</comment></scripts></block-definition><block-definition s="Answer question %&apos;question&apos; using this passage %&apos;passage&apos;" type="reporter" category="other"><comment x="0" y="0" w="161.42857142857144" collapsed="false">Reports the top answer to the &apos;question&apos; using the &apos;passage&apos;.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><custom-block s="let %upvar be %s"><l>answers</l><custom-block s="Get up to 5 answers to question %txt from passage %txt"><block var="question"/><block var="passage"/></custom-block></custom-block><block s="doIfElse"><block s="reportListIsEmpty"><block var="answers"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="answers"/></block></block></block></script></block></script></block-definition><block-definition s="Get up to 5 answers to question %&apos;question&apos; from passage %&apos;passage&apos;" type="reporter" category="other"><comment x="0" y="0" w="253.57142857142858" collapsed="false">Reports a list of 5 elements where each element is a list of an answer to the &apos;question&apos; and its score of how good an answer it is. The highest scoring answer is first.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Answer %txt from %txt %br process answers with %cmdRing %br and if there is error %cmdRing"><block var="question"/><block var="passage"/><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="answer"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="answer"/></block></block></list></block></autolambda><list><l>answer</l></list></block><block var="answers"/><comment w="238.57142857142858" collapsed="false">Only report the answers and scores. Not the position of the &apos;passage&apos; that the answer is based upon.</comment></block></block></script><list><l>answers</l></list></block><block s="reifyScript"><script><custom-block s="inform %txt with title %txt"><l></l><l>Answering question from passage</l></custom-block></script><list></list></block></custom-block><block s="doWaitUntil"><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="Wikipedia summary of covid-19 from 6 April 2020" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>The 2019–20 coronavirus pandemic is an ongoing pandemic of coronavirus disease 2019 (COVID-19), caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The outbreak was first noted in Wuhan, Hubei province, China, in December 2019. The World Health Organization (WHO) declared the outbreak to be a Public Health Emergency of International Concern on 30 January 2020 and recognized it as a pandemic on 11 March 2020. As of 6 April 2020, more than 1,270,000 cases of COVID-19 have been reported in over 200 countries and territories, resulting in approximately 69,400 deaths. More than 260,000 people have recovered.&#xD;&#xD;The virus is mainly spread during close contact, and by small droplets produced during coughing, sneezing, or talking. These small droplets may also be produced during breathing, but rapidly fall to the ground or surfaces and are not generally spread through the air over large distances. People may also catch COVID-19 by touching a contaminated surface and then their face. The virus can survive on surfaces for up to 72 hours. It is most contagious during the first 3 days after symptom onset, although spread may be possible before symptoms appear and in later stages of the disease. The time between exposure and symptom onset is typically around five days, but may range from 2 to 14 days. Common symptoms include fever, cough, and shortness of breath. Complications may include pneumonia and acute respiratory distress syndrome. There is no known vaccine or specific antiviral treatment. Primary treatment is symptomatic and supportive therapy. Recommended preventive measures include hand washing, covering one&apos;s mouth when coughing, maintaining distance from other people, and monitoring and self-isolation for people who suspect they are infected.&#xD;&#xD;Efforts to prevent the virus spread include travel restrictions, quarantines, curfews, workplace hazard controls, event postponements and cancellations, and facility closures. These include national or regional quarantines throughout the world (starting with the quarantine of Hubei), curfew measures in mainland China, various border closures or incoming passenger restrictions, screening at airports and train stations, and outgoing passenger travel bans.&#xD;&#xD;The pandemic has led to severe global socioeconomic disruption, the postponement or cancellation of sporting, religious, and cultural events, and widespread fears of supply shortages resulting in panic buying. Schools and universities have closed either on a nationwide or local basis in more than 160 countries, affecting approximately 97 percent of the world&apos;s student population. Misinformation about the virus has spread online, and there have been incidents of xenophobia and discrimination against Chinese people, other people of East and Southeast Asian descent and appearance, and others from hotspots.&#xD;&#xD;</l></block></script></block-definition><block-definition s="inform %&apos;message&apos; with title %&apos;title&apos;" type="command" category="other"><comment x="0" y="0" w="217.1428571428572" collapsed="false">Will display &apos;message&apos; in a dialog box with &apos;title&apos;. User needs to click &apos;OK&apos; to remove it.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>inform</l><list><block var="title"/><block var="message"/></list></custom-block></script></block-definition><block-definition s="Load eCraft2Learn library" type="command" category="other"><comment x="0" y="0" w="248.57142857142858" collapsed="true">Returns only after eCraft2Learn library is loaded</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="Try to load ecraft2learn library"></custom-block></block></script></block-definition><block-definition s="Try to load ecraft2learn library" type="reporter" category="other"><comment x="0" y="0" w="323.5714285714286" collapsed="true">Should only be called by Load eCraft2Learn library</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;   return true;&#xD;}&#xD;if (window.waiting_for_ecraft2learn_library) {&#xD;   return false;&#xD;}&#xD;window.waiting_for_ecraft2learn_library = true;&#xD;let script = document.createElement("script");&#xD;&#xD;script.type = "text/javascript";&#xD;&#xD;if (window.location.hostname === &apos;localhost&apos;) {&#xD;&#xD;    script.src = window.location.protocol + "//" + window.location.host + "/ai/ecraft2learn-beta.js"; // notice this the beta version&#xD;&#xD;} else {&#xD;&#xD;    script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;&#xD;}&#xD;&#xD;document.head.appendChild(script);&#xD;return false;</l></block><list></list></block></block></script></block-definition><block-definition s="run eCraft2Learn command %&apos;command name&apos; with %&apos;inputs&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;&#xD;    ecraft2learn.run(function_name, parameters);&#xD;&#xD;} else {&#xD;&#xD;   var script = document.createElement("script");&#xD;&#xD;   script.type = "text/javascript";&#xD;&#xD;   script.addEventListener(&apos;error&apos;, function () {&#xD;&#xD;          alert("Unable to load https://ecraft2learn.github.io/ai/ecraft2learn.js. Check your network connection.");&#xD;&#xD;   });&#xD;&#xD;   script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;&#xD;   script.addEventListener(&apos;load&apos;, function () {&#xD;&#xD;          ecraft2learn.run(function_name, parameters);&#xD;&#xD;   });&#xD;&#xD;   document.head.appendChild(script);&#xD;&#xD;}&#xD;&#xD;</l></block><list><block var="command name"/><block var="inputs"/></list></block></script></block-definition><block-definition s="$arrowUp %&apos;word&apos;" type="reporter" category="variables"><comment x="0" y="0" w="300.7142857142857" collapsed="false">A concise shortcut to the &apos;features of ...&apos; block. It uses English.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><custom-block s="features of %txt in language %txt"><block var="word"/><l>English</l></custom-block></block></script></block-definition><block-definition s="$arrowDown %&apos;features&apos;" type="reporter" category="variables"><comment x="0" y="0" w="239.28571428571448" collapsed="false">A concise shortcut to the &apos;closest word to ...&apos; block. Uses English and excludes no words.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="closest word to %l %br in language %txt %br not including %l"><block var="features"/><l>English</l><l/></custom-block></block></script></block-definition><block-definition s="Open web page %&apos;url&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>url</l></list><l>window.open(url, "_blank");</l></block><list><block var="url"/></list></block></script></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows reading global settings programmatically.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:o valor da configuração _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks support&#xD;Visible palette</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    ide = stage.parentThatIsA(IDE_Morph),&#xD;    world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return ide.cloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([StageMorph.prototype.dimensions.x,&#xD;                                   StageMorph.prototype.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return !!this.scripts.focus;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        return Process.prototype.enableHyperOps;&#xD;    default: return which;&#xD;    case &apos;Visible palette&apos;:&#xD;        return ide.currentCategory;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for Boolean (checkbox) settings; use&#xD;SET VALUE for numeric or text values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Presentation mode&#xD;Retina display support&#xD;Long form input dialog&#xD;Plain prototype labels&#xD;Input sliders&#xD;Execute on slider change&#xD;Clicking sound&#xD;Turbo mode&#xD;Flat design&#xD;Keyboard editing&#xD;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks support</options></input><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>tf</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph),&#xD;        thisObj = this;&#xD;&#xD;if (tf != !!tf) return;&#xD;&#xD;try{&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Presentation mode&apos;:&#xD;        if (tf != ide.isAppMode) ide.toggleAppMode();&#xD;        break;&#xD;    case &apos;Retina display support&apos;:&#xD;        if (tf != isRetinaEnabled()) ide.toggleRetina();&#xD;        break;&#xD;    case &apos;Long form input dialog&apos;:&#xD;        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)&#xD;            ide.toggleLongFormInputDialog();&#xD;        break;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)&#xD;            ide.togglePlainPrototypeLabels();&#xD;        break;&#xD;    case &apos;Input sliders&apos;:&#xD;        MorphicPreferences.useSliderForInput = tf;&#xD;        break;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        ArgMorph.prototype.executeOnSliderEdit = tf;&#xD;        break;&#xD;    case &apos;Clicking sound&apos;:&#xD;        if (tf != !!BlockMorph.prototype.snapSound)&#xD;            BlockMorph.prototype.toggleSnapSound();&#xD;        break;&#xD;    case &apos;Turbo mode&apos;:&#xD;        if (tf != stage.isFastTracked)&#xD;            ide.toggleFastTracking();&#xD;        break;&#xD;    case &apos;Flat design&apos;:&#xD;        if (tf == MorphicPreferences.isFlat) break;&#xD;        if (tf)&#xD;            ide.flatDesign();&#xD;        else&#xD;            ide.defaultDesign();&#xD;        break;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        if (thisObj.scripts.focus &amp;&amp; !tf) {&#xD;            thisObj.scripts.focus.stopEditing();&#xD;        } else if (tf &amp;&amp; !thisObj.scripts.focus) {&#xD;            thisObj.scripts.toggleKeyboardEntry();&#xD;        };&#xD;        break;&#xD;    case &apos;Visible stepping&apos;:&#xD;        if (tf != Process.prototype.enableSingleStepping)&#xD;            ide.toggleSingleStepping();&#xD;        break;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        stage.isThreadSafe = tf;&#xD;        break;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        if (tf != (StageMorph.prototype.frameRate &gt; 0))&#xD;            ide.toggleVariableFrameRate();&#xD;        break;&#xD;    case &apos;Flat line ends&apos;:&#xD;        SpriteMorph.prototype.useFlatLineEnds = tf;&#xD;        break;&#xD;    case &apos;Codification support&apos;:&#xD;        if (tf != StageMorph.prototype.enableCodeMapping) {&#xD;            StageMorph.prototype.enableCodeMapping = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Inheritance support&apos;:&#xD;        if (tf != StageMorph.prototype.enableInheritance) {&#xD;            StageMorph.prototype.enableInheritance = tf;&#xD;            ide.currentSprite.blocksCache.variables = null;&#xD;            ide.currentSprite.paletteCache.variables = null;&#xD;            ide.refreshPalette();&#xD;        }&#xD;        break;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        Process.prototype.enableHyperOps = tf;&#xD;        break;&#xD;};&#xD;}&#xD;finally {&#xD;ide.savingPreferences = false;&#xD;};&#xD;</l></block><list><block var="which"/><block var="tf"/></list></block></script></block-definition><block-definition s="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for numeric or text settings; use&#xD;SET FLAG for Boolean (checkbox) values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Visible palette</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;try {&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        break;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        break;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        break;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        break;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        break;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        break;&#xD;    case &apos;Visible palette&apos;:&#xD;        ide.currentCategory = value.toLowerCase();&#xD;        ide.categories.children.forEach(function (each) {&#xD;                each.refresh();&#xD;        });&#xD;        ide.refreshPalette(true);&#xD;        break;&#xD;};&#xD;}&#xD;finally {ide.savingPreferences = true;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition><block-definition s="reverse %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="223" collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><translations>ca:capgira _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>helper</l></list></block><block s="doSetVar"><l>helper</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="input"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doReport"><block s="evaluate"><block var="helper"/><list><block s="reportCDR"><block var="input"/></block><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="input"/></block><block var="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><block s="doWarp"><script><block s="doReport"><block s="evaluate"><block var="helper"/><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definition s="remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></block-definition><block-definition s="sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l><l>split</l><l>copy of data</l><l>id</l></list></block><block s="doSetVar"><l>id</l><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block></block><block s="doSetVar"><l>copy of data</l><block s="reportMap"><block var="id"/><block var="data"/></block></block><block s="doSetVar"><l>split</l><block s="reifyScript"><script><block s="doSetVar"><l>even items</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>odd items</l><block s="reportNewList"><list></list></block></block><block s="doUntil"><block s="reportListIsEmpty"><block var="copy of data"/></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="odd items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="copy of data"/></block></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="copy of data"/></block><block var="even items"/></block><block s="doDeleteFromList"><l>1</l><block var="copy of data"/></block></script><list></list></block></script></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="#1"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#2"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="#2"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#1"/></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doRun"><block var="split"/><list></list></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="sort %l ordering with %predRing"><block var="odd items"/><block var="function"/></custom-block><custom-block s="sort %l ordering with %predRing"><block var="even items"/><block var="function"/></custom-block></list></block></block></script></block-definition><block-definition s="assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="a-list"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script><list></list></block><block s="doReport"><custom-block s="assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="191.99999999999997" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="lists"/></block><custom-block s="zip %mult%l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="lists"/></block></custom-block></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333331" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="make analogies %&apos;words&apos; with score less than %&apos;threshold&apos; $nl in language %&apos;language&apos;" type="reporter" category="variables"><comment x="0" y="0" w="202.85714285714286" collapsed="false">Finds the distances between pairs taken from the incoming list of 4 words and if less than threshold reports them.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">2</input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><custom-block s="let %upvar be %s"><l>analogies</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="let %upvar be %s"><l>permutations</l><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l></list></block><block s="reportNewList"><list><l>1</l><l>3</l><l>2</l><l>4</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>2</l><l>3</l></list></block></list></block></custom-block><block s="doForEach"><l>permutation</l><block var="permutations"/><script><custom-block s="let %upvar be %s"><l>4 words</l><block s="reportListItem"><block var="permutation"/><block var="words"/></block></custom-block><custom-block s="let %upvar be %s"><l>word 1</l><block s="reportListItem"><l>1</l><block var="4 words"/></block></custom-block><custom-block s="let %upvar be %s"><l>word 2</l><block s="reportListItem"><l>2</l><block var="4 words"/></block></custom-block><custom-block s="let %upvar be %s"><l>word 3</l><block s="reportListItem"><l>3</l><block var="4 words"/></block></custom-block><custom-block s="let %upvar be %s"><l>word 4</l><block s="reportListItem"><l>4</l><block var="4 words"/></block></custom-block><custom-block s="let %upvar be %s"><l>1 to 2</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><block var="word 1"/><block var="language"/></custom-block><custom-block s="features of word %txt in language %txt"><block var="word 2"/><block var="language"/></custom-block></block></custom-block><custom-block s="let %upvar be %s"><l>3 to 4</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><block var="word 3"/><block var="language"/></custom-block><custom-block s="features of word %txt in language %txt"><block var="word 4"/><block var="language"/></custom-block></block></custom-block><custom-block s="let %upvar be %s"><l>distance</l><custom-block s="distance from features %l to %l"><block var="1 to 2"/><block var="3 to 4"/></custom-block></custom-block><custom-block s="let %upvar be %s"><l>distance (2 to 1) to (3 to 4)</l><custom-block s="distance from features %l to %l"><block s="reportVariadicProduct"><list><block var="1 to 2"/><l>-1</l></list></block><block var="3 to 4"/></custom-block><comment w="255.00000000000003" collapsed="true">Possibly one of the pairs needs to be reversed.</comment></custom-block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="distance"/><block var="threshold"/></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="distance"/><block var="word 1"/><block var="word 2"/><block var="word 3"/><block var="word 4"/></list></block><block var="analogies"/></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="distance (2 to 1) to (3 to 4)"/><block var="threshold"/></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="distance (2 to 1) to (3 to 4)"/><block var="word 2"/><block var="word 1"/><block var="word 3"/><block var="word 4"/></list></block><block var="analogies"/></block></script><list></list></block></script></block><block s="doChangeVar"><l>possibilities left to explore</l><l>-2</l></block></script></block><block s="doReport"><block var="analogies"/></block></script><scripts><comment x="352.02411542619984" y="155.14285714285714" w="295.7142857142857" collapsed="false">An alternative using Euclidean distance is to use cosine similarity. Try replacing the distance calculations with the following.</comment><script x="309.1428571428571" y="213.21428571428535"><block s="reportMonadic"><l><option>acos</option></l><custom-block s="cosine similarity %l %l JavaScript version"><block var="1 to 2"/><block var="3 to 4"/></custom-block></block></script><script x="310.57142857142856" y="241.66666666666637"><block s="reportMonadic"><l><option>acos</option></l><custom-block s="cosine similarity %l %l JavaScript version"><block s="reportVariadicProduct"><list><block var="1 to 2"/><l>-1</l></list></block><block var="3 to 4"/></custom-block></block></script></scripts></block-definition><block-definition s="Find analogies among %&apos;number of words&apos; words near %&apos;word&apos; $nl keeping those with a score less than %&apos;threshold&apos; $nl in language %&apos;language&apos;" type="reporter" category="variables"><comment w="370.7142857142857" collapsed="false">Reports all analogies with a distance score less than &apos;threshold&apos; taken from the &apos;number of words&apos; closest to &apos;word&apos;.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%txt"></input><input type="%n">2</input><input type="%txt"><options>Chinese&#xD;English&#xD;Finnish&#xD;French&#xD;German&#xD;Greek&#xD;Hindi&#xD;Indonesian&#xD;Italian&#xD;Japanese&#xD;Lithuanian&#xD;Portuguese&#xD;Sinhalese&#xD;Spanish&#xD;Swedish</options></input></inputs><script><block s="doSetVar"><l>possibilities left to explore</l><block s="reportVariadicProduct"><list><custom-block s="select %n of %n"><l>4</l><block var="number of words"/></custom-block><l>6</l></list></block></block><block s="doSetVar"><l>best analogies</l><block s="reportNewList"><list></list></block></block><custom-block s="let %upvar be %s"><l>all words</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="number of words"/></block><custom-block s="closest words to %l in language %txt %br and include distances %b"><custom-block s="features of word %txt in language %txt"><block var="word"/><block var="language"/></custom-block><block var="language"/><l><bool>false</bool></l></custom-block></block><comment w="131.4285714285716" collapsed="false">Find the &apos;number of words&apos; closest to &apos;word&apos;.</comment></custom-block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="all words"/></block><l>3</l><comment w="177.85714285714286" collapsed="false">Select 4 indices into &apos;all words&apos;.</comment></block><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="all words"/></block><l>2</l></block><script><custom-block s="for %upvar = %n to %n %cs"><l>k</l><block s="reportVariadicSum"><list><block var="j"/><l>1</l></list></block><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="all words"/></block><l>1</l></block><script><custom-block s="for %upvar = %n to %n %cs"><l>l</l><block s="reportVariadicSum"><list><block var="k"/><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="all words"/></block><script><block s="doSetVar"><l>best analogies</l><block s="reportConcatenatedLists"><list><custom-block s="make analogies %l with score less than %n %br in language %txt"><block s="reportListItem"><block s="reportNewList"><list><block var="i"/><block var="j"/><block var="k"/><block var="l"/></list></block><block var="all words"/></block><block var="threshold"/><block var="language"/></custom-block><block var="best analogies"/></list></block></block></script></custom-block></script></custom-block></script></custom-block></script></custom-block><block s="doSetVar"><l>best analogies</l><custom-block s="sort %l ordering with %predRing"><block var="best analogies"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block><comment w="274.28571428571445" collapsed="true">Sort the analogies by distnace between the pairs.</comment></block><block s="doReport"><block var="best analogies"/></block></script></block-definition><block-definition s="select %&apos;k&apos; of %&apos;n&apos;" type="reporter" category="operators"><comment x="0" y="0" w="330.0697544642857" collapsed="false">Click on https://en.wikipedia.org/wiki/Combination</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportCombine"><block s="reportNumbers"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="n"/><block var="k"/></block><l>1</l></list></block><block var="n"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><block s="reportNumbers"><l>1</l><block var="k"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block></script></block-definition><block-definition s="%&apos;A&apos; is to %&apos;A similar&apos; as %&apos;B&apos; is to..." type="reporter" category="word2vec"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><custom-block s="closest word to %l %br in language %txt %br not including %l"><block s="reportVariadicSum"><list><custom-block s="features of word %txt in language %txt"><block var="B"/><l>English</l></custom-block><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><block var="A similar"/><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><block var="A"/><l>English</l></custom-block></block></list></block><l>English</l><block s="reportNewList"><list><block var="A"/><block var="A similar"/><block var="B"/></list></block></custom-block></block></script><scripts><script x="588.9700520833334" y="114.25"><block var="royalty essence"/></script></scripts></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="2535"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="2536"></list></costumes><sounds><list struct="atomic" id="2537"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="-0.7577141495573938" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="2542"><costumes><list id="2543"><item><ref mediaID="word2vec word analogy search_Sprite_cst_man woman father x"></ref></item></list></costumes><sounds><list struct="atomic" id="2544"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="6.666666666666667" y="6.666666666666667" w="471" collapsed="false">Visualizer of word cloud&#xD;https://projector.tensorflow.org/?config=https://ecraft2learn.github.io/ai/word-embeddings/en/projector.json</comment><script x="6.666666666666667" y="62.666666666666664"><custom-block s="Open this in a new tab"></custom-block></script><comment x="6.666666666666667" y="88.08333333333333" w="328.5714285714286" collapsed="true">Finding out what word is closest to (king+(woman-man))</comment><script x="6.666666666666667" y="110.08333333333333"><custom-block s="let %upvar be %s"><l>female essence</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><l>woman</l><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><l>man</l><l>English</l></custom-block></block></custom-block><block s="doReport"><custom-block s="closest word to %l %br in language %txt %br not including %l"><block s="reportVariadicSum"><list><custom-block s="features of word %txt in language %txt"><l>father</l><l>English</l></custom-block><block var="female essence"/></list></block><l>English</l><block s="reportNewList"><list></list></block></custom-block></block></script><script x="6.666666666666667" y="248.91666666666666"><custom-block s="%txt is to %txt as %txt is to..."><l>man</l><l>woman</l><l>father</l></custom-block></script><script x="6.666666666666667" y="271.9166666666667"><custom-block s="%txt is to %txt as %txt is to..."><l>man</l><l>king</l><l>girl</l></custom-block></script><script x="6.666666666666667" y="294.9166666666667"><custom-block s="closest words to %l in language %txt %br and include distances %b"><custom-block s="features of word %txt in language %txt"><l>teaching</l><l>English</l></custom-block><l>English</l><l><bool>false</bool></l></custom-block></script><comment x="6.666666666666667" y="347.9166666666667" w="296.42857142857144" collapsed="true">A good analogy has a short distance from A-B to C-D.</comment><script x="6.666666666666667" y="369.9166666666667"><custom-block s="let %upvar be %s"><l>female essence</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><l>woman</l><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><l>man</l><l>English</l></custom-block></block></custom-block><custom-block s="let %upvar be %s"><l>royal female essence</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><l>queen</l><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><l>king</l><l>English</l></custom-block></block></custom-block><block s="doReport"><custom-block s="distance from features %l to %l"><block var="female essence"/><block var="royal female essence"/></custom-block></block></script><script x="6.666666666666667" y="514.4166666666666"><custom-block s="let %upvar be %s"><l>female essence</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><l>woman</l><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><l>man</l><l>English</l></custom-block></block></custom-block><custom-block s="let %upvar be %s"><l>parental female essence</l><block s="reportDifference"><custom-block s="features of word %txt in language %txt"><l>mother</l><l>English</l></custom-block><custom-block s="features of word %txt in language %txt"><l>father</l><l>English</l></custom-block></block></custom-block><block s="doReport"><custom-block s="distance from features %l to %l"><block var="female essence"/><block var="parental female essence"/></custom-block></block></script><script x="6.666666666666667" y="669.3333333333335"><block s="reportVariadicProduct"><list><custom-block s="select %n of %n"><l>4</l><l>20000</l></custom-block><l>6</l></list><comment w="293.57142857142867" collapsed="false">Number of possible analogies selecting 4 words out of 20,000. Among 4 words there are 6 possible analogies.</comment></block></script><script x="6.666666666666667" y="728.3333333333334"><block s="doSetVar"><l>best analogies</l><custom-block s="Find analogies among %n words near %txt %br keeping those with a score less than %n %br in language %txt"><l>10</l><l>woman</l><l>2</l><l>English</l></custom-block><comment w="355.00000000000017" collapsed="false">Considering only the N words closest to the word it collects only analogies&#xD;where the distance from A-B to C-D is less than the threshold.</comment></block></script></scripts></sprite><watcher var="best analogies" style="normal" x="6.9947222222218715" y="16.087864608472334" color="243,118,29" extX="928.0000000000007" extY="622" hidden="true"/><watcher var="possibilities left to explore" style="normal" x="183.62879934247675" y="461.7028759712127" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="best analogies"><list linked="linked" id="2670"><item><list struct="atomic" id="2671">0.941176550919114,woman,man,women,men</list></item><item><list struct="atomic" id="2672">0.941176550919114,woman,women,man,men</list></item><item><list struct="atomic" id="2673">1.257371579923771,women,men,husband,wife</list></item><item><list struct="atomic" id="2674">1.257371579923771,women,husband,men,wife</list></item><item><list struct="atomic" id="2675">1.3622084311881206,woman,husband,man,wife</list></item><item><list struct="atomic" id="2676">1.3622084311881206,woman,man,husband,wife</list></item><item><list struct="atomic" id="2677">1.3833505376440198,woman,lady,women,ladies</list></item><item><list struct="atomic" id="2678">1.3833505376440198,woman,women,lady,ladies</list></item><item><list struct="atomic" id="2679">1.4081962682808096,women,wife,men,husband</list></item><item><list struct="atomic" id="2680">1.4388500373562219,woman,lady,men,ladies</list></item><item><list struct="atomic" id="2681">1.4388500373562219,woman,men,lady,ladies</list></item><item><list struct="atomic" id="2682">1.4396605745799946,man,men,lady,ladies</list></item><item><list struct="atomic" id="2683">1.4396605745799946,man,lady,men,ladies</list></item><item><list struct="atomic" id="2684">1.4566445448358356,lady,man,women,men</list></item><item><list struct="atomic" id="2685">1.4566445448358358,man,men,lady,women</list></item><item><list struct="atomic" id="2686">1.5432348168700698,man,men,girl,women</list></item><item><list struct="atomic" id="2687">1.54323481687007,girl,man,women,men</list></item><item><list struct="atomic" id="2688">1.545612402900546,woman,husband,lady,wife</list></item><item><list struct="atomic" id="2689">1.545612402900546,woman,lady,husband,wife</list></item><item><list struct="atomic" id="2690">1.5643463587070479,men,man,women,person</list></item><item><list struct="atomic" id="2691">1.5668200119988251,woman,lady,women,men</list></item><item><list struct="atomic" id="2692">1.5668200119988251,woman,women,lady,men</list></item><item><list struct="atomic" id="2693">1.576054558065805,woman,person,women,men</list></item><item><list struct="atomic" id="2694">1.576054558065805,women,woman,men,person</list></item><item><list struct="atomic" id="2695">1.6143563361290474,woman,girl,women,men</list></item><item><list struct="atomic" id="2696">1.6143563361290474,woman,women,girl,men</list></item><item><list struct="atomic" id="2697">1.6250511038118156,woman,wife,man,husband</list></item><item><list struct="atomic" id="2698">1.6286750780926191,man,wife,men,husband</list></item><item><list struct="atomic" id="2699">1.637632281679865,women,lady,men,ladies</list></item><item><list struct="atomic" id="2700">1.637632281679865,lady,ladies,women,men</list></item><item><list struct="atomic" id="2701">1.650360890835699,woman,husband,girl,wife</list></item><item><list struct="atomic" id="2702">1.650360890835699,woman,girl,husband,wife</list></item><item><list struct="atomic" id="2703">1.671606661269331,woman,men,lady,women</list></item><item><list struct="atomic" id="2704">1.6766730599613036,woman,wife,women,husband</list></item><item><list struct="atomic" id="2705">1.6811116441212344,man,wife,person,husband</list></item><item><list struct="atomic" id="2706">1.703950938260841,husband,lady,wife,ladies</list></item><item><list struct="atomic" id="2707">1.703950938260841,lady,ladies,husband,wife</list></item><item><list struct="atomic" id="2708">1.7134204416896632,lady,women,girl,men</list></item><item><list struct="atomic" id="2709">1.7134204416896632,lady,girl,women,men</list></item><item><list struct="atomic" id="2710">1.7277494841556162,ladies,lady,men,person</list></item><item><list struct="atomic" id="2711">1.7277494841556162,person,lady,men,ladies</list></item><item><list struct="atomic" id="2712">1.7313772177084927,woman,husband,women,wife</list></item><item><list struct="atomic" id="2713">1.7313772177084927,woman,women,husband,wife</list></item><item><list struct="atomic" id="2714">1.7383900454155852,woman,lady,man,ladies</list></item><item><list struct="atomic" id="2715">1.7383900454155852,woman,man,lady,ladies</list></item><item><list struct="atomic" id="2716">1.751438066275825,woman,wife,lady,husband</list></item><item><list struct="atomic" id="2717">1.7554407081983712,wife,lady,husband,ladies</list></item><item><list struct="atomic" id="2718">1.7569146478984117,lady,wife,girl,husband</list></item><item><list struct="atomic" id="2719">1.7586774235203002,lady,person,women,men</list></item><item><list struct="atomic" id="2720">1.7586774235203004,women,lady,men,person</list></item><item><list struct="atomic" id="2721">1.7595232791867228,men,lady,women,ladies</list></item><item><list struct="atomic" id="2722">1.7613124765356092,men,man,women,wife</list></item><item><list struct="atomic" id="2723">1.7613124765356092,wife,man,women,men</list></item><item><list struct="atomic" id="2724">1.7634131932136603,women,ladies,husband,wife</list></item><item><list struct="atomic" id="2725">1.7634131932136607,husband,women,wife,ladies</list></item><item><list struct="atomic" id="2726">1.7777295660476597,woman,men,husband,wife</list></item><item><list struct="atomic" id="2727">1.7777295660476597,woman,husband,men,wife</list></item><item><list struct="atomic" id="2728">1.7795143747663296,lady,men,girl,women</list></item><item><list struct="atomic" id="2729">1.7817829244888386,man,lady,women,ladies</list></item><item><list struct="atomic" id="2730">1.7817829244888388,man,women,lady,ladies</list></item><item><list struct="atomic" id="2731">1.7822323249228755,woman,men,girl,women</list></item><item><list struct="atomic" id="2732">1.7828121774320476,woman,person,husband,wife</list></item><item><list struct="atomic" id="2733">1.7828121774320478,woman,husband,person,wife</list></item><item><list struct="atomic" id="2734">1.78723138960796,man,person,husband,wife</list></item><item><list struct="atomic" id="2735">1.78723138960796,man,husband,person,wife</list></item><item><list struct="atomic" id="2736">1.7907748602211278,women,woman,men,wife</list></item><item><list struct="atomic" id="2737">1.7907748602211278,woman,wife,women,men</list></item><item><list struct="atomic" id="2738">1.795038403488905,man,husband,men,wife</list></item><item><list struct="atomic" id="2739">1.795038403488905,man,men,husband,wife</list></item><item><list struct="atomic" id="2740">1.7952691051761567,lady,girl,husband,wife</list></item><item><list struct="atomic" id="2741">1.7952691051761567,lady,husband,girl,wife</list></item><item><list struct="atomic" id="2742">1.796040467250112,woman,man,lady,person</list></item><item><list struct="atomic" id="2743">1.796040467250112,woman,lady,man,person</list></item><item><list struct="atomic" id="2744">1.8058927709030785,man,wife,lady,husband</list></item><item><list struct="atomic" id="2745">1.8059262637217501,men,man,women,husband</list></item><item><list struct="atomic" id="2746">1.8059262637217501,husband,man,women,men</list></item><item><list struct="atomic" id="2747">1.8072262143959736,woman,wife,girl,husband</list></item><item><list struct="atomic" id="2748">1.8159299518428564,men,ladies,husband,wife</list></item><item><list struct="atomic" id="2749">1.8159299518428564,husband,men,wife,ladies</list></item><item><list struct="atomic" id="2750">1.8218114556671337,woman,women,man,ladies</list></item><item><list struct="atomic" id="2751">1.8218114556671339,woman,man,women,ladies</list></item><item><list struct="atomic" id="2752">1.8268708575047112,man,wife,girl,husband</list></item><item><list struct="atomic" id="2753">1.8293857630363257,women,man,husband,wife</list></item><item><list struct="atomic" id="2754">1.8293857630363257,man,wife,women,husband</list></item><item><list struct="atomic" id="2755">1.834637198467316,man,person,women,men</list></item><item><list struct="atomic" id="2756">1.8346371984673162,women,man,men,person</list></item><item><list struct="atomic" id="2757">1.835159497155492,man,husband,lady,wife</list></item><item><list struct="atomic" id="2758">1.8351594971554923,man,lady,husband,wife</list></item><item><list struct="atomic" id="2759">1.837244248868397,women,woman,men,husband</list></item><item><list struct="atomic" id="2760">1.837244248868397,woman,husband,women,men</list></item><item><list struct="atomic" id="2761">1.8373680442415457,woman,wife,men,husband</list></item><item><list struct="atomic" id="2762">1.842584893566644,woman,lady,man,girl</list></item><item><list struct="atomic" id="2763">1.842584893566644,woman,man,lady,girl</list></item><item><list struct="atomic" id="2764">1.843034047433741,man,woman,men,ladies</list></item><item><list struct="atomic" id="2765">1.843034047433741,woman,ladies,man,men</list></item><item><list struct="atomic" id="2766">1.8448117464933922,woman,men,man,women</list></item><item><list struct="atomic" id="2767">1.8514979179032311,woman,girl,women,ladies</list></item><item><list struct="atomic" id="2768">1.8514979179032311,woman,women,girl,ladies</list></item><item><list struct="atomic" id="2769">1.8527389535495815,lady,wife,women,men</list></item><item><list struct="atomic" id="2770">1.8527389535495817,women,lady,men,wife</list></item><item><list struct="atomic" id="2771">1.8564306504687964,ladies,lady,men,husband</list></item><item><list struct="atomic" id="2772">1.8564306504687966,husband,lady,men,ladies</list></item><item><list struct="atomic" id="2773">1.8584173858420503,men,man,women,ladies</list></item><item><list struct="atomic" id="2774">1.8584173858420503,ladies,man,women,men</list></item><item><list struct="atomic" id="2775">1.8601133917049253,ladies,lady,men,wife</list></item><item><list struct="atomic" id="2776">1.8601133917049255,wife,lady,men,ladies</list></item><item><list struct="atomic" id="2777">1.8772982368286606,lady,ladies,girl,men</list></item><item><list struct="atomic" id="2778">1.8772982368286606,girl,lady,men,ladies</list></item><item><list struct="atomic" id="2779">1.8821108176725405,girl,person,women,men</list></item><item><list struct="atomic" id="2780">1.8821108176725407,women,girl,men,person</list></item><item><list struct="atomic" id="2781">1.8912569999870457,ladies,lady,women,husband</list></item><item><list struct="atomic" id="2782">1.8912569999870457,husband,lady,women,ladies</list></item><item><list struct="atomic" id="2783">1.8921195628183751,man,men,girl,ladies</list></item><item><list struct="atomic" id="2784">1.8921195628183753,man,girl,men,ladies</list></item><item><list struct="atomic" id="2785">1.8921577339112088,man,husband,girl,wife</list></item><item><list struct="atomic" id="2786">1.8921577339112088,man,girl,husband,wife</list></item><item><list struct="atomic" id="2787">1.8961906180550525,woman,wife,person,husband</list></item><item><list struct="atomic" id="2788">1.89688818858677,ladies,man,lady,person</list></item><item><list struct="atomic" id="2789">1.89688818858677,person,man,lady,ladies</list></item><item><list struct="atomic" id="2790">1.9047018244334202,ladies,lady,women,person</list></item><item><list struct="atomic" id="2791">1.9047018244334202,person,lady,women,ladies</list></item><item><list struct="atomic" id="2792">1.907816765310548,woman,girl,man,lady</list></item><item><list struct="atomic" id="2793">1.9103603141815955,men,woman,man,lady</list></item><item><list struct="atomic" id="2794">1.9112092480939913,lady,ladies,girl,women</list></item><item><list struct="atomic" id="2795">1.9112092480939913,girl,lady,women,ladies</list></item><item><list struct="atomic" id="2796">1.9188663762753257,woman,girl,man,person</list></item><item><list struct="atomic" id="2797">1.9188663762753257,woman,man,girl,person</list></item><item><list struct="atomic" id="2798">1.920459473667695,woman,ladies,man,lady</list></item><item><list struct="atomic" id="2799">1.922383008143799,lady,wife,person,husband</list></item><item><list struct="atomic" id="2800">1.9235660009472,woman,girl,men,ladies</list></item><item><list struct="atomic" id="2801">1.9235660009472,woman,men,girl,ladies</list></item><item><list struct="atomic" id="2802">1.925052321366876,women,woman,men,ladies</list></item><item><list struct="atomic" id="2803">1.925052321366876,woman,ladies,women,men</list></item><item><list struct="atomic" id="2804">1.9385042919735822,woman,ladies,husband,wife</list></item><item><list struct="atomic" id="2805">1.9385042919735822,husband,woman,wife,ladies</list></item><item><list struct="atomic" id="2806">1.9471920372680245,ladies,lady,women,wife</list></item><item><list struct="atomic" id="2807">1.9471920372680245,wife,lady,women,ladies</list></item><item><list struct="atomic" id="2808">1.951616752848776,woman,man,lady,wife</list></item><item><list struct="atomic" id="2809">1.951616752848776,woman,lady,man,wife</list></item><item><list struct="atomic" id="2810">1.9591877960011892,women,lady,husband,wife</list></item><item><list struct="atomic" id="2811">1.9591877960011894,lady,wife,women,husband</list></item><item><list struct="atomic" id="2812">1.9652505311028408,woman,man,women,person</list></item><item><list struct="atomic" id="2813">1.9652505311028408,woman,women,man,person</list></item><item><list struct="atomic" id="2814">1.9774889658352082,woman,man,lady,men</list></item><item><list struct="atomic" id="2815">1.9774889658352082,woman,lady,man,men</list></item><item><list struct="atomic" id="2816">1.9846268037089498,wife,men,husband,ladies</list></item><item><list struct="atomic" id="2817">1.9850799127491061,women,lady,men,husband</list></item><item><list struct="atomic" id="2818">1.9850799127491063,lady,husband,women,men</list></item><item><list struct="atomic" id="2819">1.9853057069378515,woman,girl,lady,ladies</list></item><item><list struct="atomic" id="2820">1.9853057069378515,woman,lady,girl,ladies</list></item><item><list struct="atomic" id="2821">1.987401426486355,men,woman,women,husband</list></item><item><list struct="atomic" id="2822">1.9892346342249323,lady,person,husband,wife</list></item><item><list struct="atomic" id="2823">1.9892346342249323,lady,husband,person,wife</list></item><item><list struct="atomic" id="2824">1.9908895298333353,men,woman,man,girl</list></item><item><list struct="atomic" id="2825">1.9908895298333353,girl,woman,man,men</list></item></list></variable><variable name="possibilities left to explore"><l>0</l></variable></variables></scene></scenes></project><media name="word2vec word analogy search" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"><costume name="man woman father x" center-x="240" center-y="110" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAADcCAYAAACoG3L3AAAAAXNSR0IArs4c6QAAIABJREFUeF7tnQd4VcXWhr99es5JQghFMFSpgnJR4IIdK3ZERQFBKVdBEBWR3qt0lKKoKIKCCqh4KYoUC4gFRAWkg/ReQso5OXX//5rk5EauXAgkOe3bz4OSsPeemXfNPN9eM2vWaLqu6+BFAiRAAiRAAiRQpAQ0CnCR8mZhJEACJEACJKAIUIDZEUiABEiABEggBAQowCGAziJJgARIgARIgALMPkACJEACJEACISBAAQ4BdBZJAiRAAiRAAhRg9gESIAESIAESCAEBCnAIoLNIEiABEiABEqAAsw+QAAmQAAmQQAgIUIBDAJ1FkgAJkAAJkAAFmH2ABEiABEiABEJAgAIcAugskgRIgARIgAQowOwDJEACJEACJBACAhTgEEBnkSRAAiRAAiRAAWYfIAESIAESIIEQEKAAhwA6iyQBEiABEiABCjD7AAmQAAmQAAmEgAAFOATQWSQJkAAJkAAJUIDZB0iABEiABEggBAQowCGAziJJgARIgARIgALMPkACJEACJEACISBAAQ4BdBZJAiRAAiRAAhRg9gESIAESIAESCAEBCnAIoLNIEiABEiABEqAAsw+QAAmQAAlEPQE9p4VaGLWUAhxGxmBVSIAESCAWCeg6cNLpx2k/EBTKIId4iwGlrRpMF6mcPp+OFXsy8ep+P+qWtaFPDSsSL/JdBW0bCnBBE+X7SIAESIAE8kXAm+XD8NVpmJ0eQOAvT2q4tbIdQ2vH4XIzcD7d3H/CjU+P+1EqwYT7y1qQaAS8Hj/e/yUVz/wZwG1V4jGnQRxKGvJVvUK7mQJcaGj5YhIgARIggQsh4HF50WFZKj5MCyAgLrAWFFsDmtZwYFJdO1JyBPhsDzkoyjp0fL0hDXdtyMI15eyYd30CKpgBn8ePD0SA9/xHgEvkEeBziXrecs6+5+x/y6nyhTT1r58Xui7OPy8SIAESIAESCA2BoADPzdBxd7V4vHalFZqmKY/XbtZQ3KLB4A9g9xk/tmYGkOHXYTNoKF3MjGsTDLAYgN3H3Zi1NRMj9npRMdmKl6rbUDneiHqJBiz+LSjADky50oJDZ/w46geqJJlQK9EIex5BdnkD2HDKi71ZIukaSjmMqFfcpLxpqU9Glh+rjnqhxxlRN96Abad9cBuM+GdJE5LN+eNHDzh/vHg3CZAACZBAARPIK8AP107EB3VsMOR6wQA8fszelomJu91KGJ0BwKJpSI43omftBLStaMbsNcfx4j4RZ0DTAKtBQ8USVkyr58DO7WfQcY8fFZJNuNKgY8NpP04FgJTiFvSvG4/Wl5lUeQHdi6E/ZmDOYS8OuWU9WkPxOAPuqxyP4bWsKGnSsfdYFh75Oh3pyRbcbQ6oKe/kJAteb1QMNySef5o8LzoKcAF3JL6OBEiABEggfwSCAvxxho7brnBgWDUrlFOqASXjjCjh92HQT2mYfVpHaZsGsyZBWwEczArgHyl2vH9dPDZvScXAP33Y4gzAbjGgssOA6iUsGHilHes2p6Ljbp8K8Eq2GXGZRcMxpx8nfMCd1eMxra4dFQ1+vPljKgbs88Flyn7e4NexJ80PWEwYeUsSni1lwN5jLjy4PB1bNSDOqOFyhxE1RMivSUADBwU4f5bn3SRAAiRAAiElkHcNWETSmOP9apoRbeskYGRNM3Yd9yHTaECdJCPiDMDKbRno+LsTKGbF3BsT8c8EDSs3peG+DVlKlD++LgEVrEBAvGdZA97tQ9lEKwY1iMdDSRr+vSkd/Xa4YSttx7xG8ajgzEKT1enY6DOgb70EdK1ogdkTwMyfTuPlQwHUqRiPZdfHITVHgHeaDHigmgNja8chxQQYTVr2R0M+LnrA+YDFW0mABEiABAqeQF4BNmgabDnrrZrZiOfqJqJfFTOMfj8+2ebE0K1u7HD6lTcrEUwlilsw/8ZiuKmYhm82pqFJThDW3OsTUNEC+Nw5UdB5grCSNR0/bE1Hh99dcJe0Y24jB3DUicd+zkSGxYQeNeNwRVz2GnRmqgvttvhQvrQDq2+3w5MjwCfjLRh9QzG0LmXIt/AGCVKAC74v8Y0kQAIkQAL5IJB3DbhZrUS8X8em1nGD0cfpGR6M/Dkdbx7zIynBhDoOA7KyfPjptB/WxPwLcAlNx5q/CLAdroNOPLHOicM6EGfK3ncs5YvI65qGCpc78N0NcTh1lgC3KWU47/aoc6GgAOejk/BWEiABEiCBgifwP4OwdB3r9jnR+vsMZMRbMLRBPO5LMuCXP53o9LsTWQkWzDvLA66dYsfc6xJwhVWHzxPAnLO3If2XADtgPu7EIz9n4pTFjCH/cKBRkgEmaWoASPPqMMeZ0ChRy10DDnrAFOCC7w98IwmQAAmQQBEROJ8Ar9/nRJvVGThkNeKJanG4xgbM3+HCV6f9SM6dgjbgp61puPkXF4x2E7peGYdr/38LUoNEE77dKFHQefYB/40AXxnwoe13aVicGkDNcnFoXd6E0hrgzwxgycEslK9SDGOqGCnARdQnWAwJkAAJkEAREBAB7rQsFXMydDSvnYiZZ01BnzzjwfB1GfjguA+nfTo0g4aSFg1pHh32RHPOGrAB6SdcaLgqHXtdOtw6ULmUDdPrObB75xl03J03EYeOn7amo93vLmSVyF4Dru/QsOOACy/+7sRPGX6k+mT+GdCMGso5THihQTG8UMaAPTlT0KfiLRh3QzG05BR0EfQQFkECJEACJFAoBGSa+OPfM7DABTQpb0eHymry9y9rq2mZPszd6cRXqQEY7UY0L23C90c9OK4Z0bOWA7UdmhLM/cedGLHTg6NeDVXL2PB8JTO2H3Li9f1+1Cljw0vVrEjQgENHszBuVxYy463oWd2GKrbsFeeTGV58sNuF705nZ+UyxZvQuoINd5QwwWEAjp1xY/jvLrisZnSuZcc1idnBWhdzcQ34YqjxGRIgARIggQIncL4Ti86VtvF8qSKlon/37v9V3rlSXp7rXRcDgwJ8MdT4DAmQAAmQAAlcIgEK8CUC5OMkQAIkQALhS8Dn8+Gnn37C/PnzUbVqVbRp0wYJCQkq13SoLwpwqC3A8kmABEiABAqFgIjvV199he7du2Pbtm1ISkrCa6+9htatW1OAC4U4X0oCJEACJBDzBOSgv7Vr1yqx3blzJ4IH/40ZM0YJssGQ38SRBY+UHnDBM+UbSYAESIAEQkzg2LFjuO2227BlyxYEAgHY7Xa0aNECgwYNQvny5ekBh9g+LJ4ESIAESCAKCbjdbowePRpDhgxR4ive7pNPPolhw4YhJSUlLMRXsNMDjsLOxyaRAAmQQKwSEMGdMmUKBgwYgPT0dJjNZjzwwAOYNGkSypYtGzbiSwGO1R7KdpMACZBAFBIQ8R05ciQmTJiA1NRUte4rkc+rV69G6dKlw0p8KcBR2AHZJBIgARKIRQIitsOHD8+ddpafZd13/PjxeOaZZ8Ii6Opsu3AKOhZ7KttMAiRAAlFEQDxf2V40ePBgNe0s4utwOJQYd+7cGTabHG8Y+n2/FOAo6nRsCgmQAAnEOgER3/79+6s1XqfTqcQ3Li4Ob775pop6NplMYSm+nIKO9Z7L9pMACZBABBMQsRXPVwQ4KL4iuLIO3K1bNxiNxrAVXwpwBHc8Vp0ESIAEYp2Ay+VCrVq1sHfvXuX5Wq1WvP7663jqqafUmm84TjvntRnXgGO9B7P9JEACJBCBBGStt0mTJirPs0xDWywWNe0suZ4jQXzpAUdgp2OVSYAESCDWCRw4cAA9e/bExx9/rMRXPN2bbroJS5cuVV5wuHu+QfvRA471nsz2kwAJkEAEEZAUk126dMHChQshGa/kqlSpEj777DPUqVMnLLcbnQsvBTiCOh6rSgIkQAKxTGDPnj3o3bs35s2bpzxfuWrXro2ZM2fimmuuiSjx5RR0LPdktp0ESIAEIojAwYMH0bdvX8ydOxdZWVlqmrl69eoq6Ormm29W240i7aIHHGkWY31JgARIIMYIiPg+//zzWLBgQa7nK9HP8+fPR82aNSNmzfdss1GAY6wjs7kkQAIkEEkEfD4f5syZgw4dOkD+Lte1116rTjuS4wbD4Vzfi+VJAb5YcnyOBEiABEigUAnI3t5Vq1ahe/fu+OWXX1RZdevWxcSJE3H99derk44i+aIAR7L1WHcSIAESiFIC4u2uWbNGZbT69ddfVaKNatWqqb2+jRs3jthp57zmogBHaedls0iABEggkgmsWLECvXr1wvr165X4StCVnGokU8+JiYkU4Eg2LutOAiRAAiQQfgREbLds2YLHHnsMmzdvzhXfZs2a4dVXX0W5cuWiQnyFPD3g8Ot/rBEJkAAJxCQBv9+P7777TiXa2Lp1a25+5+bNm+OVV15BSkpK1IgvBTgmuzgbTQIkQALhSWDdunVo3749Nm3alOv5iviOGjVKZbuKlBSTF0qXHvCFkuJ9JEACJEAChUbg5MmTaNSoEXbv3p17uELTpk3VOb+lS5eO6O1G54JGAS607sQXkwAJkAAJXAgBr9er1nf79OkDmYYWT7dFixbK8y1fvnzUeb5BJhTgC+kdvIcESIAESKBQCEjQ1axZs9CpU6fcwxXEE16yZAmKFSsWteLLNeBC6U58KQmQAAmQwIUQEPF977338Nxzz8Hlcql1X9li1K9fP5V8w2g0XshrIvYeesARazpWnARIgAQil4CI7bhx45TYStIN+TkuLg4jR45UgiziG21BV2dbiwIcuf2XNScBEiCBiCQggvvxxx+rxBri+col4vvCCy9g2LBhUe/5Bo1GAY7I7stKkwAJkEBkEnC73Zg6dSoGDRqEzMxM1Yj4+HgMGTJEnXgkhytEu+dLAY7MvstakwAJkEBEE/j000/Rrl07pKenq2lnEVwRY5mKjiXxFSPSA47orszKkwAJkEDkEJC9vpLf+f3334fH41FRzhJs1bdv35gTXwpw5PRb1pQESIAEIprAkSNHVHDV4sWLkZWVBYfDoQKuOnfuHBMBV39nPHrAEd2lWXkSIAESCH8Chw4dUlPM4vkGE23ccMMN+PLLL5UQx+pFAY5Vy7PdJEACJFAEBPbv34/BgwerqOdg0FXNmjUxefJk3HrrrTET8UwPuAg6WzQWoUujdCCQ0zgNgEH+8zeX3BtQDwCaBsht57g1GlGxTSRAAnkIHD58WK3xzp07N9fzrVKlCj744AM0aNAgKvM756cD0APOD60YvVfXA/hkcyYWnPTDDQ1lHGY8e2Ucato1GPIw8Qd0LNyeibnHfPBCQ9liFvS6Og4peW+KUYZsNgnEGgFZ85XoZhFbp9OpthZVq1YNEyZMQJMmTWAymWINyX+1lwIc813g/AD8uhe9l6dh6lEfsnTAYjSgdf0kTKhiRmJOpjhxejPTs/DQ0jR87dLFYUa5JCvevj0Jd9npBZ+fMu8ggeghsG/fPnWwwmeffZabaKNOnTpq/2/Dhg1hNpujp7GX0BIK8CXAi5VHRYB7LkvDG0d9SI4z4JQ7AHsJB1Y1dqCmTVNTzAFdx7pNZ9BkgweXFTPizGkfjIkWTLujOO5zyH43wOkNINWnwx3InsK2mQxItmgwa2qGG2nuAE57dSTZjLDpAZx068qTjrdoKG7REN1ZYWOlN7Gd0U5AgqwWLFiAxx9/XB0rKJes+Yrne9ddd8X8tHNe+1OAo300FED7cgX4mA83lrfh6DE3NnqNeOeOJLQpZYRJA7wuDx5elIqvdQOerWbBgj9ccCXkCHCcjl0nPHjvzyz8mOrDYTdgNQDli5vRurIdD5QxwaIBH2w6gwl7fGhROwHWEy4sOuLDcYMBV5U2o20NO+4sZuB6cgHYk68ggcIk8P3336u9vmvWrFGJNv7xj3+oYwUl4MpqtRZm0RH3bgpwxJms6CucV4Cb1UqE+YQTs4768MiViZh2bRySDTrWb8tAw7VOlCthw9QaRnRbkwlnjgA3Mfnx7u9p6LLdkxugJa2QIK3qyXGYeXM86jkMmLTmFHr96cVldiNOZMp6c/alGQy4t1o8pteLw2V0g4u+A7BEErhAAr///jueeOIJbN68WYmvrPuKGA8fPjymo53PhY8CfIEdK5ZvyyvAra5Jwh0BN17Y4IK9pA2f3JCIOlYdI9acxrADfjxWKwH9ygTw8IoMZOYI8L3WAL7Zm4Uv0oG7yphR1qbh94NZGPmHE4eMRky5KQktShlzBdhqNuLpOvF4qrQRczalY/IBLyqVjsPM6xPQwMGY6ljui2x7+BIQz/fFF1/E+vXrc6eemzdvjhEjRqjgK17/TYACzF5xXgJ5Bbh1veLoXdyPh75Px1afAUOvS0KbRB9aLEvDOr+GCbck414tC3ct/48A32cHPP4Atp7y4N8HfdjhDCDN5cPPx704YzJi7PVJ6Hi5KVeAq5R14Iub41HRpGP5tnQ8ud6F+BI2zLo+EY0SsteceZEACYQPge3bt6NFixbYsGFD7najBx98EOPHj0elSpXo/Z7DVBTg8OnDYVuTswX4lSpGTPvmNEYd86NS5XgMT/Si5e9uJCXasfLeeNhPOHFnHgFuYgngq50Z6LvZjX1+wGHSYAjoOCnRWBYjxlyXhE4iwD9kT0HXqpiIb26KQzHo+GZbBlqvd8KeTAEO2w7CisUsAQmykmnnhx56CJJwQ6adJcL5/vvvx5tvvomSJUvGzMlGF9MJKMAXQy3GnjlbgEdVs+DMn2fQ6JcsnNSMqG4JYIdTw/M3J2N0igGHjv1HgN+4ozjqud3o9n0aFjs1PFbTjn+lmJGR5sGw3zOx3megAMdYf2Jzo4fApk2b8OSTTyoRFjGWNd8HHnhAeb6ScCNWjhW8WItSgC+WXAw993cCnGTw4ZklpzHzdAB+ABaHFb8/lITqmo79R/8qwFdluNB2dTrW+zX0rF8MvSoZMWNdOvrsdMNtpgccQ12JTY0iAiK4X3zxBZo2bZo77dy4cWMsXLgQdrud4nsBtqYAXwCkWL8lKMDTjvnwRL3iGF3NgiQjMGt9KrpudSMzoOGOmglYUj8OBvxHgCUKWjzg63QPhn2fhqnH/Wq/r0HCn6GriGirNUeAU/6zBpx3CvrbbRl4glPQsd4F2f4wI+Dz+fDRRx+hffv2kL+Lp3vvvfeqaeeyZctSfC/QXhTgCwQVy7cFdB8Gfp2Gd47r6NSwGF6qYEKCAdh42Il2P2fikN+AiY2K4bHLTXLANA4ec6HpN5nwJFjxTuNEXGvTse+0B2/+kYkPj/qRZtLQ9HIL0jK8+CEdGPrPYuhQ1oRpv6Vi4A4vapZLwOLrbUgE8NveTDz5ixOmYla81TABDeIZghXLfZFtDz0B8XxFfDt16oSMjIzcvb5Lliyh+ObTPBTgfAKLxduDhzHI/4MHLAiH4O8Vk5yDF4K/1/Xse3P+Sd0rv/u7K3ifejbnuaDM5i0j732xaAe2mQRCTcDr9WLlypUqyEoyXknQVUJCAjp06KDWfQ0GJn7Pj40owPmhxXtJgARIIEYJeDwevPvuu3jhhRcgQhwU35dfflmd9Ws0MktOfrsGBTi/xHg/CZAACcQYAZl2/vTTT9GuXTt1pm9wu1Hnzp1zPV9GPOe/U1CA88+MT5AACZBAzBCQowRnz56tUkqmpqYq8U1MTFSesBw3KNPOFN+L6w4U4IvjxqdIgARIIOoJiNiuWLFC7fWV832D+Z0HDhyInj17qu1GvC6eAAX44tnxSRIgARKIagLi8cr67jvvvAO3260Crrp27YqhQ4fS8y0Ay1OACwAiX3FuAvLFnPfiVBV7CwlEBoEDBw5gyJAhasuRbDeSsStrvhMnToTJZOK0cwGYkQJcABD5iv8twIsXL8bGjRtx5513on79+sRFAiQQ5gTE85XoZol6Dn5EX3bZZWot+LbbbqP4FpD9KMAFBJKv+W8C8tU8d+5c9RUtX9M33XQTpk+fjqpVqxIXCZBAmBI4dOiQOkLw/fffV56vXHKc4NixY3HPPffQ+y1Au1GACxAmX5VNQL6YZb1oxowZav1IvqblKleuHBYsWIBrr72WqEiABMKMgIzbw4cPY8CAAWraWaKfZdq5evXqmDx5MiTPs5x0xKvgCFCAC44l35RDQAby0qVL1Z5BiZyUQSzBG3JYd7du3ZCUlERWJEACYUZAPpT79++vpp2zsrLUh7TkdZb8znfffTfFtxDsRQEuBKix/EoZtKdPn1Z7BGW9SK7k5GS1niS5Yym+sdw72PZwJiCRzvKBHMzvfNVVV2HChAm4+eabYbVaw7nqEVs3CnDEmi78Ki7iK4NXhFamsILng9aqVQuLFi1CpUqVwq/SrBEJkAB+++03tGjRAtu3b1ee7+WXX4733nsPt99+u5rB4u6FwukkFODC4Rpzbw2u+3bv3j13z6AM2vLly6ttC3JIN9ePYq5bsMFhTkDG7a+//qo839WrV+d+NL/xxhto27YtPd9Cth8FuJABx8rrJVH7o48+qtZ+5e8ivuLxSiRlw4YNVeQkLxIggfAhIOK7efNmtGnTBhs2bFCnG8m4lY/lKVOmqKBJer6Fay8KcOHyjYm3y1Rzjx498Oqrr+Z+Qcvgla9oOaSbgzgmugEbGWEERHQlxaT8P5hiskmTJmrcVqxYkeO2COxJAS4CyNFchIjv3r171VfzH3/8oZoqG/ZnzZql1o94RFk0W59ti0QCIrb79+9H8+bN8csvv+R6vjJexfOVPb8817doLEsBLhrOUVmKDGQ5F7RkyZK5kZMycGvUqIFNmzZxEEel1dmoSCYgY1YSbVSuXFkJbzBQ8pZbbsGyZcvUBzNnrIrOwhTgomMdVSXJQJb0kq1atVLrSPKziK9s1pd1X4mi5EUCJBBeBHbv3o2WLVti7dq1asyK4MqYnTp1qkq4QfEtWntRgIuWd1SUJl/Nx44dU2npZP1IfhbxlQG8fPlypKSkREU72QgSiCYCIrjz5s1TAixjVsRXPF9ZLpIPZopv0VubAlz0zCO+REkzef3116vtCzKoJcK5UaNG+Oabb7jmG/HWZQOikYAsFckOhWbNmqmpZxm3Ir4yW8Vo59BZnAIcOvYRWbKI75w5cyD7fSXjlXi+csiCpK+74oorIrJNrDQJRDMBEdsPP/wQzz//PE6dOqXE12azqV0LTz/9NGM1Qmh8CnAI4Uda0TJwP/vsM5Xp6vjx46r64v2KEDscDk5hRZpBWd+oJyBj9uuvv1bbAeXjWS4RX8nTLhHPjHYObRegAIeWf8SUnpmZifnz56vTjQ4ePKjqXaxYMTz77LMYOnQos1xFjCVZ0VghIIIrKWE7d+4Ml8ulPF85FEV+luMGRXy57hva3kABDi3/iChd1oxkrUhOSgmKrwze3r17o1evXkhMTIyIdrCSJBArBERs5TAUGZ9yxKD8LKlg5UQyGcccs+HREyjA4WGHsK2FDNyFCxfiueeeU5v35ZKv6I4dO2LQoEGIj48P27qzYiQQiwSC0c7i6Z48eVIhkCWiLl26YOTIkQyUDKNOQQEOI2OEY1Vk076I74IFC3KnsCRxu6SepPiGo8VYp1gnIGdwt2/fXkU9B7cI9u3bFz179lRjltPO4dNDKMDhY4uwqol8RZ85c0Z5uRKsEcyYU7NmTTWw5ZQjXiRAAuFDQMas/JGzuKdPn54bdDVgwAAVu2GxWMKnsqyJIkABZkf4LwIyiCXKecyYMXj77beRlpamvpplm5EEbzz00EM8poz9hgTCjICs9coUsyTWyDtmJetVUlISPd8wsxcFOAwNEg5VEvEdPHiwOpDb6XTmiu+ECRNw991380s6HIzEOpBAHgKyFVC8XBmzEvEsH8xyKIp8QEvGOh6KEp7dhR5weNolJLUKTmG98sor6ks6KL4ykGXTvmTR4TRWSEzDQkngnAREfGUroEw7y3ZBucqUKYM333wTcrwgx2z4dh4KcPjapshrJuu8u3btwlNPPYUffvhBfUXL0WRjx47FXXfdpTbw8yIBEggfAhJwJeIr2wSD4lulShXIbBXFN3zsdK6aUIDD30ZFUkPxfv/88081xbxz505VphwzKFNYDz74INePisQKLIQELpxAMOBKxmhWVpYao/JHtg3KB7NkqeMV3gQowOFtnyKpnXi+27dvVxly5ECF4NGCt912G6ZNmwb5ouZFAiQQPgRkjEqwleztlaUiuSRIUnYsyLjltHP42Op/1YQCHBl2KrRaivgePXpU5YqV830l65VkubrxxhvVAQtycDfzxRYafr6YBPJNQMT3jz/+wOOPP44tW7ao54MBVzKDRc8330hD9gAFOGToQ1+wDOQ9e/agadOm2LRpU67ne8MNN2DmzJmoVKkSp55DbybWgAT+QmDHjh3o0KEDVq9enTtmJQCrTZs2FN8I6ysU4AgzWEFWV7xfCdaQfLHBjDl169ZVU1u1atWi+BYkbL6LBC6RgHwwS3yGnGQkQZLBMStTzlOnTlUBk8xydYmQi/hxCnARAw+X4mTwysEK4uUGs1zVqFFDecI8JSVcrMR6kEA2ARHfffv2qchm8YBlzMols1Vy4lFKSgrFNwI7CwU4Ao12qVX2er1YsmQJHnnkEbXmK5fkiJUva9nvyzXfSyXM50mg4AgEl4qeeeYZrFixQomxrPM2bNhQeb5XX301x2zB4S7SN1GAixR36AuTL+fly5er9aJjx46pClmtVvXzuHHj1Bm/vEiABMKDQHDaWbYCbtu2TYmvZLW69dZbVZCkeL78YA4PW11MLSjAF0MtQp+Rwbts2TLl+WZkZKhWyDFlrVq1UtuNOJAj1LCsdtQSkP29EnAl08zy8SziK9PO4vnWrl2b084RbnkKcIQb8EKrL+IrKetEfL/99tvcL2nZ+zts2DB6vhcKkveRQBEREMGVpBpdu3ZVZ3GbzWbccsstmDhxIsW3iGxQ2MVQgAubcBi8X8RXBvPAgQPVNLPH41FfzuL9pqamMlF7GNiIVSCBvASCs1X33XeG0lsdAAAWgUlEQVSfitOQn8uWLauWj+RIUM5WRUd/oQBHhx3P2QoZuCdPnlTbjSZPnqymnkV8Ze1IDlxo3bo1p7GivA+weZFFQMbsvHnzlOcbjNOQPOwShDVkyBB1tCCv6CBAAY4OO/5tK2Qgy7mgkqz99ddfz80XKzmeJWVd8+bNKb5RbH82LfIIyJj97LPPlPjK+b7yswRJPvvssxg0aBDFN/JM+j9rTAGOMoMGmyMD98yZM2rKWTzf4AHdpUqVUr+TwCueERqlxmezIpaALBVJTmdZ85W/x8XFoWPHjmrMcrxGrFnPWXEKcPTZVLVIBu9bb72lslwFxbdChQoYPXq0CsRivtgoNTybFdEE5MNZAiNnzJih1n6ff/559OnTR51Mxiv6CFCAo8+mqkVyulGnTp3w9ddfq59FcGfPno2HH36Y4hulNmezooOAiHBQgGULEgOuosOuf9cKCnCU2VYGr6Sq69GjB7788svciGfJmrNgwQJ1agovEiCB8CUgYzh4Mbdz+NqpIGpGAS4IimHyjuAxZXJGqCRrl5STMoAla04wWTvXkcLEWKxG7BIQgc0VWQ0waDkscn6v9FcDNPkTu5hioeUU4Ciyskw7d+vWDV988YWKnhTxbdCggcpyJacc8Ws6iozNpkQmAV86fEs+gmvGV0BSNdi6doG57uXZIpx+BO4p4+H+4U8Yb20De5cHoFkMkdlO1vqCCFCALwhTeN8UTLQh+3qHDx+eO+3cuHFjtf9XkrXT8w1vG7J2MUJA9yGw8Ss4e4+Cd2smjC27I777wzAUtyLw80fIeGk8fAcyYBv/CeKa1YJmpAsczT2DAhwF1pWI55UrV6JFixYq6YZc4vl+8MEHPCM0CuzLJkQZAb8Hnjf7wPn6IgQ81eCYMRnWfybA3b0DnIu3Qb/pJSRNagtDoiXKGs7mnE2AAhzhfULEV44WfO6557B37141zSx/5GfxhhMSEiK8haw+CUQfAX3X93D2Ha6mm033t4G1lg9Z0z+BH1XgmPk2rFeXyLM2HH3tZ4uyCVCAI7gniPiuW7cOzZo1U1lzlEE1TaWsGzFiBJKTkyO4daw6CUQxAX8GvHMmI3PAewjY4qAZDdAzdJjb90R83+bQzKYobjybFiRAAY7QvuDz+bBq1SrceeedKumGrANLvlg515dHC0aoUVntmCKg7/4ezpd6wb3+mIqK1srUgH3KNFj/mZIdAc0r6glQgCPQxME0k23btsXnn3+uvF45quzJJ59U087c6xuBRmWVY4uArkPfuhKZL/eFZ9PpbAFOqgrbmDGw3XUVtNytSbGFJdZaSwGOQIvLcYLvvPOOWucV79disaBly5bqd4x2jkCDssqxR8B5Au5JQ5D5xlcwlJY4DQ8Cx9ww3tMJCeOfh8Fu5B7gGOgVFOAIMrJ4vunp6SqpRv/+/ZX4ivd71VVXKU+4cuXKEdQaVpUEYpWAH4HfliKzzyvwbvfD2rc/zP6f4XztEwRQBnFT3oXtpnLQTJyGjvYeQgGOIAvLuu/YsWMxbNgwuFwuVXM5G1T2/0rOWPGEeZEACYQ5gay9yBoyFK55P0Gr3wrxozvDlHwAmW1fgueXvUDpBxG/aDDMpR1h3hBW71IJUIAvlWARPC+eb2ZmpkrQ/uKLL+Z6vmXLlkXv3r3VVDSzXBWBIVgECVwqgYAb/m/nIrPfBPgyyyJu8Cuw3V8HmgnwfTkZmYNmwH/UCWv/GbC3awTNxExYl4o8nJ+nAIezdXLqJlPNMu2cV3wl0Grw4MFqyxHFNwKMyCqSgBBwnoBn3nS4P/0NWu2bYXuxPUylrNlRz2cOwP3aBLjX7YPhmntg79EGhnjOakVzx6EAh7l1xfs9ceIEWrVqhRUrVqjtRg6HQ01Fy3GDFN8wNyCrRwJ/S0BOXDjHGq8c1MBtSDHRbyjAYWxmEdvdu3erowUXLlwIWQOWKOfrrrsO3377Lc8JDWPbsWokQAIkcD4CFODzEQrRv4v47tq1S63vLl++HH6/XwmunGo0ffp0nm4UIruwWBIgARIoKAIU4IIiWYDvEfE9evQoOnfunOv5ylRzpUqV8OGHH6Jhw4YFWBpfRQIkQAIkEAoCFOBQUD9PmeLtPv3005gzZw7cbrda523UqBHeeust1K5dm+u+YWgzVokESIAE8kuAApxfYoV8v0Q8f/nll2jfvj2OHTumxFY833//+9+oVasWxbeQ+fP1JEACJFBUBCjARUX6AsoR8V26dCl69eqFjRs3KrGVoCsJuBIPWNaAeZEACZAACUQHAQpwmNhRxHfx4sV4+eWXsXPnTpVsQ8RX1oFHjRoFu90eJjVlNUiABEiABAqCAAW4IChe4jtEbJctW4auXbsq8ZVLvF85WnDcuHEoUaIEp54vkTEfJwESIIFwI0ABDrFFJOJ55cqVeOGFF7BlyxaVaEOmmiW386BBgyDpJplsI8RGYvEkQAIkUAgEKMCFADU/r5SI5xEjRqi0kkHxlQAsST0pZ/xSfPNDk/eSAAmQQOQQoACHyFYitk6nE1OmTMGAAQPg9XqV2FatWhWLFi1C9erVQ1QzFksCJEACJFAUBCjARUH5b8qQtJLi5Q4cOBBpaWlKfMXjnTx5Mp566ilYrdYQ1YzFkgAJkAAJFAUBCnBRUD6rjPT0dHW0YLdu3XKPFpRAKznnt2PHjpx2DoFNWCQJkAAJFDUBCnARE5eIZ8loJXt9g55vQkIChg4dqsTXZrMVcY1YHAmQAAmQQCgIUICLkLqs+4rodunSBbNnz1YlJyUlYfjw4Wq/LwOuitAYLIoESIAEQkyAAlxEBhDPd+/evSrgSg5UCCbaaNasGT7++GNmuSoiO7AYEiABEggXAhTgIrCEeL5HjhxRa75z585V243E273qqqvw2muvoXHjxvR+i8AOLIIESIAEwokABbiQrREU3759+2LmzJlKfCXFpJxqNH78eNx+++0U30K2AV9PAiRAAuFIgAJciFYRsZX9vRJcFRRf8Xzr16+PMWPG4JZbbqH4FiJ/vpoESIAEwpkABbiQrCPiK3/Wr18PWec9cOCAWuctV64cZs2ahZtvvpniW0js+VoSIAESiAQCFOBCspIEWa1bt055v7/99psS29KlS2PevHm48cYbKb6FxJ2vJQESIIFIIUABLgRLBQ9YaNeuHfbv369KsFgsaNGiBd577z2KbyEw5ytJgARIINIIUIAL2GIivj/++COefvppbN68WU1DS4rJe++9V+V9TklJoQAXMHO+jgRIgAQikQAFuACtJmK7fPlyvPTSS7niKxHPLVu2xMiRI9X6Ly8SIAESIAESEAIU4ALsB3K0YKtWrdQ6b3Cv7/3336+CriTjFS8SIAESIAESCBKgABdQXxDxnTRpkjrb9+TJk2qaWbzfffv2oUyZMpx2LiDOfA0JkAAJRAsBCnABWFLEV/b1TpgwQYmvXCK+svdXpp+Z47kAIPMVJEACJBBlBCjAl2BQmWZ2u914/fXXVY5np9OpxNZut6s13+eee445ni+BLx8lARIggWgmQAG+BOuK5zt58mQltsePH1fiK8k2Xn31VbRv314JMS8SIAESIAES+DsCFOCL7Bfi/YoAN2/eHAsWLMhd85V9vjLtLELMiwRIgARIgATORYACfJF9Q1JL9unTR53rGzxgQQKwXnzxRVit1ot8Kx8jARIgARKIFQIU4HxaWsRW1nq7dOmizvX1eDzK+y1evDh++uknVK1aNZ9v5O0kQAIkQAKxSIACnA+ri/gePnwY/fr1yz3dSKaaRXTFE5ZTjniRAAmQAAmQwIUQoABfCKWce2TaeeDAgSqfs4ixiG/NmjUxceJE3HnnndxulA+WvJUESIAEYp0ABfgCe4AEXI0ePRr9+/fPzXJVoUIF5QnzaMELhMjbSIAESIAEcglQgC+gM3i9XqxduxY9evTAmjVr1BOVK1dWhyvIIQu8SIAESIAESCC/BCjA5yEm5/rK6UYSdCXn+solQVeS81lSTyYnJ+eXOe8nARIgARIgAR7G8L/6gM/nU6caPfvss/jhhx/U1LPNZsOtt96qkm1Ur16dXYgESIAESIAELooAPeBzYJM1XxFdSSe5YcOGXPFt2rQpRo0ahUqVKl0UcD5EAiRAAiRAAmo2VRe3jtdfCAiSrKwsdOjQQe31DU4733333XjjjTdQsWJFEiMBEiABEiCBSyJAAf4bfBJ09f7776uIZ9n3K9POcq6v5HyuVq3aJQHnwyRAAiRAAiRAD/isPiCerwRdTZs2TZ1udPr0aRVwlZKSovI916tXj72GBEiABEiABAqEAD3gPBhFgBcvXozWrVvjzJkz6l/i4uLQvXt39O7dGw6Ho0Cg8yUkQAIkQAIkQAHO0wfE+3377bdV1LNcCQkJ6sAF+blYsWLsLSRAAiRAAiRQYAQowGd5wLLmK2kl9+zZo9aAe/XqxaMFC6y78UUkQAIkQAJBAhTgs/qCTEMfOXIEEohVokQJTjtzrJAACZAACRQKAQpwoWDlS0mABEiABEjgfxOgALOHkAAJkAAJkEAICISfAOs69CNb4J73OfxH7DA/2gzmaytAEziyTWj7t3DP/w6BzNKwPtMWpoo2qH/0u+Bb9inc322Dsf6NsN5/OzSLMQRIWSQJkAAJkAAJnJ9AGApwADjwMzK69YNn7UGYu4yCo3NTGOI1wJ8B7+R+yJz6BQJeI8xjViL+kTLQRGezjiOr50twfr4OplbdED+gIwz28wPgHSRAAiRAAiQQCgJhKMA64NoPV9/eyPr3ehju6Ij4oc/AWMYOnN4JZ4/eyPpqI6AZgBt7ofg7baBZjdAPb0Fml47wbPTB1m8i4to1ggYd0AOA1wfd6xcXGjAYAJMFmsmY7TnL5XVD9/gBsxWaUYfu9ihvG0YTNKsl5x1e6D4/YMj5nSHnYbnP74Pu8wL+nKyeRiM0ixUI3uPzQHf7ALOUC+hZ8n7kvN8sxyuFwvYskwRIgARIIIQEwlOA4Yf3vRHIHDcPenJjxE8fAHP1UghsW4XMl3rA+0c6YNAB6z+QsGIWzGXNCGxfg4x/PQN/ViXYp82EtX5JwO9G4MAmeP+9HJ6VvyKQ6YRWrgLMdzwK6+3Xw1DKCmgBBJa+jow3VsLQbCBsNfbA/dpH8KW6YKx7I2wvPQ3DiS3wfPgR3D/vhVbualiffwbW2uUA8bwzTsL3zUK4l30B/y4XdB9grHU1LG2fgaVORSXe/h/fQ8bIJTA16wBbHR3u12fDd8gHw7WNYe3YHOZKpULYBVg0CZAACZBAKAiEnwALBV2H/5v3kfHyqwjoKYgbNw62xtXg/+YDZPQcj4BWAwbTFvgP+2D/aA1sDRLg/3oS0v/1LlD9YSR8OgRGuxf+rV/DNWQUPD8fhWaxAAbxdr3Q/XEw3vkcHEMfg6mUFf55g5A26DNotW6Dtv8bBDKNgMcDXTfDUPMWGC2b4NtyCtC9ylM2VLsN9vGDYLmqFPxLpyJj8CwEUr3ZHq94wx4vtEq3IPGTKTAWA3wf9kDawKUwXlkT2LoDAbMJus8DaFaYHuqE+GFPwxAnleNFAiRAAiQQKwTCU4ABBHashqtbH7h3emHtNhz2Do3he3cAMsYvhOmRl2A48Anc3+6Ctf8M2NvWg++d55E+7mcYHx+NxGF3QEs/iKzxfeCasx5a5Yawtn4QxsuM8K9ZDveCbxBIs8M2YQri7quDwGdDlADrWUaYbn0Q1ocaIfDDF8iavwy6zwhDzQawtnwAmnMD3DMXw39Eg23kJMQ1vw6BHz6E65MtMF1dH4aycdCPb4d70rvwndZhnb4KjsY2+D58GWn9vgBMDhjr3wHrIzci8OMiuD9fBa3aDbBPeBWW2gmx0ufYThIgARIggbA+jvDUXmRNHADXzN9gbNYZjlGt4endClmL98E65l0YN82A892vYHyoB+JHPApPj6ZwfavD+tqnsN9eHIFdP8PZ+Sl4j1aGpecY2FvVUUu++rGtcPV6GVkrd8L0WF/ED3oM+uIR2QLsvQYJa2fAXNyIwJbVyHjmafiOlYRt0ETEPdEAOLkFrhd7I2vVdlj7T4X9SYm0DkBPOw7/rgPQT6ZC95+Gd8IouHdkwNRjARKfvgK+j3ogbcBSaBVuRPynb8Gc7EPg1yXI7NQTvvh6sI+eCus/k9khSYAESIAEYohA2HrA8J2B98OpyBw8C2j0COKHPgp39x5wHyqP+BkjYNj5EdJ7vAWt1t2In9gcrqb/gs9+PeKXTYc53gP/b4uQ2bIP/GXqIm7cu7DVj88265nDcI3qAdfstTDd8yIcY58ClozMFmDfPUjcOhomk4bA5tXI6Pg0fBkVYJ84HbZbK0A/vRfuAd3hXPhHtgC3uQX6rlVwz/gY7rXboTv90Aw+6KdPQvcApp55BHjgchiueQyJ8wfCoPkQWL+YAhxDA41NJQESIIGzCYSvAOt+BNZ9jsxeQ+H1Xg37k1fDPXM+AlVaIHFsJxhSv0Pao73g16rC3q8esnrPBhp3QLF3ukGDCPBCZLboC39STdgGT0bcPRVVFLR+ci+yBr8M1+cbYW43DI4eD0JfNPxvBPh7ZHT8V7YAvzodtsZnCXC/qbA/fiU84wbA9dFaoFFjWO9rAmNyJjyTxsCzOQOmlynAHHIkQAIkQAJ/TyB8BVj26RzfCGfPfnB/fwJaJQf0g6kwdRiC+GfvgRbYA1eLFsjaEIChhlVFIFu6DEN8t3tlBRn6vl/h7N4V7t88MN79OOzPPwZjMVkDXgLXhHfgO+iB7ZV3EPdQnjXgv3jA5xPgKbA3LQ1X975wr9oP0wv9YX+0IbBjFZyDxsN70PnXKWh6wByDJEACJEACeQiEsQBLxPIpuMf1hWvGSgSyACRdgbiRoxF3bx3IHK/31ZbImPIHdNl/W7wi7OOnwnZH9ezmeU7DO2cSnGPnw++3wFD+chgsBgSOH0HgjA+Gmx5G/MAuMKUk5EZB/3UK+lwC/DKcCzdlT0G3uBLukf3hmrcGSCoDQ6lE4PQx+A+fUvuUOQXNsUYCJEACJHAuAuEtwIEAfIvehnP42/Adz4RW9TY4xg+BpU5JIBAANs1FavMRCMjWoMqN4XhrLMxVHdltlQQZJ/bA88kCuL9aCN/mQ9CzAEPZajDd/yCs7ZrBVLYENNnyNH88MgbPht9zJxK3jILJZEBg51pkdOkE34lSsE94O3sKOnUv3AN7wLloE6x9psDepjH0navheuMNeFb8Ch02GK7+J8xJx+H+didM3eYj8Zkq8C8ZgTMvzofhmuZInDcABtl7/MfXcHbtCi+uhX30ZFgbMAiLw5QESIAEYolAeAuwTEOnnoL/z/1qby0cpWCsUgGa7JkVgc1Kg3/TDugBHbCXgrFGJWiWPOaTe5wZCBzdj8CpTMAPaI7i0CqkwJAYlyvU+vHD8O89DOjFYWxQGZpkpnKlw79rJ3SPCYYrqsOQZAV8WQjs2Y3AyUxoFarBeFkSAB8CR/YjcOiEpLaCVrIMNIsTgYNngJQrYSprg556EP4dR4H4UjBeWSH7/c4z8O/aDl2Ph6FSNRgSTbHU79hWEiABEoh5AmEuwDFvHwIgARIgARKIUgIU4Cg1LJtFAiRAAiQQ3gQowOFtH9aOBEiABEggSglQgKPUsGwWCZAACZBAeBOgAIe3fVg7EiABEiCBKCXAg2ij1LBsFgmQAAmQQHgT+D9tTYvK5UNatAAAAABJRU5ErkJggg==" mediaID="word2vec word analogy search_Sprite_cst_man woman father x"/></media></snapdata>