アイソモカ

知の遊牧民の開発記録

開発記録 191207 Sat (100本ノック #047)

みんなのよく言う「マイニング」って何なんやろ。文章を分析するのに、テキストマイニング以外の何かがあるのだろうか。

前回の続き。

isomocha.hatenablog.com

 

やったこと

 

調べたことメモ

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 返事をする    と に は