<div dir="ltr">There is result for long list (667 words):<div><br></div><div><div>x clause</div><div>+ map</div><div>+--------------------------------------------------------------------------+</div><div>| xxx x     x                +++      +   +    +|</div><div>| xxx x                     +++             |</div><div>| xxx                      +++             |</div><div>| xxx                      +++             |</div><div>| xx                      +++             |</div><div>| xx                       ++             |</div><div>| xx                       ++             |</div><div>| xx                       ++             |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>| xx                       +              |</div><div>|  x                       +              |</div><div>|  x                       +              |</div><div>|  x                       +              |</div><div>|  x                       +              |</div><div>|  x                       +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>|                        +              |</div><div>||_A_|                                   |</div><div>|                      |___MA____|           |</div><div>+--------------------------------------------------------------------------+</div><div>Dataset: x N=50 CI=95.0000</div><div>Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div>Min:       5087.00</div><div>1st Qu.     5113.00</div><div>Median:     5137.00</div><div>3rd Qu.     5188.00</div><div>Max:       7081.00</div><div>Average:     5205.64 [   0.729718] (    5157.08 ‥    5372.30)</div><div>Std. Dev:    287.752 [   -33.4550] (    81.6038 ‥    633.923)</div><div><br></div><div>Outliers: 0/4 = 4 (μ=5206.37, σ=254.297)</div><div>    Outlier variance:    0.365232 (moderate)</div><div><br></div><div>------</div><div><br></div><div>Dataset: + N=50 CI=95.0000</div><div>Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div>Min:     1.13720e+4</div><div>1st Qu.    1.14450e+4</div><div>Median:    1.14890e+4</div><div>3rd Qu.    1.15510e+4</div><div>Max:     1.51180e+4</div><div>Average:   1.16464e+4 [   -0.578036] (  1.15250e+4 ‥   1.19671e+4)</div><div>Std. Dev:    661.815 [   -48.2839] (    336.017 ‥    1217.81)</div><div><br></div><div>Outliers: 0/3 = 3 (μ=1.16458e+4, σ=613.531)</div><div>    Outlier variance:    0.384516 (moderate)</div><div><br></div><div>Difference at 95.0% confidence</div><div>    6440.78 ± 202.485</div><div>    123.727% ± 3.88972%</div><div>    (Student's t, pooled s = 510.294)</div><div>------</div><div><br></div><div>It is still faster when using function clause and performs nice 22 million calls per second.</div><div><br></div><div>Pichi</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 30, 2016 at 8:33 PM, Lloyd R. Prentice <span dir="ltr"><<a href="mailto:lloyd@writersglen.com" target="_blank">lloyd@writersglen.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Hi Pichi,</div><div><br></div><div>Since I haven't learned yet how to design and conduct performance tests, results like these are both interesting and comforting.</div><div><br></div><div>The long stop words list in <a href="http://www.ranks.nl/stopwords" target="_blank">http://www.ranks.nl/stopwords</a> has something less than 700 words. So from these results it looks like either method would do the job in most applications, unless you are filtering stop words out of a huge archive of long documents.</div><div><br></div><div>Many thanks, Pichi.</div><span class=""><div><br></div><div>Best wishes,</div><div><br></div><div>LRP</div><div><br><span>Sent from my iPad</span></div></span><div><div class="h5"><div><br>On Mar 30, 2016, at 2:12 PM, Hynek Vychodil <<a href="mailto:vychodil.hynek@gmail.com" target="_blank">vychodil.hynek@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Every time I read a claim about how fast it will be I have urge test it. I had an idea that constant map in a module could be faster than function clause co I test it.<div><br></div><div>I was wrong and RAO is right as usual. Function using function clause seems to be three times faster than using map.</div><div><br></div><div><div>x clause</div><div>+ map</div><div>+--------------------------------------------------------------------------+</div><div>|xxxxx                           +++++      +|</div><div>|xxxx                            ++++       |</div><div>|xxxx                            +++       |</div><div>|xxxx                            ++       |</div><div>|xxx                             ++       |</div><div>|xxx                             ++       |</div><div>|xx                             ++       |</div><div>|xx                             ++       |</div><div>|xx                             ++       |</div><div>|xx                             +        |</div><div>|xx                             +        |</div><div>|xx                             +        |</div><div>|xx                             +        |</div><div>|xx                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>| x                             +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>|                              +        |</div><div>||A|                                    |</div><div>|                             |_MA_|      |</div><div>+--------------------------------------------------------------------------+</div><div>Dataset: x N=50 CI=95.0000</div><div>Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div>Min:       3490.00</div><div>1st Qu.     3551.00</div><div>Median:     3591.00</div><div>3rd Qu.     3679.00</div><div>Max:       3945.00</div><div>Average:     3630.16 [   0.137534] (    3602.82 ‥    3664.56)</div><div>Std. Dev:    113.400 [   -1.81311] (    90.8425 ‥    141.539)</div><div><br></div><div>Outliers: 0/4 = 4 (μ=3630.30, σ=111.587)</div><div>    Outlier variance:    0.151802 (moderate)</div><div><br></div><div>------</div><div><br></div><div>Dataset: + N=50 CI=95.0000</div><div>Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div>Min:     1.09500e+4</div><div>1st Qu.    1.10160e+4</div><div>Median:    1.10400e+4</div><div>3rd Qu.    1.11270e+4</div><div>Max:     1.28270e+4</div><div>Average:   1.11055e+4 [   0.297998] (  1.10611e+4 ‥   1.12491e+4)</div><div>Std. Dev:    264.914 [   -31.0673] (    84.7956 ‥    582.629)</div><div><br></div><div>Outliers: 0/2 = 2 (μ=1.11058e+4, σ=233.847)</div><div>    Outlier variance:   9.45082e-2 (slight)</div><div><br></div><div>Difference at 95.0% confidence</div><div>    7475.36 ± 80.8533</div><div>    205.924% ± 2.22726%</div><div>    (Student's t, pooled s = 203.763)</div><div>------</div><div><br></div><div>It's about 31 million stopwords_clause:is_stopword/1 per second and 10 million stopwords_map:is_stopword/1 per second.</div><div><br></div><div>You can find code in gist <a href="https://gist.github.com/pichi/2d10c93242d5057913d026a607f07dd4" target="_blank">https://gist.github.com/pichi/2d10c93242d5057913d026a607f07dd4</a></div><div><br></div><div>Pichi</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 30, 2016 at 4:05 AM, Lloyd R. Prentice <span dir="ltr"><<a href="mailto:lloyd@writersglen.com" target="_blank">lloyd@writersglen.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Wow! What a cool idea.<br>
<br>
Thanks, Richard.<br>
<br>
Best wishes,<br>
<br>
LRP<br>
<br>
Sent from my iPad<br>
<br>
> On Mar 29, 2016, at 8:47 PM, "Richard A. O'Keefe" <<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>> wrote:<br>
<span>><br>
><br>
>> On 30/03/16 5:59 am, <a href="mailto:lloyd@writersglen.com" target="_blank">lloyd@writersglen.com</a> wrote:<br>
>> So, I have a printed list of stop words:<br>
>><br>
>> <a href="http://www.ranks.nl/stopwords" rel="noreferrer" target="_blank">http://www.ranks.nl/stopwords</a><br>
>><br>
>> I'd like to turn this list into an Erlang function that I can query---<br>
>><br>
>> stopwords() -><br>
>>Â Â ["word1", "word2" ... "wordN"].<br>
>><br>
>> is_stopword(Word) -><br>
>>Â Â List = stopwords(),<br>
>>Â Â lists_member(Word, List).<br>
</span>> Even if there is some arcane reason why you want the collection of words<br>
> as a list, I strongly suggest generating<br>
><br>
> is_stopword("a") -> true;<br>
> is_stopword("about") -> true;<br>
> ...<br>
> is_stopword("yourselves") -> true;<br>
> is_stopword(_) -> false.<br>
><br>
> Open the list of stopwords in vi.<br>
> :1,$s/^.*$/is_stopword("&") -> true;/<br>
> :$a<br>
> is_stopword(_) -> false.<br>
> <ESC><br>
><br>
> The Erlang compiler will turn this into a trie, roughly speaking.<br>
> This will be *dizzyingly* faster than the code you outlined.<br>
<div><div>><br>
><br>
><br>
><br>
>><br>
>> All my efforts so far have evolved into ugly kludges. Seems to me there must be an elegant method that I'm overlooking.<br>
>><br>
>> Some kind soul point the way?<br>
>><br>
>> Many thanks,<br>
>><br>
>> LRP<br>
>><br>
>> *********************************************<br>
>> My books:<br>
>><br>
>> THE GOSPEL OF ASHES<br>
>> <a href="http://thegospelofashes.com" rel="noreferrer" target="_blank">http://thegospelofashes.com</a><br>
>><br>
>> Strength is not enough. Do they have the courage<br>
>> and the cunning? Can they survive long enough to<br>
>> save the lives of millions?<br>
>><br>
>> FREEIN' PANCHO<br>
>> <a href="http://freeinpancho.com" rel="noreferrer" target="_blank">http://freeinpancho.com</a><br>
>><br>
>> A community of misfits help a troubled boy find his way<br>
>><br>
>> AYA TAKEO<br>
>> <a href="http://ayatakeo.com" rel="noreferrer" target="_blank">http://ayatakeo.com</a><br>
>><br>
>> Star-crossed love, war and power in an alternative<br>
>> universe<br>
>><br>
>> Available through Amazon or by request from your<br>
>> favorite bookstore<br>
>><br>
>><br>
>> **********************************************<br>
>><br>
>> _______________________________________________<br>
>> erlang-questions mailing list<br>
>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
><br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div></div></div>
</div></blockquote></div></div></div></blockquote></div><br></div></div></div>