石田基広 :Python で学ぶテキストマイニング入門

作成日 : 2025-04-09
最終更新日 :

概要

表紙には自然言語処理の基礎から応用まで学べるとある。

感想

pp.92-93 にある SECTION-032 では、MeCab の辞書整備について述べられている。 ここで書かれていないことを補足する。UTF-8 の Mecab を導入するにあたって、Windows 11 のターミナル環境にはおまじないが必要だ。 ターミナル(いわゆる DOS 窓)で、
C:> chcp 65001
と入力する必要がある。これが書かれていないのでちょっと焦った。

では、p.93 に書かれている辞書の生成は成功するだろうか。

c:\Program Files\MeCab\bin> mecab-dict-index.exe \
  -d "C:\Program Files\MeCab\dic\ipadic" \
  -u c:\data\motohiro.dic -f shift-jis -t shift-jis \
  c:\data\motohiro.txt
  reading c:\data\motohiro.txt ... context_id.cpp(96) [it != left_.end()] cannot find LEFT-ID for
  名詞,固有名詞,人名,名,*,*,*

失敗した。理由を考えてみた。ひょっとすると、上記の -f で指定した文字コード(CSV ファイルの文字コード)と -t で指定した文字コード(バイナリ辞書の文字コード)はどちらも shift-jis ではなくて utf-8 ではないだろうか。 そう思ってやり直した。

c:\Program Files\MeCab\bin> mecab-dict-index.exe \
    -d "C:\Program Files\MeCab\dic\ipadic" \
    -u c:\data\motohiro.dic -f utf-8 -t utf-u \
    c:\data\motohiro.txt
    reading c:\data\motohiro.txt ... 1
    emitting double-array: 100% |###########################################|
    
    done!

成功したようだ。実行してみる。下線は入力したことを表している。

c:\Program Files\MeCab\bin> mecab
石田基広です。
石田 名詞,固有名詞,人名,姓,*,*,石田,イシダ,イシダ
基広 名詞,固有名詞,人名,名,*,*,基広,モトヒロ,モトヒロ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS

本書と同じ結果になった。

次に section-033 (p.94) に進んだ。git for Windows 64bit をインストールしてみた。以下は、GitBash のコマンドプロンプトを使っている。

$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /dev/null
Cloning into 'mecab-ipadic-neologd'...
remote: Enumerating objects: 75, done.
remote: Counting objects: 100% (75/75), done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 75 (delta 5), reused 54 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (75/75), 58.09 MiB | 8.34 MiB/s, done.
$ cd mecab-ipadic-neologd/
$ ./bin/install-mecab-ipadic-neologd -n
[install-mecab-ipadic-NEologd] : Start..
[install-mecab-ipadic-NEologd] : Check the existance of libraries
[install-mecab-ipadic-NEologd] : find => ok
[install-mecab-ipadic-NEologd] : sort => ok
[install-mecab-ipadic-NEologd] : head => ok
[install-mecab-ipadic-NEologd] : cut => ok
[install-mecab-ipadic-NEologd] : egrep => ok
which: no mecab in (後略)

(後略)のところにパスが入っている。このメッセージは、mecab がパスにない、ということらしい。 その後パスを通したが、今度は config がないということでうまくいかない。

ということで、./bin/install-mecab-ipadic-neologd -n 以下がうまくいかなかったので、別方法にした。 以下は、mecab-dict-index や 7z が実行できるようにパスを通しておく。また、mkdir が実行できるよう、コマンドプロンプトは管理者として実行できるようにしておく。

> cd C:\Users\(username)\mecab-ipadic-neologd\seed
> 7z X *.xz
> mecab-dict-index -d "c:\Program Files\MeCab\dic\ipadic" -u NEologd.20200910-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200910.csv
> mkdir "C:\Program Files\MeCab\dic\NEologd"
> move NEologd.20200910-u.dic "C:\Program Files\MeCab\dic\NEologd"

次にC:\Program Files\MeCab\etcにある mecabrc を変更する。

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

これで NEologd がインストールされた。

参考 WindowsでPythonでMeCab(mecab-ipadic-NEologd)(qiita.com)

p.106 では、自作関数のモジュール化について述べられている。ここでは、Jupyter の参照するデフォルトのフォルダに、 自作関数が存在することが前提となっている。もし、自作関数がデフォルトフォルダになければ、Jupyter でのフォルダを移動する必要がある。 これは os.chdir() 関数を用いる。ただし、os.chdir() の引数は絶対パスでないといけない。また。Windows では、 サブフォルダを表す場合は \\ のようにバックスラッシュを連続して使う必要がある。

p.111 の上部枠囲みは、品詞細分類の情報で使って機能語を削除した結果である。これはどうも私の結果とは異なる。私の結果は次の通りだ。

良い 形容詞 自立 良い
本 名詞 一般 本
もう 副詞 一般 もう
冊 名詞 接尾 冊
買っ 動詞 自立 買う
永久保存版 名詞 固有名詞 永久保存版
しよ 動詞 自立 する

p.111 では、ストップワードについて解説されている。このストップワードの公開リストとして、SlothLib があるという。下記がその URL だ。
http://svn.sourceforge.jp/svnroot/slothlib/CSharp/Version1/SlothLib/NLP/Filter/StopWord/word/Japanese.txt
ところが上記の URL はつながらない。sourceforge.jp は osdn.jp になり、さらに osdn.jp もつながらなくなっている。 さいわいなことに、上記 URL は www.archive.org でアーカイブされている。 直近では 2023 年 3 月 15 日のアーカイブがある。これをダウンロードしてローカルに保存すればできるだろう。

誤植

p.93 に枠囲みが2箇所ある。そのうち、上のほうを引用する。

  > cd /d c:\Program Files\Mecab\bin
  C:\Program Files\Mecab\bin>mecab-dict-index.exe \
      -d "c:\Program Files\Mecab\bin\ipadic" \
      -u c:\data\motohiro.dic -f shift-jis -t shift-jis \
      c:\data\motohiro.txt

正しくは次の通りと考えられる。まず、上記 3 行めは bin ではなく dic だろう。そして、-f オプションと -t オプションで指定された文字コードは、 どちらも shift-jis ではなく utf-8 であると考えられる。

  > cd /d c:\Program Files\Mecab\bin
  C:\Program Files\Mecab\bin>mecab-dict-index.exe \
      -d "c:\Program Files\Mecab\dic\ipadic" \
      -u c:\data\motohiro.dic -f utf-8 -t utf-8 \
      c:\data\motohiro.txt

書誌情報

書名 Python で学ぶテキストマイニング入門
著者 石田基広
発行日 2022 年 8 月 22 日 初版
発行所 C&R研究所
定価 3220 円(税別)
サイズ A5 版
ISBN 978-4-86354-393-5
その他 越谷市立図書館で借りて読む
NDC

まりんきょ学問所コンピュータの部屋コンピュータの本Python > 石田基広:Python で学ぶテキストマイニング入門


MARUYAMA Satosi