1

我正在尝试使用 Apertium 的标记器对一些意大利语句子进行 POS 标记。虽然根据Apertium GitHub 页面,除了形态分析之外,我还应该得到表面形式作为输出,但我只得到分析。我也想要表面形式。我无法推断它,因为标记器不一定标记单个标记,所以我不能简单地标记原始句子并循环它或使用标记器的输出压缩它。

根据 GitHub 页面:

In [1]: import apertium
In [2]: tagger = apertium.Tagger('ita')
In [3]: tagger.tag('gatti').
Out[3]: [gatti/gatto<n><m><pl>]

我得到了什么:

In [1]: import apertium
In [2]: tagger = apertium.Tagger('ita')
In [3]: tagger.tag('gatti') # 'gatti' is the surface form
Out[3]: [gatto<n><m><pl>]

我怎样才能得到表面形式?如果我一次提供一个令牌,这不会有问题,因为我会知道令牌是什么。但是一句话,我不知道标记器是如何创建块的。

4

1 回答 1

0

默认情况下,在创建语言标记器时,ita它会查找/usr/share/apertium/modes/ita-tagger.mode. 这是一个调用各种 apertium 命令的 shell 脚本。意大利标记器脚本的命令恰好配置为不包含表面命令(它缺少该-p选项)。

一个快速而肮脏的解决方案是sudo vim /usr/share/apertium/modes/ita-tagger.modesudo nano或任何您的编辑器)并添加-p到最后一个命令的末尾,因此文件看起来像

lt-proc -w '/usr/share/apertium/apertium-ita/ita.automorf.bin' | cg-proc '/usr/share/apertium/apertium-ita/ita.rlx.bin' | apertium-tagger -g $2 '/usr/share/apertium/apertium-ita/ita.prob' -p

再做tagger = apertium.Tagger('ita')一次。


无 sudo 的解决方案是复制模式文件,编辑并将其添加到搜索路径,请参阅https://github.com/apertium/apertium-python#installing-more-modes-from-other-language-数据

于 2020-11-18T21:29:57.813 回答