2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自然言語処理のための事前準備(Windows)

Last updated at Posted at 2024-06-03

投稿の背景

つくりながら学ぶ!PyTorchによる発展ディープラーニング」を読んでいて、MeCabを用いた自然言語処理の話が出てきました。しかし、当該書籍は開発環境にLinuxを想定しており、Windows用のコマンドが記載されていなかったので、Windows, Pythonで動くMeCab, NEologdのインストール手順を書き残しておきます。

MeCabインストール

金子邦彦研究室のWebページに従ってインストールを進めてください。念のため、私が取り組んだ行動を記します。

  • MeCabのWebページからmecab-xxx.exeをダウンロードし、実行してMeCabをインストールする(文字コードはUTF-8を選択した)
  • Windowsのシステム環境変数にc:\Program Files (x86)\Mecab\binを追加し、パスを通す

エディタの文字コードとMeCabの文字コードを合わせないと文字化けが起こるので要注意。今回はUTF-8で合わせてある。

MeCabに辞書を追加する

WindowsでNEologd辞書を比較的簡単に入れる方法ーユーザー辞書編に従って作業を進めてください。念のため、私が取り組んだ行動を記します。

1

適当なディレクトリfooで以下のコマンドを実行する。そうすると、foo直下にmecab-ipadic-neologdフォルダが生成される。

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

2

7zipのWebページから7zipをダウンロードする。
Windowsのシステム環境変数にC:\Program Files\7-Zipを追加し、パスを通す。
以下のコマンドを実行する。

# .../seed
$ 7z X *.xz

3

以下のコマンドを実行する。そうすると、c:\Program Files (x86)\MeCab\dic\ipadicフォルダ直下にNEologd.20200910-u.dicファイルが生成される。文字コードはUTF-8で合わせる必要がある。「20200910」の部分は適宜変更。

# .../seed
$ mecab-dict-index -d "c:\Program Files (x86)\MeCab\dic\ipadic" -u NEologd.20200910-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200910.csv

4

C:\Program Files (x86)\MeCab\dic\NEologdフォルダを作成し、seedフォルダ直下にあるNEologd.20190128-u.dicファイルをNEologdフォルダ直下に移す。管理者権限が必要。

5

C:\Program Files (x86)\MeCab\etc\mecabrcファイルに次の行を追加する。行頭に「;」が含まれるとコメントアウト扱いになる(?)ので注意する。これも管理者権限が必要。

dicdir =  $(rcpath)\..\dic\ipadic
userdic = C:\Program Files (x86)\MeCab\dic\NEologd\Neologd.20200910-u.dic

確認

まずは辞書を指定しないで実行する。

import MeCab

m_t = MeCab.Tagger('-Ochasen')

text = '機械学習が好きです。'

print(m_t.parse(text))

# 機械	キカイ	機械	名詞-一般		
# 学習	ガクシュウ	学習	名詞-サ変接続		
# が	ガ	が	助詞-格助詞-一般		
# 好き	スキ	好き	名詞-形容動詞語幹		
# です	デス	です	助動詞	特殊・デス	基本形
# 。	。	。	記号-句点		
# EOS

次に、辞書NEologdを指定して実行する。

import MeCab

m_t = MeCab.Tagger('-Ochasen -r "C:\Program Files (x86)\MeCab\etc\mecabrc"') # -d ではなく -r

text = '機械学習が好きです。'

print(m_t.parse(text))

# 機械学習	キカイガクシュウ	機械学習	名詞-固有名詞-一般		
# が	ガ	が	助詞-格助詞-一般		
# 好き	スキ	好き	名詞-形容動詞語幹		
# です	デス	です	助動詞	特殊・デス	基本形
# 。	。	。	記号-句点		
# EOS

辞書未指定だと機械学習という単語は「機械」「学習」と認識されてしまうが、辞書NEologdを指定すると「機械学習」という1つの単語として認識されている。

参考

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?