python 3.6 中是否有比 NLTK 更快的雪球词干提取器?
Is there a quicker snowball stemmer in python 3.6 than NLTK's?
我目前正在使用 NLTK 的 SnowballStemmer 来阻止我文档中的单词,当我有 68 个文档时它工作正常。现在我有 4000 个文档,这太慢了。我读了另一个 post,其中有人建议使用 PyStemmer
,但是 Python 上没有提供 3.6 是否有任何其他软件包可以解决这个问题?或者也许我可以在代码中做一些事情来加快这个过程。
代码:
eng_stemmer = nltk.stem.SnowballStemmer('english')
...
class StemmedCountVectorizer(CountVectorizer):
def build_analyzer(self):
analyzer = super(StemmedCountVectorizer, self).build_analyzer()
return lambda doc: ([eng_stemmer.stem(w) for w in analyzer(doc)])
PyStemmer 在其文档中没有说它适用于 python 3.6,但它确实适用。安装与 python 3.6 兼容的 Visual Studio C++ Build,您可以在此处找到:
http://landinghub.visualstudio.com/visual-cpp-build-tools
然后尝试pip install pystemmer
如果这不起作用,请确保您完全按照此处所述手动安装:https://github.com/snowballstem/pystemmer
我目前正在使用 NLTK 的 SnowballStemmer 来阻止我文档中的单词,当我有 68 个文档时它工作正常。现在我有 4000 个文档,这太慢了。我读了另一个 post,其中有人建议使用 PyStemmer
,但是 Python 上没有提供 3.6 是否有任何其他软件包可以解决这个问题?或者也许我可以在代码中做一些事情来加快这个过程。
代码:
eng_stemmer = nltk.stem.SnowballStemmer('english')
...
class StemmedCountVectorizer(CountVectorizer):
def build_analyzer(self):
analyzer = super(StemmedCountVectorizer, self).build_analyzer()
return lambda doc: ([eng_stemmer.stem(w) for w in analyzer(doc)])
PyStemmer 在其文档中没有说它适用于 python 3.6,但它确实适用。安装与 python 3.6 兼容的 Visual Studio C++ Build,您可以在此处找到: http://landinghub.visualstudio.com/visual-cpp-build-tools
然后尝试pip install pystemmer
如果这不起作用,请确保您完全按照此处所述手动安装:https://github.com/snowballstem/pystemmer