1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MeCab-python3 ユーザー辞書の作成windows11

Last updated at Posted at 2023-12-18

windowsでMeCabの辞書に単語を追加する方法です。正規のやり方ではないと思いますが、ネット上の方法では上手く出来なかったので自分なりに見つけた方法を記しました。

MeCabのインストール

1.pythonのライブラリインストール

pip install mecab-python3

なお、conda install には対応しておらず。

2.Windows版をインストール。ここから。
文字コードはUTF-8を選択する。

ユーザー辞書の作成

  1. Windows版MeCabのデフォルトの辞書を探す。
    例:C:\Program Files (x86)\MeCab\dic\ipadic
  2. 単語情報が入っているcsvファイルを探す。
  3. csvファイルを適当な所にコピーして末尾に単語を追加する。
    (そのままだと読み取り専用で編集できないため)
  4. 元のファイルと置き換える。管理者権限が必要。
  5. スタートメニュー>MeCabフォルダからRecompile UTF-8 Dictionaryを実行する。
  6. 更新されたどこかのフォルダに保存されているので探す。
    例:C:\Users\***\AppData\Local\VirtualStore\Program Files (x86)\MeCab\dic\ipadic
  7. 見つけたら以下の4つのファイル(中身はたぶん辞書のデータ)を任意のフォルダにコピペする。
    char.bin matrix.bin sys.bin unk.bin
  8. dicrcをデフォルト辞書のディレクトリからコピペする。

完了

※上記 7.8.において5つのファイルをコピペしたフォルダが、後にpythonから辞書の場所として指定するフォルダである。

pythonから実行する

import MeCab
tagger = MeCab.Tagger('-r nul -d C:/Users/***/Documents/python/[作成した辞書の場所]')

-r nulは無くても大丈夫で、-dは必要。
ネット上の情報では、ユーザー辞書の指定に-uを用いているが、上手くいかず。
代わりに、デフォルトの辞書に指定単語を追加する形で対応している。このため上記でリコンパイルを行っている。

コード全体

テキストから名詞、動詞(原形)、形容詞(原形)を取り出すコードの例。

def mecab_text(text):
    tagger = MeCab.Tagger('-r nul -d C:/Users/***/Documents/python/[作成した辞書の場所]')
    node = tagger.parseToNode(text)
    #形態素解析した結果を格納するリスト
    wordlist = []

    while node:
        #名詞のみリストに格納する
        if node.feature.split(',')[0] == '名詞':
            wordlist.append(node.surface)
        #他の品詞を取得したければ、elifで追加する
        elif node.feature.split(',')[0] == '動詞':
            wordlist.append(node.feature.split(',')[6])
        elif node.feature.split(',')[0] == '形容詞':
            wordlist.append(node.feature.split(',')[6])
        
        node = node.next
        
    wordlist = [w for w in wordlist if w  not in stopwords]
    
    return wordlist


stopwords =["こと","","これ","a","b","c","%","以上","もの",
            "する","もの","とも","ある","よる","","[","]",
           "さん"]
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?