toshio_uchiy****@mirro*****
toshio_uchiy****@mirro*****
2017年 7月 18日 (火) 19:05:04 JST
矢田様 お世話になります。内山です。 情報ありがとうございます。今、帰宅したばかりなので、 今日、明日、読んでみます。ステミングと言うのですね。 わたくしの Mail Subject の書き方が悪かったですが、 基本的に、一つの文章の中には一つの言語だけです。 簡単にお話すると、YouTube からビデオの字幕をダウンロード して、PGRonngaの索引をつけて全文検索できるようにしています。 今まで、日本語と英語のみでしたが、フランス語の字幕も ダウンロードして索引をつけました。一つのビデオについては 連番になっているので、あるビデオのある言語については連番 になっています。が、日本語も英語もフランス語も manual という テーブルに全部入っています。一応、英語字幕には、動画名のあとに 英語字幕。フランス語字幕には動画名のあとに仏語字幕とつけてます。 http://moovle.org/ で フランス語の "veux"、 日本語で 「おまえ」らしいですが、これは検索できるようです。 もしかしたら、言語によってテーブルを分けて、索引も 別にしないといけないかもしれないですね。 こうした時、検索を言語の数だけ実行しないといけないです。 蛇足になりますが、YouTube の字幕言語を増やしていこうと 考えています。フランス語の次はドイツ語にするかポルトガル語 にするか中国語にするか考えています。ポルトガル語でも 通常のポルトガル語とブラジルのポルトガル語が区別されています。 既出の動画検索エンジン、結構ブラジルからアクセスあります:-) -----Original Message----- From: groon****@lists***** [mailto:groon****@lists*****] On Behalf Of Susumu Yata Sent: Tuesday, July 18, 2017 3:35 PM To: 全文検索エンジンGroonga開発メーリングリスト Subject: [groonga-dev,04399] Re: 日本語、英語、仏語のまざった文章で複数形や過去形をフォローできますでしょうか 内山さん 未来検索ブラジルの矢田です. 英語やフランス語の活用による変化を検索で無視する方法としては, ステミングを使うことが多いかと思います. PGroonga, Groonga のドキュメントにおいては,以下のページに記述が見つかりました. - CREATE INDEX USING pgroonga | PGroonga - https://pgroonga.github.io/ja/reference/create-index-using-pgroonga.html#custom-token-filters - 7.9. トークンフィルター — Groonga v7.0.4ドキュメント - http://groonga.org/ja/docs/reference/token_filters.html ただ,実装を見る限りでは,英語用のステミングとなっているようです. groonga/plugins/token_filters/stem.c 54: const char *algorithm = "english"; 55: const char *encoding = "UTF_8"; 56: token_filter->stemmer = sb_stemmer_new(algorithm, encoding); これを真似して "english" のところを "french" にすれば, フランス語用のステミングプラグインを用意できそうな気はしますが, フランス語について無知なので断言できません. 後は,もし同じカラムに日本語,英語,フランス語が格納されているのであれば, どれを適用するかが問題になると思います. 解決方法としては,以下のような選択肢が思い浮かびました. - 言語によってカラムを分割する. - あらかじめデータを言語別に分けなければならない. - 英語用とフランス語用のステミングを両方とも適用する. - 副作用で検索の精度が下がる恐れがある. 参考になりましたら幸いです. 2017年7月17日 6:58 <toshio_uchiy****@mirro*****>: > メーリングリストの皆様 > > > > お世話になります。内山と申します。 > > 日本語、英語、フランス語の短いセンテンスが > > たくさんあります。これに、PGroonga で索引をつけ > > PostgreSQL で全文検索しています。 トークナイザーは > > TokenMecab です。 > > 検索を実行するサイトでは、日本語、英語、フランス語 > > で検索できます。と謳うつもりです。 > > この時、英語を例にとると、dependency と dependencies > > は別々に検索しないとヒットしないようです。以前より気に > > なってました。 > > Google では、単数形で検索すれば複数形もヒットするように > > 見えました。 > > 仕組みとしては、単数形と複数形の辞書、過去形や過去分詞と > > 現在系の辞書を持てば何とかなりそうな気がしてしまいます。 > > 今回、日本語と英語に加えて、フランス語の文章も全文検索 > > の対象に加えたので、男性、中性、女性などの型も気になり、 > > 少しここを調べようと思いググってみました。しかし、groonga > > full text search で検索しても、これだという情報を見つける > > ことができませんでした。 > > 今回の疑問について参考となるサイトなどありましたら、 > > 教えていただけますでしょうか。 > > よろしくお願いします。 > > > > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.osdn.me/mailman/listinfo/groonga-dev > -- Susumu Yata <susum****@gmail*****> _______________________________________________ groonga-dev mailing list groon****@lists***** http://lists.osdn.me/mailman/listinfo/groonga-dev