1.1K Views
February 08, 25
スライド概要
第2回IRUMA.R(https://irumar.connpass.com/event/339499/)のLTで発表したスライドです。
発表では,RMeCabを用いて近代語の形態素解析手順について説明しています。特に,旧仮名遣いのテキストを正しく解析できる辞書の設定方法を解説しています。
ドキュメントの公開方法を悩んでいます。一応作ってみたという感じです。
RMeCabで近代語の 形態素解析をやってみる @t_macya 1
自己紹介 • 大学の教員 • 専門領域:教育心理学,心理統計教育 • 現在は心理統計,心理測定,モチベーションを授業で担当 • 趣味:電子工作(自作キーボード作成を断念中),ラテアート 2
おしながき • 発表のモチベーション • RMeCabで近代語を解析するまでの流れ • MeCabのインストール • MeCab用の辞書のインストール • RMeCabのインストール • 使用する辞書を近代語解析用UniDicに変更 • まとめ 3
今回の発表のモチベーション • 第二次世界大戦の特攻隊の遺書を解析したい。 • 解析したい遺書にはこんな文が含まれる • 戦局ハ眞ニ切迫シテ来マシタ。 • 道には菜の花も咲きうぐひすの聲も聞えます。 • 思をこゝに致し立派なる帝国軍人たるべく努力せらるゝ様お願い申上候。 • 上記のような文は現代の辞書では正しく形態素解析してくれなさそう。 • 戦時中に使われていた旧仮名遣いを読み取れる必要あり。 • RMeCab導入に手こずったので,その備忘録として。 4
RMeCabパッケージの概要 • R上でMeCabを運用できるパッケージ • MeCab:日本語の文を単語に分解し,その文に含まれる品詞を解析す る形態素解析するソースコードが公開されているソフトウェア。形態 素解析するソフトウエアとしては,ChaSenやJumanがある。MeCab だとRで使えること,多様な辞書が利用できる利点がありそう。 • よく使うかもしれない関数(引数はまだ調べ中) RMeCabC(“ほげほげ”) • “”内の文の形態素解析の実行 RMeCabDF(データフレーム$列) • データフレーム内の特定の列についての形態素解析実施 5
RMeCabで近代語を解析可能にするまでの流れ 1. MeCabのインストール 2. MeCab用の辞書をインストール 3. RMeCabパッケージのインストール 4. 使用する辞書を近代語解析用UniDicに変更 6
前提 • macOS Sonoma 14.21 • CPUはインテルではなく,M1チップ • Windowsの場合や,インテルMacの場合は同じようにはできないかも • 基本的には,https://rmecab.jp/new/install-rmecab/や https://qiita.com/TSeri/items/a5fb830ed466d5b8ad7dを参照 7
1. MeCabのインストール 8
1-1. MeCabをインストールする方法と落とし穴 本家Webサイト(1,Homebrew(2,非公式github(3の3つの方法がある • MeCab公式からmecab-0.996.tar.gzをダウンロードしようとしても404 エラーとなって, 2025年2月8日現在はダウンロードできない。 • Homebrewからのダウンロードは,Homebrew版MeCabはパス設定が 複雑らしく,Rを用いてMeCabを使うときに落ちまくったので,エン ドユーザーは直にMeCabをダウンロードすることをおすすめ。 • Homebrew版MeCabとRMeCabを連携させるには • Homebrewを介した方法ではRMeCabを動かせなかったので,今回は githubにアップされている非公式のものからmecab-0.996.tar.gzなどを ダウンロード 9
1-2. githubからMeCabのダウンロード 1. Codeをクリック 2. Download ZIPをクリッ クして,MeCabを使用す るために必要なファイルを ダウンロード 3. ダウンロードしたzip ファイルを展開する 10
1-3. ターミナルからMeCabのインストール • ターミナル上で以下の%より後ろのコード入力し,実行(Rstudio上 でも)実行可能 参照するディレクトリをダウンロードフォルダに変更 % cd ~ /Downloads tar xf: .tarファイルを展開 mecab-0.996.tar.gzを展開 % tar xf mecab-0.996.tar.gz mecab-0.996.tar.gzを展開して生まれたmecab0.996フォルダに参照ディ % cd mecab-0.996 レクトリを変更 % ./configure --with-charset=utf8 ./configureで現在のディレクトリで,MeCabのソースコー ドをコンパイルして実行可能なファイルに変換する ために必要な環境設定を行なっている --with-charset=utf8では,MeCabがUTF-8の文字コードを 使用するように設定 MeCabのソースコードをコンパイルして実行可能なファイルに変換する % make % sudo make install MeCabのソースコードをコンパイルしてインストールを実行 11
2. MeCab用の辞書を インストール 12
2-1. ターミナルからMeCab用の辞書をインストール • MeCabをインストールしたときと同様にターミナル上で以下の%より 後ろのコード入力し,実行(Rstudio上のターミナルからも実行可能) • 最初はIPA辞書を使えるようにすることが多い % cd ~/Downloads % tar zvxf mecab-ipadic-2.7.0-20070801.tar.gz % tar xf mecab-ipadic-2.7.0-20070801.tar.gz % cd mecab-ipadic-2.7.0-20070801 % ./configure –with-charset=utf-8 % make % sudo make install tar xf: .tar.gzファイルを展開 するコードで, mecab-ipadic2.7.0-20070801.tar.gzを展開 13
2-2. こうなっていればOK • macab-996とmecab-ipadic-2.7.0-20070801フォルダができているこ とは最低限確認しておく 14
2-3. MeCabの動作確認 • ターミナルでmecabと打ってか らEnterキー(Returnキー)を押 すとターミナル上でMeCabが起 動する。 • すもももももももものうち と 打ってEnterキーで改行までする と形態素解析が実行できる。 • Ctrl + CキーでMeCabが終了し てターミナルの操作に戻る。 15
3. RMeCabパッケージの インストールと動作チェック 16
3-1. RMeCabパッケージのインストール • R上で以下のコードを実行 install.packages(“RMeCab”, repos = “https://rmecab.jp/R”, type = “source”) library(RMeCab) • 試しに,RMeCabC関数を使って,先ほど同様 の形態素解析をやってみる。 • これでRでMeCabが使用できるようになった。 17
3-2. 現在使用している辞書を確認 • 現在どの辞書を使用しているかは,ターミナル上で mebab -D と打ってEnterを押すと確認できる。現在はIPA辞書を使用している ことがわかる。 現在の辞書 18
3-3. 旧仮名遣いを扱えるのかを確認1 • 以下の4つのテキストでチェックしてみる 19
3-3. IPA辞書で旧仮名遣いを扱えるのかを確認2 20
3-4. IPA辞書で旧仮名遣いを扱えるのかを確認3 21
4. 使用する辞書を 近代語解析用UniDicに変更, 動作チェック 22
4-1. 旧仮名口語UniDicをダウンロード mecab -D 23
4-2. 現在使用している辞書の場所を確認 • MeCabが参照できる辞書の場所はターミナル上で mebab -D と打ってEnterを押すと確認できる。 このディレクトリならパスが 通っているのでMeCabが参照 できる 24
4-3. MeCabが参照できる場所に辞書フォルダを置く • ダウンロードしたUniDicを展開して,先ほど参照した場所 (/usr/local/lib/mecab/dic/)に新しい辞書フォルダを置く 25
4-4. mecabrcファイルがある場所を見つける • mecabrcを見つける • MeCabの設定ファイル • MeCabが現在どの辞書を参照しているか,文字コードが何かなどわかる • ターミナル上で,以下のコードを実施。 find / -name "mecabrc" 2>/dev/null • Ctrl + Cキーでターミナルの操作に戻ることが可能 このディレクトリにmecabrcファイルが存在する 26
4-3. nanoでmecabrcを書き換えて辞書を変更1 % sudo nano /usr/local/etc/mecabrc • sudo(管理者権限を行使)でnano(mecabrcを書き換えられるテキス トエディタ)を使ってmecabrcを開くためのコードをターミナルで実 行するとPCのパスワード入力を求められる。 • 入力するとnanoでmecabrcファイルが開かれる。 27
4-3. nanoでmecabrcを書き換えて辞書を変更2 • 新しい辞書を書き加え,これま で使用していた辞書の文頭にセ ミコロンをつけてコメントアウ トするようにする。 • 書き換えたらCtrl + Xキーで終了 する。書き換えていると,変更 を保存するか聞かれるのでYキー で保存を選択 • これで辞書変更が完了 28
4-4. 旧仮名遣いを使えるか確認1 29
4-4. 旧仮名遣いを使えるか確認2 30
まとめ • 旧仮名遣いの一部は正しく形態素解析できるようになった • 片仮名と漢字で作られた文章については精度が低いためなんらかの対 処が必要 • 個別に辞書登録する必要のある言葉もありそう • RMeCabC関数の中でdic = hogeで,辞書を指定するとなぜか R session abortedしてしまう。 Enjoy ! 31