gpt4 book ai didi

nltk - 是否可以加速 Wordnet Lemmatizer?

转载 作者:行者123 更新时间:2023-12-01 14:28:25 26 4
gpt4 key购买 nike

我在 Brown Corpus 上通过 NLTK 使用 Wordnet Lemmatizer(以确定其中的名词是以单数形式还是复数形式更多地使用)。
from nltk.stem.wordnet import WordNetLemmatizerl = WordnetLemmatizer()
我注意到即使是最简单的查询(例如下面的查询)也需要很长时间(至少一两秒钟)。l("cats")
大概这是因为每个查询都必须与 Wordnet 建立网络连接?..
我想知道是否有办法仍然使用 Wordnet Lemmatizer 但它的执行速度要快得多?例如,将 Wordnet 下载到我的机器上对我有帮助吗?
或者有什么其他建议?

我试图弄清楚是否可以更快地制作 Wordnet Lemmatizer,而不是尝试不同的 lemmatizer,因为我发现它在像 Porter 和 Lancaster 这样的其他人中效果最好。

最佳答案

它不查询互联网,NLTK 从您的本地机器读取 WordNet。当您运行第一个查询时,NLTK 将 WordNet 从磁盘加载到内存中:

>>> from time import time
>>> t=time(); lemmatize('dogs'); print time()-t, 'seconds'
u'dog'
3.38199806213 seconds
>>> t=time(); lemmatize('cats'); print time()-t, 'seconds'
u'cat'
0.000236034393311 seconds

如果您必须对数千个短语进行词形还原,则速度会相当慢。但是,如果您正在执行大量冗余查询,则可以通过缓存函数的结果来获得一些加速:
from nltk.stem import WordNetLemmatizer
from functools32 import lru_cache
wnl = WordNetLemmatizer()
lemmatize = lru_cache(maxsize=50000)(wnl.lemmatize)

lemmatize('dogs')

关于nltk - 是否可以加速 Wordnet Lemmatizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16181419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com