我想在 Python 中使用立陶宛语词干分析器,但是,像NLTK这样的常用工具中没有立陶宛语。
但是,我可以在这里和这里找到立陶宛词干分析器的雪球 .sbl 文件。
但是如何在Python中使用它们呢?
我能够找到的是获取 .c 文件的命令行方法。但接下来呢?
正如雪球官方页面中所述,有 PyStemmer - 雪球的 Python 接口。但是在那里我找不到任何方法来使用新的或自定义的 .sbl 算法。
那么如何将新的 .sbl 算法引入 Python 呢?
截至目前,立陶宛语已添加到 Snowball git repo中,但 pyStemmer 使用的是该 repo 的旧版本,不包含它。我没有设法在 python 中正确安装新版本的 Snowball,而是使用带有 python 子进程模块的 c 可执行文件。
为此,您只需要克隆存储库,使用命令安装它,make
然后您就可以获得可执行的词干词。您可以在 unix 终端中使用命令测试立陶宛语./stemwords -l lt
,然后输入您想要处理的单词。
将它与 python 的子进程一起用于包含要逐行提取的单词的进程文件:
import subprocess
args = ("./stemwords", "-l", "lt", "-i", "input_file.txt", "-o", "output_file.txt")
popen = subprocess.Popen(args, stdout=subprocess.PIPE)
popen.wait()
输入文件:
Kodėl
moteriai
vienišai
ištekėjusiai
输出文件:
kod
mot
vieniš
ištekėjus