擅长:python、mysql、java
<p>NLTK返回的停止字似乎是<code>list</code>,因此有O(n)查找。首先将列表转换为<code>set</code>,这样会更快。在</p>
<pre><code>>>> some_word = "aren't"
>>> stop = stopwords.words('english')
>>> type(stop)
list
>>> %timeit some_word in stop
1000000 loops, best of 3: 1.3 µs per loop
>>> stop = set(stopwords.words('english'))
>>> %timeit some_word in stop
10000000 loops, best of 3: 43.8 ns per loop
</code></pre>
<p>然而,虽然这应该可以解决性能问题,但似乎您的代码并没有按照您最初期望的那样进行。<code>readit</code>是一个包含整个文件内容的字符串,因此您迭代的是字符而不是单词。导入<code>csv</code>模块,但从未使用过它。另外,您的<code>csv</code>文件中的字符串应该被引用,否则它将在<em>all</em><code>,</code>处拆分,而不仅仅是最后一个。如果您不能更改csv文件,那么使用<code>str.rsplit</code>可能更容易。在</p>
^{pr2}$