まずは MeCab モジュールをインポートする.もしもエラーが表示されたら,準備を参考に,mecab-python3 をインストールしよう.
モジュールのインポート
import MeCab as mc
「自然言語処理の基本を説明します」という文章を形態素解析してみよう.なお,mac 環境では辞書を指定して実行します.mac環境で辞書の保存場所が異なれば,正しい辞書のパスを指定してください.Windowsの場合は特に引数を指定する必要はありません.
自然言語処理の基本を説明します
t = mc.Tagger() # for Windows
# t = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/ipadic') # for macOS
sent = "自然言語処理の基本を説明します"
print(t.parse(sent))
自然 名詞,形容動詞語幹,*,*,*,*,自然,シゼン,シゼン 言語 名詞,一般,*,*,*,*,言語,ゲンゴ,ゲンゴ 処理 名詞,サ変接続,*,*,*,*,処理,ショリ,ショリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 基本 名詞,一般,*,*,*,*,基本,キホン,キホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 説明 名詞,サ変接続,*,*,*,*,説明,セツメイ,セツメイ し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス EOS
上の出力フォーマットは次の通りです.
表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音
次に,同じ文章を形態素解析し,茶筌形式で出力してみよう.
茶筌形式で出力
t = mc.Tagger('-Ochasen') # for Windows
# t = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/ipadic -Ochasen') # for macOS
sent = "自然言語処理の基本を説明します"
print(t.parse(sent))
自然 シゼン 自然 名詞-形容動詞語幹 言語 ゲンゴ 言語 名詞-一般 処理 ショリ 処理 名詞-サ変接続 の ノ の 助詞-連体化 基本 キホン 基本 名詞-一般 を ヲ を 助詞-格助詞-一般 説明 セツメイ 説明 名詞-サ変接続 し シ する 動詞-自立 サ変・スル 連用形 ます マス ます 助動詞 特殊・マス 基本形 EOS
さらに,同じ文章を分かち書きしてみよう.
分かち書き
t = mc.Tagger('-Owakati') # for Windows
# t = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/ipadic -Owakati') # for macOS
sent = "自然言語処理の基本を説明します"
print(t.parse(sent))
自然 言語 処理 の 基本 を 説明 し ます
Mac や Linux を利用し,かつ,mecab-ipa-NEologd 辞書をインストールできていれば,この辞書を使ってみよう.mecab-ipa-NEologd を使えば「自然言語処理」を認識できるようになるはずです.ただし,辞書の保存場所の指定は環境によって異なる可能性があります.次のコードは Mac での指定方法です.例えば,ここの手順に従って構築した仮想開発環境の場合でも,同じ場所に辞書がインストールされるので,同じコードで動作するはずです.残念ながら,Windows 環境に mecab-ipa-NEologd 辞書をインストールするには Docker を利用する必要があり,Docker に慣れていなければかなり大変な作業になります.
自然言語処理の基本を説明します
mecab = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd')
sent = "自然言語処理の基本を説明します"
print(mecab.parse(sent))
自然言語処理 名詞,固有名詞,一般,*,*,*,自然言語処理,シゼンゲンゴショリ,シゼンゲンゴショリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 基本 名詞,一般,*,*,*,*,基本,キホン,キホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 説明 名詞,サ変接続,*,*,*,*,説明,セツメイ,セツメイ し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス EOS
次に,同じ文章を形態素解析し,茶筌形式で出力してみよう.
茶筌形式で出力
mecab = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd -Ochasen')
sent = "自然言語処理の基本を説明します"
print(mecab.parse(sent))
自然言語処理 シゼンゲンゴショリ 自然言語処理 名詞-固有名詞-一般 の ノ の 助詞-連体化 基本 キホン 基本 名詞-一般 を ヲ を 助詞-格助詞-一般 説明 セツメイ 説明 名詞-サ変接続 し シ する 動詞-自立 サ変・スル 連用形 ます マス ます 助動詞 特殊・マス 基本形 EOS
さらに,同じ文章を分かち書きしてみよう.
分かち書き
mecab = mc.Tagger('-r /dev/null -d /opt/homebrew/lib/mecab/dic/mecab-ipadic-neologd -Owakati')
sent = "自然言語処理の基本を説明します"
print(mecab.parse(sent))
自然言語処理 の 基本 を 説明 し ます自然言語処理 の 基本 を 説明 し ます