2

ユーザーがデータベースにテキストを追加し、保存中に自分のエントリにタグを追加して、他のユーザーがそれらのタグを使用して検索できるようにするプロジェクトに取り組んでいます。

例:

テキスト: 「次のフォーミュラ 1 レースはスペインです」

TAGS: 「フォーミュラ 1」、「レース」、スペイン"

ユーザーがこれらのタグを検索すると、結果にこのエントリが表示されます。

しかし、「スポーツ」または「モーター スポーツ」または「ヨーロッパ」を検索するユーザーにもこのエントリを取得してもらいたいのですが、これらのタグはエントリに明示的にタグ付けされていませんが、「フォーミュラ 1」は「モーター スポーツ」のタイプであるため関連しています。 「スポーツ」と「スペイン」の一種である「」は「ヨーロッパ」にあります。

現在、私の送信フォームでは、ユーザーは 1 つのテキスト ボックスにテキストを書き、その下の 2 番目のテキスト ボックスにタグを書き込んで送信します。

これらのタグは、後で管理者によって手動で分類されます。したがって、上記の場合、管理者は手動で「スペイン」を「ヨーロッパ」の子要素として配置します。(MS SQL Server 階層列)

これは、いくつかのオントロジー ソフトウェアを使用して実現できると思います。dotNetRdf、OWL ...しかし、よくわかりません。私は数日前に世界のこちら側について知りに行ったばかりで、これらがどのように役立つかわかりません. これは解決策ですか、それとも完全に間違ったことを調べていますか? 上記を達成するための提案はありますか?

また、分類を行う前に、テキストからタグを自動的に選択し、下部のテキスト ボックスにタグとして入力したいと考えています。

このために、NLPサービスを使用する必要があると思いますか? どちらを使用するか、または他の提案はありますか?

4

2 に答える 2

0

この場合、使用しているソリューション (MS SQL Server Hierarchy Column) は、OWL オントロジー (階層/分類法) によって補完できます。あなたのケースでそれがどのように見えるか、そしてそれから何が得られるかの例を示します.

スポーツに関連するオントロジーは次のようになります。

Class: Sport

Class: Formula_1
  SubClassOf: Motor_Sport

Class: Motor_Sport
  SubClassOf: Sport

次に、推論プログラムと呼ばれるプログラムの助けを借りて、次のような質問をすることができます Sport。( のサブクラスSport)

結果のリストには と が含まれMotor_SportますFormula_1。これらのクラスを使用して、たとえばデータに注釈を付けることができます。

始めるには、Protégé OWL チュートリアルを参照することをお勧めします。

于 2013-04-30T08:44:28.210 に答える
0

オントロジーは、探している関係が十分に一般的である場合 (つまり、国と大陸) に役立つ場合があります。「人種」と「スポーツ」の意味的関連性について。悪用できる単語 (またはタグ) 間の何らかの意味的な類似性をお勧めします。

基本的に、異なるタグ間の依存関係/類似性をモデル化する MxM マトリックスを生成すると、それらの重みを使用して類似の概念を得ることができます。たとえば、「レース」と「スポーツ」は、「レース」と「スペイン」よりもはるかに関連性があります。

重みを計算する方法は?これは、[明示的セマンティック分析] ( http://en.wikipedia.org/wiki/Explicit_semantic_analysis ) や [分散セマンティクス] ( http://en.wikipedia.org/wiki/Distributional_semantics )などのいくつかの手法で対処できます。 . 最も単純なメトリクスの 1 つは、共起性メトリクスを使用することです (つまり、"race" と "sport" が一緒に表示されるドキュメントの割合)。

さらに、シノニムなど、より多くの NLP 手法を使用することもできます。

これらの重みをオントロジー関係と組み合わせることもできます。スペインがヨーロッパの一部であることがわかっている場合は、一般的なマトリックスでその重みを高めることができます.

タグの抽出については、Entity Extraction を調べる必要があります。nltkは、開始するのに適したツールである可能性があります。

これが役立つことを願っています。

于 2013-04-29T09:53:38.703 に答える