[前][次][番号順一覧][スレッド一覧]

mysql:7570

From: "HIGUCHI Koichi" <"HIGUCHI Koichi" <ko-ichi@xxxxxxxxxx>>
Date: Sun, 20 Apr 2003 09:40:32 +0900
Subject: [mysql 07570] Re: 文書検索のためのテーブル設計

こんにちは、樋口です。
ご返信下さった皆様ありがとうございます。

まずお詫びさせていただきたいのですが、「自分のやりたいこと」ですら、正確に表
現できていませんでした。
大変申し訳ありませんでした。

実は、
> 「今日 or 明日 >= 2」
といったOR検索だけでなく、AND, OR, NOTや()を自由に組み合わせての検索を行いた
いのです。

かわじさんにいただいた返信にあった、頻度(frequency) のフィールドを加えるとい
う方法は全く思いつかなかったものでした。
OR条件の検索であれば、非常にシンプルで良さそうなのですが、残念ながら、
    「今日」と「明日」が両方含まれている文書を探す
といったAND条件や、
    「今日」が含まれていて「明日」が含まれない文書を探す
といった(AND)NOT条件をSQLで表現するのは難しそうに思えました。

河瀬さんにいただいた返信にあった、生の文書をテーブルに放り込んで、
    WHERE body LIKE '%今日%' OR body LIKE '%明日%明日%'
というような指定を行う方法では、AND, OR, NOT指定が簡単に行えそうです。
(さらに、テーブル準備も楽そうです :)
しかしこの方法では、当然なのですが、「京都」を検索すると「東京都」にもヒット
してしまうのです。

そこで、事前に形態素解析(品詞分解もどき)を行うことで、以下のようなテーブル
を作っています。
これを元に検索を行いたいのです。

#---------------------#
順番   -   文書ID   -   単語
1   -   1   -   今日
2   -   1   -   は
3   -   1   -   良い
4   -   1   -   天気
5   -   1   -   だ
6   -   1   -   。
7   -   2   -   明日
8   -   2   -   は
9   -   2   -   どう
10   -   2   -   かな
#---------------------#

# テーブルは簡略化して載せさせていただきました。
# 実際には、生の単語でなく単語IDが入っています。
# そして、単語テーブルやら品詞テーブルやらが他にも
# 存在しています。
# 川合孝典さんにご指摘いただきました、順番フィールド
# は、前回のメールでは書き忘れておりました。
# また、形態素解析には茶筌を利用しています。

川合孝典さんに教えていただいたナマズ本は、届き次第、読んでみようと思います。

「MySQL Full-text Search」についても検討はしていたのですが、茶筌を十分に活か
すことが難しそうなので敬遠していました。
というのは、茶筌は品詞分解もどきを行って、単語の基本形まで教えてくれますか
ら、これを使って、
    ・「使う」と指定するだけで「使う」、「使えば」、「使って」などを
      含む文書を全て検索する
    ・必要に応じて「使わない」という未然形を含む文書だけ検索する
といったことを行いたいのです。
# 前のメールに書いたURLでお見せしている、コンコーダンスでは、
# 既にこういったことを実現しております。

それに、検索結果の表示順(重み付け)についても、自分で自由に決めたいのです。
(仮に処理時間が少々増えるという犠牲を払うとしても)

「DBIx::FullTextSearch」については、不勉強で、知りませんでした。
いろいろポインタを示していただいてありがとうございました。


大阪大学 大学院 博士課程
樋口耕一


# なお、将来的には、次のような検索機能を追加していきたいと考え
# ています。
# 1. フレーズ検索
#        「『良い』の直後に『天気』があること、とといった指定
# 2. メタデータによる検索
#        例えば新聞記事なら、「91年の記事であること」といった指定
#
# もちろん、必要に応じて別にテーブルやスクリプトを追加するのですが、
# 1つの検索式の中に、単語の有無の指定、フレーズ指定、メタデータ
# 指定が混在し、ANDやORやNOTでそれぞれの指定が組み合わさ
# れているという検索式を扱いたいのです。



[前][次][番号順一覧][スレッド一覧]

      7566 2003-04-20 04:16 ["HIGUCHI Koichi" <ko] 文書検索のためのテーブル設計            
      7567 2003-04-20 04:59 ┣[Shinya Kawaji <kawaj]                                       
      7568 2003-04-20 05:07 ┣[Shogo <shogo@xxxxxxx]                                       
      7569 2003-04-20 06:51 ┣["KAWAI,Takanori" <GC]                                       
->    7570 2003-04-20 09:40 ┗["HIGUCHI Koichi" <ko]