2

そう!

私はPHPで作業しており、分類法/タグの膨大なリストを持っています.100,000程度です。

タグの同様のリストは、Zazzle.com の製品の下にリストされている豊富なタグで見つけることができます。

このリストを、単語、類似の文字列、および特異性の関係に基づいて、階層化されたメニューにプログラムで編成しようとしています。

私は、levenshtein 関数、similar_text、sub_str(ings) の検索、Princeton WordNet データベースの使用などをいじりましたが、このナットをクラックすることはできません。基本的に、私はこのデータベースからオントロジーを構築しようとしています。これは、非常に一般的な層から非常に具体的な層に至るものです。完璧である必要はありませんが、検索するための単純なキーフレーズと、プログラムによる方法でこれを行う方法のアイデアを使い果たしましたが、まだある程度の順序が残っています.

例: sub_str を使用すると、Dog->Dogma、Dogra などになる可能性があります。

レーベンシュタインまたは類似のテキストを使用すると、ボグ、ログ、コグ、および犬がすべて非常に密接に関連することになる可能性があります。

このデータベース、またはタクソノミーも常に変化しているため、分析の少なくとも一部をその場で実行する必要があります。良いニュースは、結果の 1 つのレベルのみが利用可能である必要があるということです。たとえば、Dog などのクエリのニア結果は、小さな犬、大きな犬、赤い犬、青い犬、犬などである可能性があります。

これはひどい質問だと思いますが、少なくともどのような手順を踏む必要があるか、使用できる便利な機能、調査へのクエリ、方法論などの光線を持っている人はいますか?

お時間をいただきありがとうございます。


これまでのところ、プログラムでタグをオントロジーに編成するための提案が 2 つあります。

  1. タグの共起を見つけて、それらをグループに編成します。タグが一緒に発生する場合、それらはおそらく関連しているという考えだと思います。

  2. アルゴリズムのステミングを使用して、単語の複数のフォーム/派生語/語根を語幹に減らします。これにより、スクリプトがふるいにかける必要があるタグの量を減らす必要があります....さらに、ルート ステムに基づいて同様のタグを特定できる可能性があります。

4

1 に答える 1

1

文全体、または少なくとも複数の単語が利用可能な場合は、潜在的意味分析を調べてください

数学に怯える必要はありません。基本的な考え方が理解できれば、かなり単純です。

  • データの (高次元) 用語ドキュメント マトリックスを作成する
  • 重要なステップ: 巨大な疎行列を低次元に変換します (特異値分解)
  • すべての [タグ/用語のコレクション] は、低次元モデルのベクトルで指定できます
  • これらの 2 つのベクトル間の (コサイン) 類似性は、タグの類似性を測定するのに適しています。たとえそれらが同じ語幹でなくても (犬と吠え声が関連していることがわかります)。
  • 用語と文書のマトリックスへの適切な入力が不可欠です

[およびその他の IR トピック] (無料の電子書籍): Introduction to Information Retrieval
の優れた読み物です。この本をご覧 ください。非常によく書かれており、私の IR 論文の作成に大いに役立ちました。

于 2012-12-14T07:58:25.163 に答える