みんなのよく言う「マイニング」って何なんやろ。文章を分析するのに、テキストマイニング以外の何かがあるのだろうか。
前回の続き。
やったこと
調べたことメモ
len() で調べる要素数は1から始まる
len() で調べる要素数は1から始まる。スライスの「○番目」は0から始まるので、(うっかり者のぼくは)間違えがち。
要素が入っているかを確かめるには、
if len(sample) > 0:
あるいは
if sample:
と書こう。
リストを後ろから取り出す
Pythonでリストや文字列を逆順に並べ替え(reverse, reversed) | note.nkmk.me
リストの要素を後ろから順に取り出したいときは、
for s in reversed(sample):
と書く。
UNIXコマンド cut
タブ区切りのデータファイルから、1列目を取り出してファイルに書き出す。ちなみに、1列目から3列目までなら、1,2
のように書く。
$ cut -f 1 data.txt > data_1.txt
区切り文字で区切られたデータファイルなら、オプション -d
で指定する。たとえば /
で区切るなら次のようにする。
$ cut -f 1 -d / data.txt > data_2.txt
参考:cut、head、tail、sort・・・定番のフィルタコマンドを使いこなす! ~業務でラクするためのUNIXテクニック~ (1/5):CodeZine(コードジン)
言語処理100本ノック #047
前回、要素が入っているかの確認を間違えて if len(sample) > 1
と書いていたので修正した。それから、述語に係る文節に助詞が複数ある場合には、最右の助詞を使うように変更した。
出力
述語に係る助詞は、1つの場合と複数の場合がある。ずらずらとつないで出力すると、どこまでが助詞でどこからが文節なのか分かりにくいため、/
で区切ることにした。
# knock047.py > knock047.txt (20行目まで) 決心をする と / こうと 返報をする んで / 偸んで 昼寝をする が / 彼が 迫害を加える て / 追い廻して 生活をする が を / 我等猫族が 愛を 投書をする て へ / やって ほととぎすへ 話をする に / 時に 昼寝をする て / 出て 欠伸をする から て / なったから 押し出して 報道をする に / 耳に 御馳走を食う と / 見ると 雑談をする ながら は / 寝転びながら 黒は 呼吸を飲み込む から / なってから 思案を定める と は / 若くはないと 吾輩は 御馳走をあるく って て / 猟って なって 放蕩をする が / ものだからが 放蕩をする も / 云うよりも 写生を力む に従って / 忠告に従って 写生をする から / しから 対話を聞く で / 椽側で
# knock047.py > knock047.txt (55行目) 返事をする と に は / 及ばんさと 手紙に 主人は
コーパス中で頻出する述語(サ変接続名詞+を+動詞)
タブ区切りの1列目を使い、ソートして、重複を数えて削除し、ソートして書き出す。
$ cut -f 1 knock047.txt | sort | uniq -c | sort -r > knock047_count.txt
↓
# knock047_count.txt (10行目まで) 26 返事をする 19 挨拶をする 12 話をする 8 質問をする 7 喧嘩をする 6 真似をする 5 質問をかける 5 相談をする 5 注意をする 5 昼寝をする
コーパス中で頻出する述語と助詞パターン
スラッシュ区切りの1列目を使い、ソートして、重複を数えて削除し、ソートして書き出す。
$ cut -f 1 -d / knock047.txt | sort | uniq -c | sort -r > knock047_count_pattern.txt
↓
# knock047_count_pattern.txt (17行目まで) 6 返事をする と 5 返事をする と は 4 挨拶をする から 4 挨拶をする と 3 質問をかける と は 3 喧嘩をする と 2 活躍を試みる て 2 休養を要する は 2 同情を表する て と は 2 返事をする から と 2 議論をする て 2 講義をする で 2 覚悟をする と 2 挨拶をする で 2 安心を得る が 2 挨拶をする と も 2 返事をする と に は