スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【同じタグを付けた記事の一覧】

MeCab と NAIST-jdic を Windows で使う

2012年05月19日(土)20時56分

テキスト解析

以前「Galatea Talk の音声合成部を C++ で使うサンプル」という記事を書きました。
これは、音声合成システム「Galatea Talk」を、ライセンス関係が複雑なテキスト解析部抜きで利用してみる、という内容です。
この「テキスト解析部」というのは、日本語の文章に対し、「漢字の読み」だとか「アクセントの位置」だとかいった情報を付加する部分です。
つまりこれを使用しないとなると、「カナ」を「棒読み」するしかできないことになります。
まあ、それはそれで使いようもあるとは思いますが、実用のためにはやはり、テキスト解析部はあるに越したことはありません。
ということで今回は、そのテキスト解析部に代替しうる存在として、たぶん今現在(2012年05月)もっとも一般的な組み合わせではないかと思われる、形態素解析エンジン「MeCab」と辞書データ「NAIST Japanese Dictionary(以下 NAIST-jdic)」の使い方について調べてみました。

MeCab + NAIST-jdic

MeCab は与えられた文章を規則に従って分解し、(存在すれば)付加情報もつけて出力してくれるツールです。
NAIST-jdic はその規則にあたる情報を収録した辞書データで、付加情報として「漢字の読み」等も含まれています。
すなわち、「MeCab + NAIST-jdic」の組み合わせで、日本語の漢字かな交じり文を単語(品詞)単位に分解することができ、必要であれば漢字の読みも取得できます。
また、ライセンスが MeCabNAIST-jdic 共に「BSD ライセンス」となっています(MeCab は BSD・LGPL・GPL のトリプルライセンス)ので、例えば「自作ソフトに組み込んで配布しよう」といった場合に生じる、「UniDic(Galatea Talk 標準の辞書データ)をどうするのか」という点について悩まずに済むのではないか、というわけです。

MeCab のダウンロード

まずは、「http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html」から、Windows 版の MeCab(EXE ファイル)をダウンロードしてきます。
MeCab は、使い方次第でポータブルな運用が可能(後述)なのですが、Windows 版として配布されているバイナリはインストーラ形式となっており、インストールするとレジストリへの書き込みも行われます。
また、Windows 版には「IPA 辞書」という NAIST-jdic の前身である辞書データが含まれているため、サイズが大きめです。
NAIST-jdic を使うのであれば、「IPA 辞書」は不要ではあるのですが、MeCab 本体のみの配布はされていないようです。

MeCab のインストール

次に MeCab のインストールですが、これは普通にダウンロードしたインストーラを実行するだけです。
なのですが、IE9 でダウンロードして直接実行する場合、「ダウンロード件数が少ないため安全性が確認できない」というような警告が頻出し、「詳細」をクリックしないと「実行」できないようにされていたりします。
それから、途中で「IPA 辞書」の文字コードを選択することになりますが、どうせすぐ後に NAIST-jdic へ変更しますので、デフォルト(SHIFT-JIS)のままで進めました。

辞書データと文字コード

辞書データの準備に入る前に、文字コードの話ですが、NAIST-jdic は UNIX での利用が前提であるためか EUC となっています。
現状、これで特に問題はないのですが、もしかしたら将来、Unicode でしか扱えない文字を扱いたいと思うことがあるかもしれません。
ですので、どうせなら最初から Unicode 対応にしようとしたのですが、UTF-16LE ではどうもうまく動かすことができませんでした。
公式サイトでも「UTF16 のサポート(実験的)」となっており、どうも UTF-16LE への対応はあまり注力されていないようです(使い方が悪いだけかもしれませんが)。
ただ、同じ UNICODE でも UTF-8 であればうまくいきましたので、とりあえず UTF-8 で使用することにしました。

NAIST-jdic のダウンロードと UTF-8 化

ということで、「http://sourceforge.jp/projects/naist-jdic/」から、MeCab 用の NAIST-jdic をダウンロードしてきます。
「(for MeCab)」となっているもので、2012年05月現在は「mecab-naist-jdic-0.6.3b-20111013.tar.gz」でした。
「.tar.gz」形式ですので、これが展開できるアーカイバが必要です。
展開(解凍)して得られるファイルのうち、辞書データ本体であり、文字コードが重要になるのが「naist-jdic.csv」です。
このファイルの文字コードが EUC(改行 LF)となっており、そのために Unicode な文字が使えないということですから、これをここで、何か適当なテキスト・エディタ等を利用して、あらかじめ UTF-8 に変換しておきます。
BOM の有無や、改行コードが「LF」か「CR + LF」かという点については、特にどちらでも問題はないようです。
なお、「メモ帳」では EUC を扱えないうえ、「naist-jdic.csv」のサイズが巨大であるため、うっかり「メモ帳」で開こうとすると面倒なことになります。

ポータブル運用

