【发布时间】:2016-10-27 10:51:45
【问题描述】:
我正在尝试使用 NLTK Word Net Lemmatizer 找到一种更快的方法来对列表(名为 text)中的单词进行词形还原。显然这是我整个程序中最耗时的步骤(使用 cProfiler 找到相同的步骤)。
以下是我正在尝试优化速度的一段代码 -
def lemmed(text):
l = len(text)
i = 0
wnl = WordNetLemmatizer()
while (i<l):
text[i] = wnl.lemmatize(text[i])
i = i + 1
return text
使用词形还原器会使我的表现降低 20 倍。任何帮助将不胜感激。
【问题讨论】:
-
将什么的性能降低 20 倍?您需要词形还原的表格做什么?
-
@rmalouf 如果我删除此功能,我的程序运行速度会快 20 倍。我需要在对其运行算法之前对数据进行预处理。因此需要词形还原形式。
-
我问的原因是有比 wordnet 更快的 lemmatizers/stemmers,但它们也给出了不同的结果。答案将取决于您的算法究竟需要什么作为输入,以及您的应用程序需要多快才能足够快。如果不知道目标是什么的详细信息,就很难知道如何回答这样的问题。
-
@rmalouf 我很想知道更快的词形还原器。我的输入是从文档中 OCR 的单词列表,我希望根据单词对该文档进行分类。我知道标签,因此如果有任何帮助,它将属于监督学习。
标签: python performance python-3.x nltk lemmatization