2012-01-13 6 views
16

私は2つの単語がある場合、いくつかの言語で、知りたい:2つの単語のベースが同じかどうかを知るには?

  • 同じ単語、
  • または同じ単語の文法上の変形のいずれか。例えば

  • hadhasは同じベースを有している。両方の場合において、それが動詞have
  • citycitiesが同じ塩基を有するです。
  • wentおよびgoneは同じ塩基を有する。

Microsoft Word APIを使用してスペルチェックテキストだけでなく、単語を正規化したり、少なくとも2つの単語が同じベースを持つかどうかを判断する方法はありますか?

もしそうでなければ、(私はいくつかの言語で)それを可能にする(無料または有料の)ライブラリ(ウェブサービスではない)は何ですか?

+0

あなたは、これはいくつかの言語で行わたいと、あなたが比較している言葉は、単一の比較で異なる言語ことができることを意味するのですか?たとえば、英語の単語「都市」がドイツ語の「Stadt」との一致として見つかるはずですか?あるいは、あなたが比較している2つの単語が同じ辞書に少なくとも住んでいると思いますか? –

+0

@ M.Babcock:私は英語から英語、ドイツ語からドイツ語までしか比較しないので、一度に1つの辞書しか必要ありません。 –

+3

あなたの検索に役立つなら、それはいつも「ステミング」です(http://en.wikipedia.org/wiki/Stemming参照)。 – ruakh

答えて

2

Inflector.NETは、の名詞であるの正規化に使用できるオープンソースライブラリです。利用可能な言語:https://github.com/davidarkemp/Inflector/tree/master/Inflector

+0

(1)それは英語のためにだけ利用できるようです。(2)英語でさえ、それはうまくいかない:私が質問した3つの例のうちの1つ(都市/都市)で働くとしても、他の2つの例では失敗する。英語の文法。 –

+0

@ MainMaでは、追加の「エッジケース」を含めることができます。このクラスは、**名詞**のためにのみ機能します(私はこれを反映するために私の答えを更新しました)。これは英語のみですが、よりローカライズされた実装でデザインパターンを活用できる可能性があります。がんばろう – smartcaveman

1

スノーボールは様々な自然言語を処理できるステミングAPIであり、さまざまなプログラミング言語用のスノーボールの実装があります。

http://snowball.tartarus.org/

関連する問題