WindowsにNEologdを再インストール

再インストール準備

たまに使う形態素解析パッケージ「MeCab」と辞書「NEologd」の組み合わせ。

主にMacで使います。
久しぶりにWindows(10)で使おうとしたら、なぜか「NEologd」が動かなかったので、再インストールしました。
今後のために手順をメモしておきます。
まずは「NEologd」のインストールに使うファイル一式をダウンロードします。
なお、「R」はバージョン4.1.0から4.2.2にアップデートしました。
(今回使ったのは「Rコンソール」の方で「RStudio」ではありません)

GitHubからダウンロード

GitHubにブラウザでアクセスして、辞書ファイル作成に使うファイルをダウンロードしました。

GitHub URL: https://github.com/neologd/mecab-ipadic-neologd.git

画面右側の「Code」メニューから「Download ZIP」を選びます。
mecab-ipadic-neologd-master.zip」がダウンロードできました。

GitHubからダウンロード

解凍

解凍します。
複数のフォルダが取得できます。
まず辞書本体の元データが入っている「seed」フォルダを確認します。

解凍する

CSVを取得

seed」フォルダ内に「.yz」ファイルが入っています。
7zipツールで解凍します。

「seed」フォルダ内に「.yz」は解凍する

解凍するとCSVが取得できます。
辞書ファィルの元となります。

解凍するとCSVファイルが出てくる

整理しやすいように、解凍したファイルをProgram Filesディレクトリの「MeCab」の辞書フォルダ下にコピーしておきます。

今回は「neologd_20230313」フォルダを作成してここにコピー

コマンドプロンプトを管理者として実行

コマンドプロンプトを右クリックして「管理者として実行」します。

コマンドプロンプトを「管理者として実行」

管理者として実行しないと、辞書ファイル生成時に

dictionary.cpp(500) [bofs] permission denied

というメッセージが出て処理が止まることがあります。

辞書ファイル(.dic)の作成(コンパイル)に使う「mecab-dict-index」コマンドがあるディレクトリに移動します。

C:\WINDOWS\system32>cd C:\Program Files\MeCab\bin
「mecab-dict-index」コマンドがあるディレクトリに移動

辞書作成コマンドを実行

以下のコマンドを実行します。

mecab-dict-index -d "C:\Program Files\MeCab\dic\ipadic" -u "C:\Program Files\MeCab\dic\nologd_20230313\neologd.dic" -f utf-8 -t utf-8 "C:\Program Files\MeCab\dic\nologd_20230313\mecab-user-dict-seed.20200910.csv"

reading C:\Program Files\MeCab\dic\nologd_20230313\mecab-user-dict-seed.20200910.csv ... 3224584
emitting double-array: 100% |###########################################|

done!

“C:\Program Files\MeCab\dic\nologd_20230313\neologd.dic”」が生成する辞書名を指定し、
“C:\Program Files\MeCab\dic\nologd_20230313\mecab-user-dict-seed.20200910.csv”」が「.dic」ファイル作成に使う辞書の元データです。
utf-8」で文字コードがUTF-8の辞書の作成を指定しています。

「neologd.dic」を生成

Shift-JIS用の辞書を作る場合は「utf-8」の部分を「shift_jis」に変えて実行します。

mecab-dict-index -d "C:\Program Files\MeCab\dic\ipadic" -u "C:\Program Files\MeCab\dic\nologd_20230313\neologd_sjis.dic" -f shift_jis -t shift_jis "C:\Program Files\MeCab\dic\nologd_20230313\mecab-user-dict-seed.20200910.csv"

WindowsのターミナルでUTF-8の辞書を使って「MeCab」を実行すると文字化けします。

C:\Program Files\MeCab\bin>mecab
今日呪術回線の映画を見ました。
今日呪術回線の  險伜捷,荳€闊ャ,*,*,*,*,*
f       蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
        險伜捷,荳€闊ャ,*,*,*,*,*
謔      蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
見ました        險伜捷,荳€闊ャ,*,*,*,*,*
B       蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,*
EOS

ターミナルがUTF-8に対応していないためですが、「R」では文字化けは起こりません。

設定ファイルの内容を変更

最後に、NEologdの辞書を使えるように設定ファイル「mecabc」の内容を変更します。
「mecabc」は「etc」フォルダにあります。

「etc」フォルダに入っている設定ファイルの内容を変更する

以下の2行を追加しています。

dicdir = C:\Program Files\MeCab\dic\ipadic
userdic = C:\Program Files\MeCab\dic\nologd_20230313\neologd.dic

