有没有第三方工具可以在python中执行词干分析

2024-05-28 22:40:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythonltk库对大型语料库执行词干分析。我正在做下面的工作

text = [porter.stem(token) for token in text.split()] 
text = ' '.join(text)

“文本”代表我文件的一行。我的文件中有数百万行,这个过程需要大量的时间。我只想问有没有更好的方法来做这个手术?在


Tags: 文件textin文本tokenfor过程代表
1条回答
网友
1楼 · 发布于 2024-05-28 22:40:52

多少是“百万”,多长是“巨大的时间”?波特词干分析不是一个复杂的算法,应该相当快。我怀疑你是I/O受限,而不是别的什么。不过。。。也许你可以弥补一些改进。在

如果顺序不重要,并且您不需要每个词干的副本,那么您可能会发现使用字典和/或set来存储词干更简单(而且更节省内存)。这将使您避免需要词干您已经看到,这将提高性能,并且每个词干只存储一次。在

例如:

seenwords = set()
seenstems = set()

for line in input_file:
    line = line.lower().split()
    seenstems.union(porter.stem(token) for token in line if token not in seenwords)
    seenwords.union(line)

如果单词在同一行上,这可以多次进行词干转换,但是对于后续的行,就不需要再对它们进行词干了。您也可以逐个处理单词,这样可以避免在同一行中多次使用词干,但是使用生成器表达式而不是for循环有一些速度优势。在

相关问题 更多 >

    热门问题