やったこと
UNIX コマンド
忘れがち。
ファイルを探す: find
このまえ UniDic どこに置いたっけ?って検索した。
$ find [検索するディレクトリ] -name [ファイル名]
ファイルを処理する: sort と uniq
まず、sort 。参考 👉 sortコマンドについて詳しくまとめました 【Linuxコマンド集】 sort data.txt
で行の1文字目の小さい順(昇順)に並べ替える。文字ではなく数の小さい順に並べたい場合は、-r
オプションを付ける。
次に、uniq。参考 👉 uniqコマンドについて詳しくまとめました 【Linuxコマンド集】 uniq
で重複した行を削除する。-c
オプションを付けると、重複した行数を表示できる。
コマンドを組み合わせる: |
コマンドを組み合わせる時、 |
(バーティカルバー) を使う。参考 👉 パイプ「|」を使って 複数のコマンドを組み合わせる - Linux入門 - Webkaru
コマンドを実行した結果をファイルに書き出す
>
を使う。ファイルが既にある場合には、上書きする。
sort data.txt > data_sorted.txt
指定した文字が含まれている行を抽出する: grep
初めて見た時にややこしすぎて、苦手意識あってんやんか。シンプルに考えればダイジョブ。
grep [検索文字列] data.txt
で、ファイルから検索文字列が含まれる行を抽出する。参考 👉 【 grep 】コマンド(応用編その1)――空白を含む文字列を検索する/正規表現を使って検索する:Linux基本コマンドTips(10) - @IT
これだけでは、「する」を検索したい場合に「称する」「愛する」なども抽出されてしまうので、^
(行頭) や \s
(スペース) とつなぐ形で検索するとよい。
grep -e '^する' knock045_count.txt
OR検索をしたい場合には、-e
コマンドを使う。[ ]
を使う方法もあるっぽいけど、うまく使えなかった。
grep -e '^見る' -e '^みる' knock045_count.txt
100本ノック #045 (後半)
以下の事項をUNIXコマンドを用いて確認せよ.
頻出する述語と格パターンの組み合わせ
sort knock045.txt | uniq -c | sort -r > knock045_count.txt
↓
# knock045_count.txt (20行目まで) 608 する を 315 云う と 254 なる に 243 ある が 216 する に 155 する が 128 する に を 117 見る を 111 思う と 102 する は 82 する と 73 出来る が 71 する が を 63 云う を 61 行く へ 61 もつ を 59 ある の 57 する は を 56 食う を 56 する も
「する」「見る」「与える」という動詞の格パターン
1. 「する」
grep '^する' knock045.txt | sort | uniq -c | sort -r > knock045_count_suru.txt
↓
# knock045_count_suru.txt (20行目まで) 608 する を 216 する に 155 する が 128 する に を 102 する は 82 する と 71 する が を 57 する は を 56 する も 49 する から 49 する の 42 する に は 41 する で を 37 する で 35 する が に 31 する から を 29 する と は 27 する と を 20 する に は を 15 する て を
2. 「見る」
基本形が「みる」となっているものもあったので、OR で取ることにした。
grep -e '^見る' -e '^みる' knock045.txt | sort | uniq -c | sort -r > knock045_count_miru.txt
↓
# knock045_count_miru.txt (20行目まで) 117 見る を 26 見る て 24 見る から 21 見る は 15 見る が 14 見る と 11 見る に 10 見る に を 9 見る は を 9 見る も 8 見る が を 6 見る て を 6 見る で 4 見る から を 4 見る で を 3 見る ばかり 3 見る で は を 3 見る と は 3 見る で も 3 見る か
3. 「与える」
こちらも、基本形が「与る」となっているものがあり、ざっと見てみたところ、「与る」は読みが「あずかる」となっている。本来は「与える」の古語「与うる」やろ。下の2文。IPA辞書に「与うる」が載ってないんかな。
- 人に告げられんでも人に知られているなと云う自覚を彼等に与うるだけが愉快である。
- デモスセニス曰く人もしその敵を苦しめんとせば、わが女を敵に与うるより策の得たるはあらず。
この2文は今回の「与える」と同じに扱ってもいいし、違うと扱ってもよさそう。とりあえず入れてみる。
grep -e '^与える' -e '^与る' knock045.txt | sort | uniq -c| sort -r > knock045_count_ataeru.txt
↓
# knock045_count_ataeru.txt 4 与える に を 3 与える に は を 3 与える を 2 与る に を 1 与える だけ に を 1 与える に に対して のみ は は も 1 与える か じゃあ と は を 1 与える か として を 1 与える て に に は を 1 与える に は は を 1 与える け に を 1 与える が を
後半完了。