2012-10-17 74 views
0

搜索「詞對數」幾乎總是最終給出將數字轉換爲詞表示的結果,這似乎比倒數簡單得多。有一些相當平凡的情況可以用基本的查找表(「first,1st,one」 - > 1等)來處理,但是我正在尋找更好的方法來解決一般情況。我正在構建的應用程序涉及到用戶輸入,其中可能包含或可能不包含一個數字,並將其與已知結果(其本身作爲文本存儲)進行比較,因此,如果能夠以更復雜的方式處理拼寫錯誤(例如,首先,sceond)然而,這可能可以通過首先通過拼寫檢查器傳遞輸入來完成)。用於將數字的詞表示轉換爲數字的庫

到目前爲止,我發現http://j.mearie.org/post/7462182919/spelt-number-to-decimal這似乎很酷,因爲它似乎支持一些其他語言(或不是),但我更喜歡東西是更便攜,更少混淆。

我發現的最複雜的一個是https://github.com/ged/linguistics/blob/master/lib/linguistics/en/numbers.rbhttp://www.perlmonks.org/?node_id=506028也似乎很有希望。

那裏有更多完整的圖書館嗎?我希望它能處理不同格式的英文和西班牙文數字,比如第一,第一,第一,甚至像第一個那樣的無效數字,以及像MMXII這樣的羅馬數字。

回答

1

鑑於你希望從人類語言轉換成數學,而不是相反,你基本上需要巨大的表格/枚舉集合。數學是基於邏輯的,並且規則集用於指向單向的單詞。從語言這是一組商定規則(參見英語中的不合邏輯的例外到每個規則)後退,唯一可行的方法就是將所有可能的方式引用到一個數字,並將其綁定到一個翻譯地圖中。

您發現的任何圖書館不僅需要隨時更新以接受有關數字的新形式,還可能否定或更改之前已更改的規則。

你甚至計劃如何處理無效的輸入,如1nd?他們是指1或2?這是整個博士論文致力於自然語言處理的原因的一瞥。

1

你應該看看Lex & Yacc這種事情。 我認爲一些「人類計算器」已經寫好了(即使我目前找不到它),所以你可以從中提取數字理解。