動的シソーラス このエントリーを含むはてなブックマーク

全自動4コマ / 全自動似顔絵 / 全自動百科事典(オートペディア) / Google高額キーワード自動検索 / めもりーくりーなー / 開発元:クロノスクラウン
説明


最近検索された単語




「動的シソーラス」の仕組み

この「動的シソーラス」は、Yahoo! JAPAN Webサービスの「関連検索ワードWebサービス」を利用して、シソーラスっぽい物を類推するWebアプリです。思考実験の確認のために作成しました。

入力フォームに単語を入力して検索すると、類語や関連語と想定される単語を、評価点付きで表示します。

どういった考えを元にしたアルゴリズムかを説明します。

以下、アルゴリズムについてもう少し詳しく書きます。

上記のような考えを元に、動的にシソーラスを作成しています。

ただし、精度や利用に関して、以下の問題があります。

上記のような問題がありますが、数時間で作れるプログラムの割には、それなりの精度を出すことができています。

仕組み的には、ある程度正しいアプローチだと思うので、これを大規模にやれば、ある程度の精度のシソーラスが作れるのではないかと考えています。

以下、評価点を計算するアルゴリズムの詳細を書きます。

  1. 「入力された単語」を元に、「関連検索ワードWebサービス」で検索して100件の結果を取得(例:「バイク」で検索して、「中古 バイク / ホンダ バイク / goo バイク / バイクブロス / バイク王 / ロードバイク / ……」といったリストを取得)。
  2. 結果のリストから、入力された単語(「中古 バイク」の「バイク」の部分)や、入力された単語を含む単語(例:「バイク」に対して「ロードバイク」など)を除去。
  3. 結果リストから抽出した有効な単語を「トリガー単語」とする。
  4. 「トリガー単語」に対して、以下の条件を満たすまで、処理を10回繰り返す。
    1. 「関連検索ワードWebサービス」で100件の結果を取得。
    2. その中に、「入力された単語」(一番最初の入力語)がなければ無視。
    3. その中に「入力された単語」があれば、その結果から得られる単語を「シソーラス候補単語」として登録。
  5. 「シソーラス候補単語」から、「入力された単語」や「トリガー単語」を除去する。
  6. 「シソーラス候補単語」を出現回数順にソートして、1回しか出てこなかった単語を除去する。
  7. 「シソーラス候補単語」が40を超える場合は、出現回数が少ない単語を削る。
  8. 「シソーラス候補単語」に対して、以下の処理を行い、評価点を計算する。
    1. 「関連検索ワードWebサービス」で100件の結果を取得。
    2. その中に「トリガー単語」(一番最初の入力語の検索結果)が含まれている場合は、その出現回数の総和を評価基準点とする(例:5回出現した場合は、「1+2+3+4+5=15点」となる)(総和については、Wikipedia:「総和」を参照)。
    3. 「シソーラス候補単語」としての出現回数に、評価基準点を掛けた値を、最終的な評価点とする(例:出現回数2回で、評価基準点が15点なら、最終的な評価点は30点となる)。
    4. 評価点が0点だった単語は除去する。
  9. 「シソーラス候補単語」を、評価点でソートして出力する。

このアルゴリズムで、ある程度の精度で類語や関連語らしきものを取得できます。

以下、今回のプログラムを作成する上で、利用したサービスや参考にした文献です。

作ったきっかけ

「言い換え語」を取得できる、有効そうで利用制限が緩い適切なWebAPIが見付からなかったため。

精度が高い必要はなかったので、「それなりの結果が出ればいいや」ということで、理論的にはそれほど間違っていないだろうアプローチを考えて実験として一晩で作成しました。




リンク用タグ

このページのURL


このページのリンク用タグ


更新履歴

全て見る

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2008 Cronus Crown (c)1997-2008 Masakazu Yanai
このWebPageに関するご意見・お問い合わせは
サイト情報 - 弊社への連絡 -
までお願いします。