2011-09-25 12 views
6

単語(例:Apple)を処理してテキストを処理したいのですが、関連する用語を考えてみたいと思います。アップル用とiPod、iPhone、Macは「アップル」に関連した用語であることがわかります。関連する単語をテキスト内で見つけるアルゴリズム

これを解決する方法上の任意のアイデア?AIのすべてと同様に

+0

チェックこのアウト:http://semantic-link.com/ –

答えて

9

出発点として、あなたの質問はtext miningに関連しています。

統計的手法と自然言語処理(nlp)の2つの方法があります。

私はNLPについて多くを知らないが、統計的手法について何かを言うことができます。

  1. あなたはあなたの文書のいくつかのベクトル空間表現を必要とする、 http://en.wikipedia.org/wiki/Vector_space_model http://en.wikipedia.org/wiki/Document-term_matrix http://en.wikipedia.org/wiki/Tf%E2%80%93idf

  2. を見ますセマンティクスを学ぶためには、異なる単語が同じ単語を意味するか、または1つの単語が異なる意味を持つことができます。学習には大きなテキストコーパスが必要です。私はこれが統計的アプローチだと言っていたので、たくさんのサンプルが必要です。 http://www.daviddlewis.com/resources/testcollections/

    多分あなたはあなたが使用しようとしている文脈からの文書がたくさんあります。それが最良の状況です。

  3. このコーパスから潜在的な要因を取得する必要があります。最も一般的なものは以下のとおりです。

    これらの方法にはたくさんの関与します数学。あなたはそれを掘り起こすか、または良いライブラリを見つけなければなりません。

私は次の本をお勧めすることができます:

+0

私のようなダミーの場合、大きな共起行列を作成するだけです。これは言葉が一緒に発生し、実際にはかなりまともであることを私たちに伝えます。それらが同義語であるかどうか、それはAIであり、実際には存在しません。しかし、UWのHoifung Poonは、この(教えられていないセマンティック構文解析)に関するいくつかのきれいな研究を行っています。 – nflacco

2

、それは非常に難しい問題です。あなたはnatural language processingになっているはずです

1つの非常に単純化された手法では、単語の2d表を作成することができます。各単語のペアごとに平均距離(in wo rds)がテキストに表示されます。明らかに、考慮する最大距離と場合によっては単語数を制限する必要があります。その後、多くのテキストを処理した後、特定の単語が同じコンテキストでどのくらいの頻度で表示されるかを示す指標が表示されます。

2

私がやることは、テキスト内のすべての単語を取得し、頻度リスト(各単語の出現頻度)を作成することです。また、「アップル」からの単語の距離に関するヒューリスティックな要素を追加することもできます。次に、複数の文書を読み、すべての文書で共通でない単語を切り捨てます。その後、キーワードとの頻度と距離に基づいて優先順位を付けます。もちろん、ゴミをたくさん食べ、いくつかの関連する言葉を見逃してしまうかもしれませんが、ヒューリスティックを調整することで少なくとも適切なマッチを得るべきです。

+0

それについての詳細を考えると、 「Apple」とは関係のないいくつかのテキストをフィードし、それらのテキストに表示されている単語を除外する必要があります。これは、 "the"、 "of"などの一般的な単語を取り除きます。 – Radu

1

お探しのテクニックは、Latent Semantic Analysis(LSA)と呼ばれています。潜在意味索引とも呼ばれます。このテクニックは、関連する概念がテキストで一緒に発生するという考え方で動作します。統計を使用して単語の関係を構築します。十分な大きさの文書があれば、それは関連する言葉を見つけるというあなたの問題を確実に解決します。

関連する問題