MeCab+NEologdを使って日本語を分かち書きにするツールを作った
2019-05-26
- プログラミング
Word2VecとかするときにMeCab + NEologdを使って分かち書きする。だがインストールがやや面倒。Dockerを使って、手軽に分かち書きするツールを作った。
やりたいこと
- MeCab + NEologdで分かち書きする
- ディレクトリ構造を保つ
Word2Vecで全テキストを1つにまとめてしまうときは問題ないが、Doc2Vecとかするときには1ファイルごとに分かち書きしたい。そのときディレクトリ構造を変えられると面倒なので、同じになるようにする。
たとえば以下のような感じ。inputに分かち書きしたいファイルをディレクトリごと入れたら、その構造を保ったままoutputに結果が出る。
├── input
│ ├── 1
│ │ ├── 11
│ │ │ └── c.txt
│ │ └── b.txt
│ ├── 2
│ │ └── d.txt
│ └── a.txt
└── output
├── 1
│ ├── 11
│ │ └── c.txt
│ └── b.txt
├── 2
│ └── d.txt
└── a.txt
できたもの
実行例
./mount/input
に上のツリー構造の通りファイルを入れる。中身はすべて同じで、NEologdにある例と同じにした。
そしてDockerイメージを作成し、 ./split.sh
を実行。
入力
$ for f in `ls mount/input/**/*.txt`; do echo $f; cat $f; done
mount/input/1/11/c.txt
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
mount/input/1/b.txt
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
mount/input/2/d.txt
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
mount/input/a.txt
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
出力
$ for f in `ls mount/output/**/*.txt`; do echo $f; cat $f; done
mount/output/1/11/c.txt
8月3日 に 放送 さ れ た 「 中居正広の金曜日のスマイルたちへ 」( TBS 系 ) で 、 1日 たった 5分 で ぽっこり おなか を 解消 する という ダイエット方法 を 紹介 。 キンタロー。 の ダイエット に も 密着 。
mount/output/1/b.txt
8月3日 に 放送 さ れ た 「 中居正広の金曜日のスマイルたちへ 」( TBS 系 ) で 、 1日 たった 5分 で ぽっこり おなか を 解消 する という ダイエット方法 を 紹介 。 キンタロー。 の ダイエット に も 密着 。
mount/output/2/d.txt
8月3日 に 放送 さ れ た 「 中居正広の金曜日のスマイルたちへ 」( TBS 系 ) で 、 1日 たった 5分 で ぽっこり おなか を 解消 する という ダイエット方法 を 紹介 。 キンタロー。 の ダイエット に も 密着 。
mount/output/a.txt
8月3日 に 放送 さ れ た 「 中居正広の金曜日のスマイルたちへ 」( TBS 系 ) で 、 1日 たった 5分 で ぽっこり おなか を 解消 する という ダイエット方法 を 紹介 。 キンタロー。 の ダイエット に も 密着 。
ちゃんとファイルごとに分かち書きできてる。
ディレクトリ構造もそのまま。
$ tree mount/
mount/
├── input
│ ├── 1
│ │ ├── 11
│ │ │ └── c.txt
│ │ └── b.txt
│ ├── 2
│ │ └── d.txt
│ └── a.txt
└── output
├── 1
│ ├── 11
│ │ └── c.txt
│ └── b.txt
├── 2
│ └── d.txt
└── a.txt