小説"The Great Gatsby"中の頻出単語を調べる

フィッツジェラルドの名作『華麗なるギャッツビー』を原作(英語)で読む機会があった。海外の小説を原著で読む機会は少なかったので,異常な形容詞の出現率の多さに苦労した。あらかじめ出現率の高い形容詞の意味を把握していれば読みやすさはぐっと増すことだろう。ということで実際に調べてみた。先人の方々が『Alice's story in WonderLand』『Social Network』中の単語の出現頻度を調べてるのに非常にインスパイアされた。

手順

(i)http://gutenberg.net.au/ebooks02/0200041.txtより"The Great Gatsby"の原本を入手する。
(ii)テキストファイル(gatsby.txt)に保存し本文以外の部分(注意書き)などを取り除く。
(iii)本文中の「"」,「,」,「.」,「!」,「?」,「'」を「」に置換する。
(iv)スクリプトにかける。

今回書いたスクリプトはこれ。

#coding:shift-jis

#write in the words to text file.
txt = open("gatsby.txt","r").read()
writer = open("words.txt","w")
word = ""
for i in txt:
	if i == " " :
		print "writing:",word.lower()
		writer.write(word.lower() +"\n")
		word = ""
	else:
		word = word + i

#counting the words in text
f = open("words.txt","r")
f1 = open("count.txt","w")
word_count = {}
liner = f.readlines()
for line in liner:
	if line in word_count:
		word_count[line] = word_count[line] + 1
	else:
		word_count[line] = 0
for k,v in sorted(word_count.items(),key=lambda x:x[1]):
	f1.write(k + ":"+str(v))

結果

予想外なことに単発の形容詞が多い。


:22wilson
:22miss
:22are
:22baker
:22gatsby
:23after
:23went
:24which
:24way
:24been
:25mrs
:25get
:25came
:25new
:27no
:27daisy

デイジーが27回も登場しているがいわずもがな"The Great Gatsby"で非常に重要な鍵を握っているのがデイジーであり出現回数からそれが読み取れる結果となっている。登場人物の名前の多さも伺える。

フィッツジェラルドの書き方が非常に巧妙。
おもわずデイジーの気持ちを考えてしまうのはこのせいか・・・。


参考:
http://d.hatena.ne.jp/mickey24/20110212/nlp_with_the_social_network