【发布时间】:2020-08-06 01:22:13
【问题描述】:
我对文本进行了词干化,得到了部首,现在我想要一个有意义的输出。我知道一个部首有很多可以创建的词,我只需要一个。有可能吗?
【问题讨论】:
我对文本进行了词干化,得到了部首,现在我想要一个有意义的输出。我知道一个部首有很多可以创建的词,我只需要一个。有可能吗?
【问题讨论】:
您可能想尝试词形还原而不是词干提取。这个过程试图为每个输入生成一个规范的“字典单词”而不是一个部首。见What is the difference between lemmatization vs stemming?。
否则,您可以使用 dict 来跟踪映射到每个词干的单词。 (此代码存储一组单词,但您可以将其修改为每个词干只记录一个单词。)
from collections import defaultdict
def get_stem_dict(words, stemmer):
stem_to_words = defaultdict(set)
for word in words:
stem = stemmer.stem(word)
stem_to_words[stem].add(word)
return stem_to_words
然后你可以使用 dict 来查找给定词干的示例词:
def get_example(stem_to_words, stem):
return next(iter(stem_to_words[stem]))
【讨论】: