#開発の動機
毎年送りあう年賀状…
部屋の整理をしていたら、先輩や後輩からもらった年賀状がたくさん出てきた。
これを何か役立てないかと考えた。
そこで閃いたのが、他人から見た自分を年賀状を通じて可視化できるのではなかろうかと思いついた。
いわゆる他己分析が年賀状を通じてできるのではないだろうかと思った。
考えてみれば、自分が他の人に書くときは、去年のその人の印象やエピソードなんかを交えて書く。
これは他人も同じなのではないかと考えた。
年賀状を形態素解析して、自分に対する印象を抽出できるはず…
それをワードクラウドにして、自分の他人に対する印象を可視化しようと思った。
#作り方
##1 年賀状の文面の打ち込み(データ入力)
まず、分析するデータを集める必要があるので、年賀状の内容をエクセルにまとめる。
こんな感じで、あけおめ・ことよろ系のしょうもない挨拶は省いたもので入力した。
なるべく、自分の印象やエピソードに関連する文言のみを入力するようにした。
##2 データをまとめる
次に、入力したエクセルを一つのデータにまとめる
import xlrd
wb = xlrd.open_workbook('/nenga2020.xlsx')
sheet = wb.sheet_by_name('Sheet1')
col_values = sheet.col_values(0)
text=""
for i in col_values:
text=text+i
print(text)
これで、textに年賀状の文面がすべて入っていることになる。
##3 形態素解析&ワードクラウド作成
とうとうここから形態素解析&ワードクラウドの作成をする。
import MeCab
import wordcloud, codecs
m = MeCab.Tagger("")
text = text.replace('\r', '')
parsed = m.parse(text)
splitted = ' '.join(
[x.split('\t')[0] for x in parsed.splitlines()[:-1] if x.split('\t')[1].split(',')[0] in ["名詞","形容詞","形容動詞"] ])
wordc = wordcloud.WordCloud(font_path='HGRGM.TTC',
background_color='white',
contour_color='steelblue',
contour_width=2).generate(splitted)
wordc.to_file('nenga2020.png')
これで年賀状で書かれた印象について、解決できる。
splitted = ' '.join(
[x.split('\t')[0] for x in parsed.splitlines()[:-1] if x.split('\t')[1].split(',')[0] in ["名詞","形容詞","形容動詞"] ])
のところで、品詞を名詞,形容詞,形容動詞に絞っている。
これは自分の印象の抽出を目的にしているから。
#まとめ
コード全体
import xlrd
import MeCab
import wordcloud, codecs
wb = xlrd.open_workbook('/nenga2020.xlsx')
sheet = wb.sheet_by_name('Sheet1')
col_values = sheet.col_values(0)
text=""
for i in col_values:
text=text+i
m = MeCab.Tagger("")
text = text.replace('\r', '')
parsed = m.parse(text)
splitted = ' '.join(
[x.split('\t')[0] for x in parsed.splitlines()[:-1] if x.split('\t')[1].split(',')[0] in ["名詞","形容詞","形容動詞"] ])
wordc = wordcloud.WordCloud(font_path='HGRGM.TTC',
background_color='white',
contour_color='steelblue',
contour_width=2).generate(splitted)
wordc.to_file('nenga2020.png')
剣道部関連から多くの年賀状をもらったので、関連ワードが多い…
面白いとか有能とか尊敬とかのワードが他人からの自分の印象であると考察される。