非英语词的词形还原?

8 投票
2 回答
12841 浏览
提问于 2025-04-17 20:35

我想使用词形还原来简化单词的变化形式。我知道对于英语,WordNet提供了这样的功能,但我也想对荷兰语、法语、西班牙语和意大利语的单词进行词形还原。有没有可靠的方法可以做到这一点呢?谢谢!

2 个回答

0

textacy库 http://textacy.readthedocs.io/en/latest/api_reference.html 提供了一些基本工具,可以用来创建一个“词袋”或“术语袋”,并且可以选择包含词形还原的功能。我试过用西班牙语,效果还不错。

doc.to_bag_of_terms(ngrams=2, named_entities=True, lemmatize=True, as_strings=True)

这个库会自动检查你写的语言,并根据语言进行词形还原。不过,你也可以在这里手动指定语言。

import textacy
text = 'Los gatos y los perros juegan juntos en el patio de su casa'
doc = textacy.Doc(text, lang='es')
print(doc.to_bag_of_words(normalize='lemma', as_strings=True))

你会得到如下的输出: {'perro': 1, 'y': 1, 'gato': 1, 'jugar': 1, 'casar': 1, 'Los': 1, 'patio': 1}

这个库对一些单词的识别还不错,但词形还原的效果不是特别完美。希望这些信息对你有帮助。

11

试试CLIPS的pattern库,它支持德语、英语、西班牙语、法语和意大利语。正好满足你的需求:http://www.clips.ua.ac.be/pattern

不过,它只适用于Python 2,目前还不支持Python 3。

撰写回答