MeCab 用 IPA バイナリ辞書インストーラ公開のお知せ2008年09月22日 20時49分10秒

以前より .zip 形式で公開しておりました MeCab PPM 用 IPA バイナリ辞書を .msi (Microsoft Installer 形式)で公開することになりました。

MeCab では、入力データの漢字コードと同じ漢字コードの辞書を使う必要があります。 3種類の辞書を用意していますので、目的に合せてご利用ください。

●MeCab 用 IPA バイナリ辞書インストーラ(EUC-JP版)

http://www.akaneiro.jp/public/mecab/ipadic/

Namazu for Windows で使用する場合は EUC-JP 版の辞書をご利用ください。

●MeCab 用 IPA バイナリ辞書インストーラ(Shift_JIS版)

https://www.akaneiro.jp/members/mecab/ipadic-sjis/

メンバエリアにて公開。グレー会員以上の方がダウンロード可能です。 ブルー会員、グリーン会員の方もダウンロード可能です。

●MeCab 用 IPA バイナリ辞書インストーラ(UTF-8版)

https://www.akaneiro.jp/members/mecab/ipadic-utf8/

メンバエリアにて公開。グレー会員以上の方がダウンロード可能です。 ブルー会員、グリーン会員の方もダウンロード可能です。

[インストール方法]

IE で上記 URL にアクセスするとインストーラが起動します。 あとはインストーラの指示に従ってインストールしてください。

[動作環境]

  • ActivePerl Windows(x86) 版のみに対応しています。
 ActivePerl Windows(x64) 版には対応していません。
  • ActivePerl 800番台(5.8.X) のみに対応しています。
 ActivePerl 600番台(5.6.X)、1000番台(5.10.X) にはインストールできません。

詳しくは

http://www.akaneiro.jp/mecab/ppm/

をご覧ください。

なお、従来の .zip ファイルの公開は終了しました。

コメント

_ koke ― 2008年10月15日 13時18分40秒

思ったのですが検索エンジンで使うには、日本語の区切りの精度を上げても駄目と思います。もし文書に「東京都」が出てくるなら「東京」「京都」「東京都」の全部を登録すると良いと思います。Mecab、茶筅、Kakasiだと1通りの分割しか出来ないと思うのですが。可能性のある分割すべてを登録すれば、日本語処理に苦労する事はありません。あと辞書に品詞や読み方は不要で、日本語文書から単語の統計頻度を取れば自動で辞書を作れます。今からindexを作ろうとしているファイル群専用の辞書も作れると思います。

_ opengl2772 ― 2008年10月15日 14時04分21秒

(Namazu では使っていませんが)MeCab, ChaSen は1通りの分割しかできないわけではありません。

発想としてはN-gramに近いものと思いますが、「東京都」から「東京」「京都」「東京都」を登録すると、「京都」を検索したい時に「東京都」というゴミが見つかることになります。これは避けたい問題です。

見つけることも重要ですが、絞り込むことも重要なのです。
ゴミが一杯で絞り込めないのは、見つからないのと同じように困った問題となります。
重要なのはバランスでして、商用大手検索エンジンはこのバランスがうまいのです。

また、検索対象の文書を基に専用辞書を作成するという話ですが、用途によっては実際に行われています。
ただし、辞書作成には膨大な時間とメモリを消費することが多いため、汎用の辞書で済ますのが一般的です。

_ koke ― 2008年10月17日 00時35分44秒

共通部分を持つ分割( 東京-京都 )に対して、「京都」の前には「東」が来やすいのか統計を取って置き、頭に東が付く京都は仮のindexに登録しておいて、最後に正式採用するか決めたら良くないですかね。

_ opengl2772 ― 2008年10月17日 13時37分47秒

何だか本末転倒ですが、「東京都」を「東」「京都」と分割してはダメで、「東京」「都」と分割しなければならないというのを、統計で判断するのは結構大変な処理です。

その分割を簡単に行うには、辞書が必要になります。

で、MeCab 等で分かち書きをするわけです。

MeCab の辞書は統計をとって作成するものですから、大変な作業を行っているわけです。その成果を Namazu は使っています。
たとえば、MeCab だと、「東京都」を分かち書きすると「東京」「都」に分けるというのが第一候補として出てくるのは、統計から作成した辞書のおかげです。

結局、文字列を単純に分割するのでは都合が悪く、それを統計取って区切りを判断するということになると、つまりは分かち書きツールと同じ処理を行うということになります。また、統計をとるということは区切りの精度を上げるということでもあります。

_ koke ― 2008年10月17日 16時11分09秒

勘違いしてました。事前に出現率のわかる辞書が用意されていないと東京-都か、東-京都かどっちになりやすいか決定できないですね。別の方法を考えました。統計無しの単語帳は持っていて、重複部分が出ない限りそのまま登録し、重複部分が出る場合はtf-idfアルゴリズムで重要度の低い単語を含む分割は除外すれば良いと思います。「東京」「京都」の重要度が同じ位の文書は両方入れます。

_ opengl2772 ― 2008年10月17日 19時12分44秒

まず「東京都」という単語に対して、「東京」あるいは「京都」という単語と重複部分があるので分割するという発想は危険です。
たとえば、「宇多田」という単語に対して「多田」という単語と重複部分があるので分割すると「宇」「多田」になりますが、意味のある分割ではありません。

また、「東京」と「京都」という単語の重要度から、「東京都」を分割しようという発想は強引すぎます。
「東京」も「京都」もどちらも十分重要な単語ですから、一般的に「東京」「都」と「東」「京都」のどちらも登録となってしまうでしょう。しかし、やりたいことは「東」「京都」の排除です。

もちろん KAKASI のような単純な分かち書きでは、ここで書いたような強引な処理を行っています。
分かち書きを簡易に行うという場合には、こういった手法でも良いのですが、そもそもの話は、「日本語の区切りの精度を上げても駄目」「日本語処理に苦労する事はない」といった話でした。それならば、MeCab を使った分かち書きの性能を超えなければいけないのですが、とてもそのレベルに達するような処理ではありません。

_ koke ― 2008年10月17日 20時20分58秒

辞書として、東京、京都、東京都、タワー、街、を持っているとします。 「東京タワー」や「京都の街」は共通部分の無い分割になります。 「東京都」はindexへ「東京」「京都」「東京都」の全てを入れます。 ただし、文書内で「京都」の価値が「東京」よりとても低いなら、(東)京都となるindexは除外するっていう事です。京都の東という意味で東-京都が使われるならば、「東京」という単語の出現はほとんど無いので東京(都)のindexを除外します。基本は全部登録ですが文書を特徴付ける単語で無い物は消してしまうという方法です。

_ opengl2772 ― 2008年10月17日 21時11分44秒

まず、それらの情報をインデックスに入れたなら、インデックスのサイズは桁違いに膨れ上がることになるでしょう。

また検索処理も複雑です。
「京都」という語で検索した場合に「京都」が含まれる文書をピックアップします。次にその文書で「京都」の分割前が何であったかを調べ、「東京都」を得る必要があります。
その後、「東京都」のもう一方の分割である「東京」を割り出し、その「東京」と「京都」の価値を判断して、除外しなければならないのですから。

次に文章に「東京」「京都」が含まれず「東京都」のみ記述されている場合、「東京」と「京都」の価値に違いはありません。この場合、「東京」「京都」のどちらも除外するか、どちらも採用するしかなく、結局検索漏れになるか、ゴミを含めることになるかのどちらかになり、決定打にはなりえません。

多くのケースでうまくいくのであれば実用上、多少の検索漏れ、ゴミは問題ではないわけですが、今回の「東京都」には当てはまっても、多くの単語で同様に当てはまるかどうかは疑問が残るところです。

いずれにしろ「日本語処理に苦労する事はない」というレベルの話ではありません。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2008/09/22/3779524/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。