日本語の全文検索のベストプラクティス

1,987 views
Skip to first unread message

Tetsutaro Watanabe

unread,
Aug 6, 2013, 10:55:25 PM8/6/13
to mongo...@googlegroups.com
NRI渡部です。

小笠原さんに乗じて、ML 活性化のために、私も一つ質問させてください。


MongoDBの日本語データを全文検索したいという要件があります(結構いろんな人から聞きます)。
そこで質問なのですが、皆さんはどのように日本語の全文検索をしていますか?

ざっくりと以下の二つの方法があると思います。
1) MongoDBのText Search機能を利用する
2) MongoDBのデータを他の全文検索エンジンに食わせる

しかし、(1)については、MongoDBは日本語の構文解析をせず、単語に分けてインデックスを作成していないため、
日本語を単なるbyte列としてしか検索できないという認識です。

また、(2)については、
MongoDBにはデータが更新されたときにフックする機能などは無いため、
定期的にMongoDBのデータを総なめして、それに対してインデックスを作成するスクリプトなどを作る必要があると考えています。

何かいいアイデアは無いでしょうか?


Hiroaki Kubota

unread,
Aug 6, 2013, 11:19:08 PM8/6/13
to mongo...@googlegroups.com
窪田です。
基本的には2)でやってました。
(solr , mahout など)

が、、色々小回り効かないのが不満で、今作ってます。

https://github.com/crumbjp/analysis

まだドキュメントも何も追いついていない状態ですが、一応動きます。

- monmorp
  形態素解析エンジン

  ドキュメントは少し書きました。

  この状態で、単単語検索が掛けられるようになります。
  → 『選挙』を含むドキュメントは何?とか

 最近熟語解析を追加しています。

- vectorize
  tfidf まで行います。

   ドキュメントはまだ・・・

  ここまでやると、全文検索ができます。
  → 『選挙』を含み、『与党』を含むドキュメントは何?とか
  
- clusterize
  ドキュメントのクラスタリング(関連度の高いドキュメントをグループ分け)

   ドキュメントはまだ・・・

こんな感じです。
手伝ってくれる人いないかな・・・




2013年8月7日 11:55 Tetsutaro Watanabe <fet...@gmail.com>:

--
このメールは Google グループのグループ「MongoDB JP」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、mongodb-jp+...@googlegroups.com にメールを送信します。
このグループに投稿するには、mongo...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/mongodb-jp からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

Akinobu Fukuzaki

unread,
Aug 6, 2013, 11:55:57 PM8/6/13
to mongodb-jp
テストとかドキュメントは手伝えると思います~。


2013年8月7日 12:19 Hiroaki Kubota <cat.s...@gmail.com>:



--
------------------------------------------------------------------
Akki
Akinobu Fukuzaki
akki.t...@gmail.com

Tetsutaro Watanabe

unread,
Aug 8, 2013, 9:08:39 AM8/8/13
to mongo...@googlegroups.com
窪田さん

渡部です

返信ありがとうございます!
やはり便利なものを求めるのであれば自分で作るしかないのですね。

そして、やはり窪田さん作っていましたか。試させてもらいます。

私もできることなら手伝いますよ。

Hiroaki Kubota

unread,
Aug 9, 2013, 1:34:57 AM8/9/13
to mongo...@googlegroups.com
窪田です。

色々と更新しました。

興味のある方は、
 https://github.com/crumbjp/analysis/blob/master/monmorp/README

のクイックスタートを流して貰えると、感じがつかめるかと思います。

形態素解析→ドキュメント検索
 +熟語解析
まで。。

AND検索などは、tokenize ディレクトリ以下の実装を使う必要がありますが、、
これからドキュメント書きます。。。



2013年8月8日 22:08 Tetsutaro Watanabe <fet...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages