web-dev-qa-db-ja.com

データで微妙な関係をどのように表現しますか?

「A」は「B」と「C」に関連しています。 「B」と「C」も、このコンテキストによって関連している可能性があることをどのように示すのですか?

例:

最近のブロードウェイプレーに関するいくつかの見出しは次のとおりです。

  1. デビッドマメットのグレンギャリーグレンロス、アルパチーノ主演、ブロードウェイにオープン
  2. 「Glengarry Glen Ross」のアル・パチーノ:批評家たちはどう思いましたか?
  3. アル・パチーノがブロードウェイターンで好評を博している
  4. 劇場レビュー:グレンギャリーグレンロスは、そのスターを激しく売っています
  5. グレンギャリーグレンロス;ねえ、誰がクリーグの光を殺したの?

問題:

これらのレコードに対してファジー文字列一致を実行すると、人間の読者がより大きなデータセットのコンテキストからそれらを抽出できたとしても、関係は確立されますが、他の関係は確立されません。

#3が#4に関連していることを示唆する関係を見つけるにはどうすればよいですか?どちらも#1に簡単に接続できますが、相互には接続できません。

この種類のデータまたは構造に(Googlable)名はありますか?どのようなアルゴリズムを探していますか?

ゴール:

1,000件の見出しが与えられた場合、これらの5つの項目がすべておそらくであると自動的に提案するシステムは、ほぼ同じものです。

正直に言うと、この問題を適切に表現する方法を私がプログラムしてから長い間、途方に暮れています。 (それが理にかなっている場合、私は何を知らないのかわかりません)。

これは個人的なプロジェクトで、Pythonで作成しています。ヘルプ、アドバイス、およびポインタを事前にありがとう!

20
Chuck H

これは cluster analysis と呼ばれ、基本的にはオブジェクトを類似のプロパティを持つクラスターにグループ化します。それは大きなトピックですが、それはあなたに始める場所を与えるでしょう。

14
Karl Bielefeldt

セマンティクスの世界に入ります。テキストを解析して主要な概念( (セマンティックAPI)のクイック検索 がいくつか表示されます)を引き出し、フリーフォームドキュメントを解析して、出会った主要なトピック(人、場所など)を返す公共サービスがあります。 、もの、日付、および概念。より良いもののいくつかは、[RDF]として知られるフォーマットで返されます

これを実行できる独自のシステムを構築する場合、フィールドは Natural Language Processing であり、これは非常に興味深いウサギの穴です。

7
Michael Brown

可能な場合は、見出しとともにストーリーを入手してください。見出しは時々「キュート」になり、議論されているものに接線的な参照のみをすることができます。これは人間では問題なく動作しますが(グローバルコンテキストがあるため)、NLPではあまりうまくいきません。

カールビーレフェルトの回答で述べたように、クラスタリングは良いアプローチですが、悪魔は詳細にあります。問題/ユーザー空間に適合するクラスタリング手法を選択する必要があるだけでなく、whatがクラスタ化されていることを把握する必要もあります。

私の経歴は80年代から90年代の情報検索(IR)で、類似度検索重心ベースのクラスタリングに焦点を当てました。私たちのドキュメントは重み付けされた属性ベクトルで表され、これは基本的に用語のリストとドキュメント内でのそれらの相対的な重要性です。このアプローチは機能しますが(一部のコレクションの方が他のコレクションよりも優れています)、物事を結び付ける主要な語彙用語がないため、短い見出しには問題があります。しかし、ドキュメント全体を使用すると、用語のリストがはるかに豊富になり(そしておそらく重要性が高まります)、その見出しのリストは、見出しが"可愛い"。

ベクター生成の問題などに参加したい場合は、私のメールが私のプロフィールに含まれています。

4
Peter Rowell