Visits: 6
Winods10のPython3環境で日本語解析(MeCab)
Nobuyuki SAMBUICHI
ISO/TC295 Audit data services/SG1 Semantic model Convener
Winods10のPython3環境で日本語解析のMeCabを利用可能としました。
1. MeCabのインストール
MeCabのインストールに、ネット記事でよく紹介されている次のサイトからインストーラをダウンロードしました。
2. mecab-python3のインストール
pip install mecab-python3
標準インストールで C:\Program Files\MeCab にインストールしました。
3. 辞書のインストール
ChatGPTが提案してくれたPythonコードで名詞を抽出するテストプログラムを試作した。
次の箇所が問題となった。
# MeCabを初期化
mecab = MeCab.Tagger("-d C:/path/to/mecab/dic -Owakati") # dicrcのパスを指定してください
問題 1 パス中に空白があるためパスが正しく判断されない。
対策 1 ‘パス指定’とシングルクォートで囲った。
問題 2 mecabrcはインストールされているが、dicrcがないというエラーが出てしまう。
対策 2 IPA辞書をインストールしその個所を指定した。
> pip install unidic-lite
# MeCabを初期化
mecab = MeCab.Tagger("-d 'C:\\Program Files\\MeCab\\dic\\ipadic' -Owakati") # mecabrcがあるディレクトリを指定してください
問題 3 正しく品詞が分解されない
対策 3 -Owakatiの指定が間違い。茶筅を指定する。
# MeCabを初期化
mecab = MeCab.Tagger("-d 'C:\\Program Files\\MeCab\\dic\\ipadic' -Ochasen") # dicrcがあるディレクトリを指定してください
4. 名詞の抽出
ChatGPTは、日本語が苦手科目のようなので、次のネット記事を参考にしてテストプログラムを作成した。
chasentest.py
import MeCab
text = "解析したいテキストを入れる。"
# mecab = MeCab.Tagger("-Ochasen")
mecab = MeCab.Tagger("-d 'C:\\Program Files\\MeCab\\dic\\ipadic' -Ochasen") # dicrcがあるディレクトリを指定してください
nouns = [line.split()[0] for line in mecab.parse(text).splitlines()
if "名詞" in line.split()[-1]]
for str in nouns:
print(str)
mecab = MeCab.Tagger で形態素解析エンジンに茶筅を指定した。
mecab.parse(text).splitlines() で文を形態素単位に分割したデータが返されるので、解析データの終わりにある品詞データを選択条件として「名詞」のものだけを取り出す処理。