有谁知道形态实现工具(最好是 Java 工具)。我正在做一个项目,我需要实现正确的动词“to be”,如果它是针对男性/女性 - 单数/复数 - 第一人称/第三人称的,并且关于此类输入会生成正确的动词“to be”。SimpleNLG 是包含形态学实现的理想软件,但它仅适用于英语和法语。例如:如果特征是男性第一人称单数,结果将是“I”,如果特征是复数第三人称男性,结果将是“他们”。
1 回答
您可以查看FOMA,它是一个 C 库(它也可作为 Windows 的独立可执行文件使用)。它基于Kimmo Koskenniemi的利用有限状态传感器的计算模型。它是xfst的开源版本。您可以在此处查看快速速成课程。
使用 foma 非常容易。github 上的这个 repo可以作为示例(查看spanish.lexc
和spanish.foma
文件)。如果启动 foma 并将两个脚本放在同一个目录中,则可以加载文件并测试形态实现器:
foma[0]: source spanish.foma
打开文件“spanish.foma”。
定义字:1.6 kB。2 种状态,64 条弧线,循环。
定义清理:276 字节。1 个状态,2 个弧,循环。
Root...5, A...2, N...2, V1...65, V2...65, V3...65
构建词典...
确定...
最小化...
完成!
7.9 KB。289 个状态,441 条弧线,199 条路径。
定义的词典:7.9 kB。289 个状态,441 条弧线,199 条路径。9.2 KB。290 个状态,505 个弧,循环。
现在,FOMA 的好处是它是双向的。它可以同时实现和分析形态形态。如果您向上应用,它会剖析表格,但如果您向下应用,它会充当实现者:
foma[1]: up
apply up> leo
leo+N+Sg
leo+A+Sg
leir+V+3C+PresenteIndicativo+1P+Sg
leer+V+2C+PresenteIndicativo+1P+Sg
lear+V+1C+PresenteIndicativo+1P+Sg
在 to-be 的情况下,这里是一个如何使用转换器作为实现器的示例:
foma[1]: down
apply down> estar+V+1C+PresenteIndicativo+3P+Sg
esta
请记住,您自己在 lexc 脚本的开头定义了标签,因此您可以轻松地更改或扩充该 repo 中的现有脚本。如果你真的通读了文档,你会很快掌握它的窍门。它非常方便且易于使用。祝你好运!