そう!
私はPHPで作業しており、分類法/タグの膨大なリストを持っています.100,000程度です。
タグの同様のリストは、Zazzle.com の製品の下にリストされている豊富なタグで見つけることができます。
このリストを、単語、類似の文字列、および特異性の関係に基づいて、階層化されたメニューにプログラムで編成しようとしています。
私は、levenshtein 関数、similar_text、sub_str(ings) の検索、Princeton WordNet データベースの使用などをいじりましたが、このナットをクラックすることはできません。基本的に、私はこのデータベースからオントロジーを構築しようとしています。これは、非常に一般的な層から非常に具体的な層に至るものです。完璧である必要はありませんが、検索するための単純なキーフレーズと、プログラムによる方法でこれを行う方法のアイデアを使い果たしましたが、まだある程度の順序が残っています.
例: sub_str を使用すると、Dog->Dogma、Dogra などになる可能性があります。
レーベンシュタインまたは類似のテキストを使用すると、ボグ、ログ、コグ、および犬がすべて非常に密接に関連することになる可能性があります。
このデータベース、またはタクソノミーも常に変化しているため、分析の少なくとも一部をその場で実行する必要があります。良いニュースは、結果の 1 つのレベルのみが利用可能である必要があるということです。たとえば、Dog などのクエリのニア結果は、小さな犬、大きな犬、赤い犬、青い犬、犬などである可能性があります。
これはひどい質問だと思いますが、少なくともどのような手順を踏む必要があるか、使用できる便利な機能、調査へのクエリ、方法論などの光線を持っている人はいますか?
お時間をいただきありがとうございます。
これまでのところ、プログラムでタグをオントロジーに編成するための提案が 2 つあります。
タグの共起を見つけて、それらをグループに編成します。タグが一緒に発生する場合、それらはおそらく関連しているという考えだと思います。
アルゴリズムのステミングを使用して、単語の複数のフォーム/派生語/語根を語幹に減らします。これにより、スクリプトがふるいにかける必要があるタグの量を減らす必要があります....さらに、ルート ステムに基づいて同様のタグを特定できる可能性があります。