2023年1月28日土曜日

テキストマイニング

施政方針演説(2)からの続き

テキストの分析は,テキストマイニングという名前でかつて流行っていた。検索エンジンの技術が話題になってビッグデータが流行り始めていたころだ。基礎知識に欠けた自分は,形態素解析で単語の出現頻度を調べて比較する先の議論には進むことができず終いだった。当時買った本がないかと本棚を確かめてみたけれど,それらしいものも見あたらない。

さて,施政方針演説テキストの抽出までを行うことにしよう。こういう目的のためにはシェルスクリプトが有難い。pythonやperlでまとまったプログラムを書くより,複数の簡単なコマンドを組み合わせるほうが楽だと思える素人プログラマーなのだった。

(1) ウィキソースにあった,内閣総理大臣施政方針演説のpdfファイルをダウンロードする。
(2) pdftotextによってpdfファイルをテキストに変換して一時保存する。
(3) tr -d で不要な改行コード,改ページコード,記号,数字,アルファベット等を取り除く(本文中の数字は全角のアラビア数字又は漢数字が使われている)。
(4) sed で句点「。」を「。+改行」に置き換えて一時保存する。
(5) sed でキーワードから本文前後の行を取り除き,これを最終のテキストファイルとする。
(6) 全体をシェルスクリプトにまとめ,コマンドライン引数で国会の開催回と総理の姓を入力して,該当するファイルを取り出せるようにした。

#!/bin/zsh

# Speech of Prime Minister in the Diet

# https://ja.wikisource.org/wiki/カテゴリ:内閣総理大臣施政方針演説

# 1/28/2023 K. Koshigiri

# usage: jpol.sh 204 菅

# output 204.txt


lynx -dump https://ws-export.wmcloud.org/\?format=pdf\&lang=ja\&page=第\$1回国会における\$2内閣総理大臣施政方針演説 > \$1.pdf

pdftotext \$1.pdf \$1-x.txt

cat \$1-x.txt | tr -d "\n\f[0-9][A-z] .,-(→/←);:'~Ö↑í" | sed "s/。/。\n/g" > \$1-y.txt

sed -e '/ウィキソース/d' -e '/作者:/d' -e '/この著作物/d' -e '/この作品/d' -e '/本作品/d' -e '/ 二次的著作物/d' -e '/許諾者/d' -e '/クレジット/d' -e '/あなたの/d' -e '/再構成/d' -e '/クリエイティブ・コモンズ/d' -e '/閲覧/d' \$1-y.txt > \$1.txt

rm $1-?.txt

perlまで必要ない場合は,小刀のような sed が使いやすいことがわかった。sedでキーワードによる行削除をするのだが,並列に記述できるということを学ぶ。


0 件のコメント: