この記事は abicky.net の MeCab ソースコードリーディング私的メモ(形態素解析編) に移行しました
こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推
※私は言語処理に関する知識は無いので、あくまで「IPADICとは何ものなのか?」という点に絞ってのみ記述しています。まあ、ここまで突っ込んだのは戯れですが、一応の目的として現在から未来にわたって無料で入手できる形態素解析を使うに当たり、「メンテナンスが継続されている辞書」が入手できるかを調べたかったという意図もあります。 日本語を処理する上で形態素解析というのはわりと欠かせないものです。 Webのサービスでよく用いられている形態素解析器にはChaSenとmecabがありますが、これらのエンジンは何らかの辞書を利用して日本語を解析します。 ちなみに形態素解析器と言うのはChaSenの表現を帰りれば「形態素解析器とは、入力文を単語単位に分割し品詞を付与するツールである。」ということです。形態素解析器の開発の歴史はMeCab の開発経緯をご覧ください。 ここでChaSenにもMeCabにも、標準
先週のレシピでは、mbrolaを使った音声合成と、MeCabを使った形態素解析のレシピをお届けしました。 今回は予告どおり、一連の流れを自動化するPythonスクリプトを作成してみます。 なお、Pythonを選択した理由は2つあります。ひとつはMeCabのPythonバインディングのパッケージが提供されていて都合が良かったこと、もうひとつは日本語文字の扱いが簡単そうなことです。後者を先に簡単に説明します。 Pythonで日本語処理 Mecabを通じて辞書から取得した「読み」をmbrolaの音素リストに変換するためには、日本語を1文字1文字処理する必要があります。例えば冒頭の例「八戸」の読みである「ハチノヘ」を音素リストに変換するには、次を行う必要があります。 「ハチノヘ」を「ハ」、「チ」、「ノ」、「ヘ」に切り分けたリストを得る リストのそれぞれの要素に対して置換処理を行い
mecabのホームページに従ってインストールを行ったのですが、 端末で起動すると次のようなエラーが表示されます。 $ mecab param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc たぶん、mecabが入っているディレクトリが違うとのことだと思うのですが、 どのように対処すれば良いのでしょうか? 回答よろしくお願いします。
MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください メーリングリスト 一般ユーザ向けメーリングリスト 開発者向けメーリングリスト 新着情報 2012-01-27 MeCab 0.993 MeCab::Tagger::formatNode()が正しく動いていなかった問題の修正 スタックの消費を抑えるため、ほとんどのローカル変数(配列)をヒープ上に退避 2012-01-14 MeCab 0.992 ソースコード中のTypoの修正 2012-01-14 MeCab 0.991 空文字列もしくは空白文字列を解析した時に解析エラーとなる問題を修正 ユーザ辞書の作成に失敗する場合がある問題を修正 2011-12-24 MeCab 0.99 MeCab::Model, MeCab::Lattice クラスを追加 マルチスレッド環境でのユーザビリティの向上。複数スレッドが同一
MeCabはオープンソースの形態素解析エンジンで、奈良先端科学技術大学院大学出身、現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓[1][2]によって開発されている。名称は開発者の好物「和布蕪(めかぶ)」から取られた。 開発開始当初はChaSenを基にし、ChaSenTNGという名前で開発されていたが、現在はChaSenとは独立にスクラッチから開発されている。ChaSenに比べて解析精度は同程度で、解析速度は平均3-4倍速い。 品詞情報を利用した解析・推定を行うことができる。MeCabで利用できる辞書はいくつかあるが、ChaSenと同様にIPA品詞体系で構築されたIPADICが一般的に用いられている。 MeCabはGoogleが公開した大規模日本語n-gramデータの作成にも使用された[3]。 Mac OS X v10.5及びv10.6のSpotlig
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く