2015-10-20 67 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

好的,我會試試看。謝謝 –