Windows 版 MeCab はインストーラ形式で、レジストリに標準的な動作や辞書のパスなどが書かれた設定ファイル(mecabrc)の位置が記録されています。
が、このレジストリ値は動作に必須というわけではなく、実行時にコマンドラインから各情報を適切に指定するのであれば、無くても動きます。
つまり、動作に必要なファイル群を USB メモリ等にまとめて入れておけば、MeCab をインストールしていない PC でも、普通に使えるというわけです。
ということで、辞書データの構築に入る前に、MeCab の「ポータブル化(もともとポータブルなのでおかしな表現ではありますが)」をしておきたいと思います。
前提として、USB メモリを D ドライブとし、そこに「MeCab」フォルダを作り、「D:\MeCab」フォルダ以下に MeCab 環境を構築する、と想定します。

  1. 「D:\MeCab\bin」フォルダを作り、「libmecab.dll」「mecab.exe」「mecab-dict-index.exe」をコピーします。
  2. 「D:\MeCab\bin」フォルダに、何も書いてないカラの TEXT ファイルを作り、「mecabrc」とリネーム(拡張子「.txt」は付けない)します。
  3. 「D:\MeCab\dic」フォルダを作り、NAIST-jdic のファイル群を全てコピーします。

これで準備完了です。

辞書データの構築

以上の作業をした後、「D:\MeCab」フォルダに以下の内容の TEXT ファイルを作り、「mecab-dict-index.bat」とリネームして実行すると、辞書ファイルが生成されます。

".\bin\mecab-dict-index.exe" -d ".\dic" -o ".\dic" -f UTF8 -c UTF8

「-f UTF8」の部分は辞書データ、つまり「naist-jdic.csv」の文字コードが何であるかを指定しており、「-c UTF8」の部分で解析分の文字コードを何にするかを指定しています。
つまり、例えば「naist-jdic.csv」の文字コードを変更しておらず、初期のまま EUC だった場合には、以下のようになります。

".\bin\mecab-dict-index.exe" -d ".\dic" -o ".\dic" -f EUC -c UTF8

必要な辞書ファイル

前述「辞書データの構築」処理をすると、「D:\MeCab\dic」フォルダ以下に辞書ファイルが生成されます。
もし、単語の追加などをせず、ただ MeCab を使用するだけであれば、「D:\MeCab\dic」フォルダには「char.bin」「dicrc」「matrix.bin」「sys.dic」「unk.dic」の5ファイルだけ残しておけばいいようです。
その場合は当然、「D:\MeCab\bin\mecab-dict-index.exe」も不要です。

動作確認

まず、「D:\MeCab」フォルダに以下の内容の TEXT ファイルを作り、「MeCab.bat」とリネームします。

".\bin\mecab.exe" "SORC.txt" -r ".\bin\mecabrc" -d ".\dic" -o "DEST.txt"

次に、「D:\MeCab」フォルダに解析したい文章を記した TEXT ファイルを、「SORC.txt」のファイル名で保存します。
この「SORC.txt」は、文字コード UTF-8 の BOM 無しとし、改行コードは「LF」と「CR + LF」のどちらでも構いません(BOM が有っても解析はされますが解析結果先頭にゴミが付きます)。
その後、「D:\MeCab\MeCab.bat」を実行すると、「D:\MeCab\DEST.txt」が生成され、そこに解析結果が格納されています。
例えば「SORC.txt」を「今日はあいにく雨でしたが、明日は晴れるそうです。」とした場合、「DEST.txt」は以下のようになります。

今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー,,
は    助詞,係助詞,*,*,*,*,は,ハ,ワ,,
あいにく    副詞,助詞類接続,*,*,*,*,あいにく,アイニク,アイニク,,
雨    名詞,一般,*,*,*,*,雨,アメ,アメ,,
でし    助動詞,*,*,*,特殊・デス,連用形,です,デシ,デシ,,
た    助動詞,*,*,*,特殊・タ,基本形,た,タ,タ,,
が    助詞,接続助詞,*,*,*,*,が,ガ,ガ,,
、    記号,読点,*,*,*,*,、,、,、,,
明日    名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ,,
は    助詞,係助詞,*,*,*,*,は,ハ,ワ,,
晴れる    動詞,自立,*,*,一段,基本形,晴れる,ハレル,ハレル,はれる/晴る/晴れる,
そう    名詞,接尾,助動詞語幹,*,*,*,そう,ソウ,ソー,,
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス,,
。    記号,句点,*,*,*,*,。,。,。,,
EOS

なお、「DEST.txt」は文字コード UTF-8(改行 CR + LF)で、BOM の有無はソースに合わせて変わるようです(多分)。

関連記事

【同じタグを付けた記事の一覧】
ソフト紹介 ポータブル 音声技術 GalateaProject 音声合成 GalateaTalk

スポンサーサイト

コメントの投稿

非公開コメント

No title

ポータブルの参考になりました
ありがとうございます

Re: No title

コメントありがとうございます。
お役に立ててよかったです。
最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
105位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
8位
アクセスランキングを見る>>
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。