0

「単語から数値へ」を検索すると、ほとんどの場合、数値を単語表現に変換する結果が得られます。これは、逆数よりもはるかに簡単な作業のようです。基本的なルックアップ テーブル ("first,1st,one" -> 1 など) で処理できるかなり些細なケースがいくつかありますが、一般的なケースに取り組むのにより適したものを探しています。私が構築しているアプリには、数値を含む場合と含まない場合があるユーザー入力を取得し、それを既知の結果 (それ自体がテキストとして保存されている) と比較することが含まれます。スペル ミス (例: frist、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です。有望なようです。

これ以上完全なライブラリはありますか? 英語とスペイン語の数字を、first、1st、1、1、さらには 1nd のような無効な数字、MMXII のようなローマ数字など、さまざまな形式で処理できるようにしたいと考えています。

4

2 に答える 2

1

人間の言語から数学に変換することを望んでおり、その逆ではないことを考えると、基本的に巨大なテーブル/列挙型のセットが必要です。数学は論理に基づいており、規則セットは、一方通行のときに単語を指すように取られます。合意された一連の規則である言語 (すべての規則の非論理的な例外については英語を参照) からさかのぼって、達成する唯一の確実な方法は、数字を参照するすべての可能な方法を集めて、それを翻訳マップに結び付けることです。

あなたが見つけたライブラリは、数について話す新しい形式を受け入れるために、時間の経過とともに更新する必要があるだけでなく、変更された以前のルールを否定または変更する可能性もあります.

1番目のような無効な入力をどのように処理する予定ですか? 彼らは1または2を意味しましたか?これは、博士論文全体が自然言語処理に専念している理由を垣間見ることができます。

于 2012-10-17T22:11:20.927 に答える
1

この種のことについては、Lex と Yacc を調べる必要があります。いくつかの「人間の計算機」はすでに作成されていると思いますが(現時点では見つけられませんが)、そこから数値の理解を引き出すことができます。

于 2012-10-17T22:15:23.613 に答える