この設定でNEolodは動くようになりました。

デフォルト辞書がNEologdに

今回色々と試す過程で「C:\Program Files\MeCab\dic\ipadic」の下にも「neologd.dic」を置いています。
このファイルが有効になっているようで、「R」のデフォルトの辞書が「neologd.dic」に変わりました。
(「C:\Program Files\MeCab\dic\ipadic」の下にある「neologd.dic」を削除すると、「R」が落ちてしまいました)
まだ調べている途中ですが、本来上記の設定では「デフォルトはipadicのシステム辞書」、ユーザー辞書のオプションパラーメータを指定して「userdic = C:\Program Files\MeCab\dic\nologd_20230313\neologd.dic」を使う、という振る舞いになるようです。
オプションパラメータを指定しなくても「neologd.dic」を使えるようになっている点は、後で調べるつもりです。

dicdr=標準辞書指定は?


「mecabc」全体は以下のようになっています。
dicdir = $(rcpath)\..\dic\ipadic」という記述は、「dicdir = C:\Program Files\MeCab\dic\ipadic」という設定があるので不要にも思えるのですが、現状正常に動いているので、「dicdr」の振る舞いも後で検証するつもりです。

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;

dicdir = C:\Program Files\MeCab\dic\ipadic
userdic = C:\Program Files\MeCab\dic\nologd_20230313\neologd.dic

;
dicdir =  $(rcpath)\..\dic\ipadic

; userdic = /home/foo/bar/user.dic

; output-format-type = wakati
; input-buffer-size = 8192

; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n

Rでテスト

「R」での実行結果です。

> library(RMeCab)
> res <- RMeCabC("五条悟と夏油傑の高専時代の物語")
> unlist (res)
    名詞     助詞     名詞     助詞     名詞     名詞     助詞     名詞 
"五条悟"     "と" "夏油傑"     "の"   "高専"   "時代"     "の"   "物語

Rコンソールを使用しています。
「五条」と「悟」、「夏油」と「傑」に分かれずに名詞として認識しているので、「NEologd」を使っているのが確認できました。


「RStudio」用にも「NEologd」をインストール・設定する必要があるので、それは別の機会に行います。
上記については、その後個別のインストールはしないでで済むことがわかりました
自分の環境については、「RStudio」の画面上の「Tools」→「Global Options」→「General」から「R version」を変更することで今回入れた「NEolodd」の設定が使えました。
「ChatGPT」から教えてもらいました。

CahtGPTに聞く

微妙に間違える回答も少なくないのですが、何が間違えているのかをべたり、聞き方を変えて正しい情報を取得したりすることで、スキルが上がる感じがします。

今回上述の「mecab-dict-index コマンド」は「ChatGPT」から得た回答を使っています。

mecab-dict-index コマンドを使って NEologd の辞書を作る手順を教えてくれますか。 Windowsパソコンを使っています。

ChatGPT
ChatGPT
  1. まず、NEologdの辞書をダウンロードしてください。以下のサイトから、最新版の「mecab-ipadic-NEologd」をダウンロードします。 https://github.com/neologd/mecab-ipadic-neologd
  2. ダウンロードしたファイルを解凍し、NEologdというフォルダーを任意の場所に置いてください。
  3. コマンドプロンプトを開き、以下のコマンドを実行して、MeCabのインストールフォルダに移動してください。
cd C:\Program Files\MeCab\bin

※MeCabのインストール先が異なる場合は、上記のパスを適宜変更してください。

  1. 以下のコマンドを実行して、NEologdの辞書をインストールします。
mecab-dict-index -d "C:\Program Files\MeCab\dic\ipadic" -u "path/to/neologd.dic" -f utf-8 -t utf-8 "path/to/NEologd/seed/mecab-user-dict-seed.20210802.csv"

※上記のコマンドで、以下の部分をそれぞれ適宜変更してください。

  • path/to/neologd.dic:作成する辞書ファイルのパスを指定します。例えば、C:\neologd.dicなど。
  • path/to/NEologd/seed/mecab-user-dict-seed.20210802.csv:NEologdの辞書作成用のシードデータが入っているCSVファイルのパスを指定します。解凍したNEologdフォルダーの中にseedというフォルダーがあり、その中にあるCSVファイルを指定します。

また、同じく上述している「管理者権限でコマンドプロンプト実行」も「ChatGPT」から答えを得ました。

dictionary.cpp(500) [bofs] permission denied: C:\Program Files\MeCab\dic\nologd_20230313 というメッセージが出ました。

ChatGPT
ChatGPT

