我正在寻找波兰语的词干分析器/词形还原器,最好是在 Python 中。你会推荐什么?
我有一份食谱中的成分清单。复数形式的变化不同,取决于计数器,例如:西红柿
5 晚饭时间
2 紫罗兰色
1个pomidor
我希望我的解析器将所有这些成分识别为一种产品,因此需要词干。
我正在寻找波兰语的词干分析器/词形还原器,最好是在 Python 中。你会推荐什么?
我有一份食谱中的成分清单。复数形式的变化不同,取决于计数器,例如:西红柿
5 晚饭时间
2 紫罗兰色
1个pomidor
我希望我的解析器将所有这些成分识别为一种产品,因此需要词干。
波兰语有很多词形还原解决方案。最好的实现之一是波兰语形态句法分析器,您可以在此处下载。
它具有与 python 的绑定,但您必须手动安装它们。它是“形态句法分析器”,这意味着您可以获得给定单词的所有可能的引理。如果您还想消除歧义,可以使用作为 docker 容器提供的此工具。
我的团队目前正在为Spacy实现波兰语支持,我们将介绍词形还原,因此具有良好集成和支持的工具将很快推出。
我已将 Stempel Stemmer 从 Java 移植到 Python: https ://github.com/dzieciou/pystempel ,并通过在 Morfeusz 的 Polimorf 字典上预训练词干表来提高其有效性。
它看起来比用 pyjini 包装 Java 实现要快一些,但主要的一点是我不必在一个项目中混合多种语言,避免了跨 Python 和 Java 的调试。
在 PolEval 2017 中是带有词形还原子任务的POS 标记任务。获胜的解决方案 KRNNT在这个子任务中获得了大约98% 的准确率。KRNNT也可用作 docker 映像。您的示例的标记结果是(TSV 格式):
5 5 num:pl:nom:m3:rec
pomidorów pomidor subst:pl:gen:m3
2 2 num:pl:acc:m3:congr
pomidory pomidor subst:pl:nom:m3
1 1 adj:sg:nom:m3:pos
pomidor pomidor subst:sg:nom:m3
如您所见,在第二列中,引理是pomidor(第三列是 POS 标签)。