/usr/share/dict/words ( /usr/share/dict/american-english , /etc/dictionaries-common/words ) の単語リストから頭文字のアルファベットを数えて降順に並べる。

総単語数

$ wc -l /usr/share/dict/words
96274 /usr/share/dict/words

こんな感じのスクリプトを組んでみる。ハッシュの値でソートするのはよくわからないので、テキトー。

$ cat ./ic.rb
#!/usr/bin/ruby
 
file = ARGV[0]
lines = IO.readlines(file)
 
hash = Hash.new
 
lines.each do |i|
  key = i[0,1].downcase
  val = hash[key]
  if val == nil then
    val = 0
  end
  val = val + 1
  hash[key] = val
end
 
# ハッシュの値で昇順ソート
#hash = hash.sort {|a,b| a[1] <=> b[1] } 
 
# ハッシュの値で降順ソート
hash = hash.sort {|a,b| b[1] <=> a[1] }
 
hash.each do |key, val|
  print key, " -- ", val, "\n"
end

頭文字を数える。

$ ./ic.rb /usr/share/dict/words
s -- 10809
c -- 9308
p -- 7367
b -- 5967
m -- 5772
a -- 5763
d -- 5705
r -- 5177
t -- 4824
f -- 3993
h -- 3755
e -- 3742
i -- 3546
l -- 3365
g -- 3358
w -- 2671
o -- 2209
n -- 1950
u -- 1860
v -- 1554
j -- 1234
k -- 1189
q -- 452
y -- 363
z -- 271
x -- 54
 薛- 14
 鏑- 1
 
 -- 1

変なものも混じっているけど、まぁこんなところで。

その他、関係ありそうな無さそうなページ。

Manpage of HIER

hier - ファイルシステム階層の説明
/usr/share/dict
スペルチェッカ用の単語リストが含まれる。

Higuchi's World (英語教育ページ) - 辞書とコーパス

rdic - 英辞郎検索ツール by Ruby

tags: Ruby zurazure

Posted by NI-Lab. (@nilab)