Search Posts

Visits: 6

Nobuyuki SAMBUICHI
ISO/TC295 Audit data services/SG1 Semantic model Convener

Winods10のPython3環境で日本語解析のMeCabを利用可能としました。

1. MeCabのインストール

MeCabのインストールに、ネット記事でよく紹介されている次のサイトからインストーラをダウンロードしました。

230730Picture10

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() で文を形態素単位に分割したデータが返されるので、解析データの終わりにある品詞データを選択条件として「名詞」のものだけを取り出す処理。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です