ターミナル上で文章から頻出キーワード(or文字)を取得する
Pocket

ふと思い立ったので、ターミナル上でファイルから頻出しているキーワード(スペース区切り)・文字を取得させてみることにする。
特に難しいことはなく、以下のように簡単に行える。

1.スペース区切りの頻出キーワードを抽出する

スペース区切りの頻出キーワードを抽出する場合は、以下のようにする。

コマンド | sed 's/ /\n/g;s/\t/\n/g' | grep -v ^$ | sort | uniq -c | sort -nr | head -20

 

例として、lsのmanの内容で抽出した結果が以下。

blacknon@BS-PUB-UBUNTU-01:~$ man ls | col | sed 's/ /\n/g;s/\t/\n/g' | grep -v ^$ | sort | uniq -c | sort -nr | head -20
     20 of
     17 by
     16 with
     15 to
     15 list
     14 and
     13 the
     12 sort
     12 not
     12 is
     10 or
     10 entries
     10 do
      9 print
      9 file
      8 if
      8 for
      8 a
      8 -l,
      6 use
Sponsored Links

2.頻出文字を抽出する

頻出キーワードでなく、頻出文字を抽出する場合。
以下のようにコマンドを実行する。

コマンド | grep -o . | grep -v "^\s*$" | sort | uniq -c | sort -k1nr | head
blacknon@BS-PUB-UBUNTU-01:~$ man ls | col | grep -o . | grep -v "^\s*$" | sort | uniq -c | sort -k1nr | head
    464 e
    401 t
    367 i
    341 o
    320 s
    291 n
    272 r
    244 a
    240 l
    229 -

 

最もよく使われるアルファベットはeだと言われているので、まぁまぁ納得のできる結果が返ってきたようだ。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*