このエラーメッセージは、MeCabが辞書ファイルにアクセスできないことを示しています。具体的には、C:\Program Files\MeCab\dic\nologd_20230313にアクセスしようとして、アクセス許可がないためにエラーが発生したということです。

このエラーを解決するには、MeCabの辞書フォルダーに対するアクセス許可を変更する必要があります。以下の手順に従って、アクセス許可を変更してください。

 

  1. フォルダーのプロパティを開きます。MeCabの辞書フォルダーである「C:\Program Files\MeCab\dic」を右クリックし、プロパティを選択します。
  2. 「セキュリティ」タブをクリックし、「編集」ボタンをクリックします。
  3. 「追加」ボタンをクリックして、自分自身のアカウントを追加します。
  4. 追加したアカウントを選択し、下部の「書き込み」にチェックを入れます。
  5. 「適用」ボタンをクリックして変更を保存します。
  6. MeCabを再度実行し、エラーが解消されていることを確認してください。

この手順で解決しない場合は、管理者権限でコマンドプロンプトを開いてからMeCabを実行するという方法もあります。具体的には、スタートメニューから「コマンドプロンプト」と検索し、右クリックして「管理者として実行」を選択します。その後、MeCabをインストールしたディレクトリに移動し、MeCabを実行してください。

mecabのインストール

今回、「MeCab」と「RMeCab」はインストール済の状態から始めています。
「MeCab」をインストールする場合、「ChatGPT」に「Windowsにmecabをインストールする方法を教えてくれますか。」と聞くと必要な情報を教えてくれます。

「MeCabの公式サイト(https://taku910.github.io/mecab/#download)から、Windows版の「32/64bit版」をダウンロードします。」

という回答をもらえました。

RMeCabのインスト―ルは?


「次にRMeCabをインストールしたいです。」という質問には「install.packages(“RMeCab”)」を実行するように返事が戻ってきます。
これはうまくいきません。
質問の仕方を変えて何度か聞きましたが、「RMeCab」のインストール方法はわかりませんでした。
とりあえずどうしたかというと、Rのコンソールで

install.packages("RMeCab", repos = "https://rmecab.jp/R", type = "source")

を実行して表示された以下のメッセージから、「https://rmecab.jp/R/src/contrib/RMeCab_1.07.tar.gz」にアクセスして「RMeCab_1.07.tar.g」をダウンロードしています。

を ‘C:/Users/username/Documents/R/win-library/4.1’ 中にインストールします 
 (‘lib’ が指定されていないため) 
 URL 'https://rmecab.jp/R/src/contrib/RMeCab_1.07.tar.gz' を試しています 
Content type 'application/x-gzip' length 1473940 bytes (1.4 MB)
downloaded 1.4 MB

* installing *source* package 'RMeCab' ...
** using staged installation
** libs

*** arch - i386
 system(cmd) で警告がありました:  'make' not found
ERROR: compilation failed for package 'RMeCab'

「ChatGPT」に「tar.gzを使ったインストール方法」を聞いたところ

install.packages("RMeCab_1.07.tar.gz", repos = NULL, type="source")

RMeCabをインストールするためには、ダウンロードした「RMeCab_1.07.tar.gz」ファイルのパスを指定して、上記のコマンドを実行します。

という答えをもらったので、実行しましたが、「RMeCab_1.07.tar.gz’ had non-zero exit status」というメッセージが出てうまくいきませんでした。
最終的に「ChatGPT」から得た情報を元に、「RMeCab_1.07.zip」をダウンロードして以下のようにインストールできました。
しかし、「RMeCab_1.07.zip」の取得先を何度聞き直してもわからなくなってしまいました。

>  install.packages("C:/Users/username/Downloads/RMeCab_1.07.zip", repos = NULL, type = "win.binary")
 パッケージを ‘C:/Users/username/Documents/R/win-library/4.1’ 中にインストールします 
 (‘lib’ が指定されていないため) 
package ‘RMeCab’ successfully unpacked and MD5 sums checked
> library(RMeCab)
> 


現状「RMeCab」を使えてはいるのですが、ChatGPTからは

RMeCabのバージョン1.07は、2021年6月時点でR 4.1.xに対応していました。最新のR 4.2.xに対応しているかどうかは分かりませんが、RMeCabの開発者が新しいRのバージョンに対応するために更新を行う可能性があります。

というコメントをもらって気になり始めたので、色々と調べるつもりです。
「ChatGPT」は2022年以降の情報を持っていないようなので、次は「Bing AI」に聞いてみようと考えています。

タイトルとURLをコピーしました