2015-10-20 127 views
-1

有没有人知道形态学实现工具(最好是Java的)。 我正在研究一个项目,我需要实现正确的动词“是”,如果它是男性/女性 - 单数/复数 - 第一人称/第三人称并且关于这样的输入产生正确的动词“是”。 SimpleNLG是包含形态学实现的理想软件,但它仅适用于英语和法语。例如:如果特征是男性第一人称单数,结果将是“我”,如果特征是复数第三人称男性,结果将成为“他们”。西班牙语的形态学实现

+0

也发布在[CS.SE](http://cs.stackexchange.com/q/48568/755)和[Linguistics.SE](http://linguistics.stackexchange.com/q/14751)上。 请[不要在多个网站上发布相同的问题](http://meta.stackexchange.com/q/64068)。每个社区都应该诚实地回答问题,不要浪费任何人的时间。如果您在一周左右后没有得到满意的答案,请随时举报移民。 –

+0

我刚刚删除了冗余。 –

回答

1

您可以查看FOMA这是一个C库(它也可作为Windows的独立可执行文件提供)。它基于Kimmo Koskenniemi的利用有限状态传感器的计算模型。它是xfst的开源版本。你可以看到一个速成课程here

这是非常容易使用foma。 github上的This repo可以作为示例(查看spanish.lexcspanish.foma文件)。如果你火了FOMA,并将这两个脚本在同一目录下,就可以加载文件和测试形态实现者:

FOMA [0]:源spanish.foma
打开文件“spanish.foma”。
已定义Word: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个路径。
定义Lexicon: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 

在对这样的情况,这里有一个如何将传感器作为一个实现者为例:

foma[1]: down 
apply down> estar+V+1C+PresenteIndicativo+3P+Sg 
esta 

记住,你自己定义的标签在lexc脚本的开始,所以你可以很容易地改变或在回购充实到现有的脚本。如果你真的通读文档,你很快就会知道它的窍门。它非常方便,易于使用。祝你好运!

+0

我能够完成你所建议的任何事情,但到目前为止,我无法将其整合到我的Java项目中,你有什么想法。我正在尝试以下命令“cat mytext.txt | flookup -x -i spanish.foma”mytext。txt包含“estar + V + 1C + PresenteIndicativo + 3P + Sg”和标志-i应该执行向下操作 –

+0

亲爱的Ahmed,我恐怕我不知道应该如何将它合并到Java中,因为我不是Java程序员。然而,在Python和Windows上,我会做'subprocess.check_output('type mytext.txt | flookup -x -i spanish.foma',shell = True)''。 Java中必须有一些类似的过程。你必须找到一个os模​​块,它可以让你在shell中执行程序并将结果发送回你的Java程序。 – Omid

+0

好的,我会试试看。谢谢 –