planetary days,

不惑とか嘘だよ。惑う惑う。ふらふらと。

いまさらMeCab

2024年01月22日 | (ノ゜∀゜)ノ
windowsのpythonでMeCab (わかち書きとか 読みがなを生成するための日本語形態素解析)を使うメモ

・インストール
(1) あちこちに書いてあるけど、python3.xで利用する場合は mecab-python3 をpipでインストールする
   pip install mecab-python3
(2) これも同案多数だが、MeCabを使うためには辞書をインストールする必要があるので、以下を実行
(2)-1 形態素辞書として、公開されている unidic をシステム辞書として導入 (unidic-liteで良い、という記載もあるが、辞書本体のインストールにひと手間いるようなので大きい方を導入)
   pip install unidic
(2)-2 unidicで利用する辞書本体(AWSにおいてある模様)を導入(ちょっと大きい)
   python -m unidic download
(2') ipadicでもいいらしい。入れ方は検索してね。

・使う

import MeCab
tagger=MeCab.Tagger('-Ounidic22')
print( tagger.parse('分析対象の文字列') )

→結果

分析 名詞,普通名詞,サ変可能,,,,ブンセキ,分析,分析,ブンセキ,分析,ブンセキ,漢,"","","","","","",体,ブンセキ,ブンセキ,ブンセキ,ブンセキ,"0","C2","",9237555564388864,33606
対象 名詞,普通名詞,一般,,,,タイショウ,対象,対象,タイショー,対象,タイショー,漢,"","","","","","",体,タイショウ,タイショウ,タイショウ,タイショウ,"0","C2","",5991247483380224,21796
の 助詞,格助詞,,,,,ノ,の,の,ノ,の,ノ,和,"","","","","","",格助,ノ,ノ,ノ,ノ,"","名詞%F1","",7968444268028416,28989
文字 名詞,普通名詞,一般,,,,モジ,文字,文字,モジ,文字,モジ,漢,"","","","","","",体,モジ,モジ,モジ,モジ,"1","C3","",10367578673390080,37717
列 名詞,普通名詞,一般,,,,レツ,列,列,レツ,列,レツ,漢,"","","","","","B",体,レツ,レツ,レツ,レツ,"1","C3","",11191387726946816,40714


・出力形式
 unidicはデフォルトでyomiが指定できない: <Pythonディレクトリ>/Lib/site-packages/unidic/dicdir/dicrc に出力形式を追加する

; yomi
node-format-yomi = %pS%f[20]
unk-format-yomi = %M
bos-format-yomi =
eos-format-yomi =

 これで、tagger=MeCab.Tagger('-Oyomi') として、tagger.parse()で読み仮名(カタカナ)を出力

 カタカナをひらがなに変換したりとか、その他応用は適宜がんばれ

[1/24 補足]
unidic-lite / ipadicを用いた場合はTaggerで与えるオプションが異なる
・インストール
  pip install mecab-python3 #これはいっしょ
  pip install ipadic
  pip install unidic-lite
・使う
 -Oで指定できるフォーマットは -Ounidic 、-Ochamame 、-Owakati
 unidic-liteで読みがなの出力は以下を <Pythonディレクトリ>/Lib/site-packages/unidic-lite/dicdir/dicrc に追加して -Oyomi で

; yomi
node-format-yomi = %pS%f[17]
unk-format-yomi = %M
bos-format-yomi =
eos-format-yomi =


# 出力フォーマットの詳細は MeCabの出力フォーマットを参照のこと
コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« CHUWI minibook X 2023 (N100) | トップ |   
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。