たのしい駆動開発

たのしいアウトプットの場所

Juman++を使って形態素解析を行う

Juman++を使って形態素解析を行い、頻出回数順にソートします
ちなみにTwitterjsonを読み込んでます

import json
import re
from glob import glob
from pyknp import Juman


def counter(text, d):
    jumanapp = Juman()
    result = jumanapp.analysis(text)
    for mrph in result.mrph_list():
        if mrph.genkei in d:
            d[mrph.genkei] = d[mrph.genkei] + 1
        else:
            d[mrph.genkei] = 1


filenames = glob('/Users/ssab/go/src/research/twitter/json/*.json')
d = dict()
for i, filename in enumerate(filenames):
    f = open(filename, 'r')
    tweet_text = json.load(f)['full_text']
    text = re.sub(
        r'(https?://[\w/:%#\$&\?\(\)~\.=\+\-]+)|(RT@.*?:)|([ | ])',
        '', tweet_text
    )
    counter(text, d)
    f.close()
print(sorted(d.items(), key=lambda x: x[1], reverse=True))


出力

[('する', 3), ('を', 3), ('に', 2), ('インタフェース', 2), ('若い', 1), ('うち', 1), ('から', 1), ('毎日', 1), ('コツコツ', 1), ('続ける', 1), ('こと', 1), ('で', 1), ('老後', 1), ('2000万', 1), ('円', 1), ('用意', 1), ('ぬ', 1), ('済む', 1), ('ようだ', 1), ('なる', 1), ('ソリューション', 1), ('同じだ', 1), ('メソッド', 1), ('シグネチャ', 1), ('持つ', 1), ('複数', 1), ('の', 1), ('embeded', 1), ('作れる', 1), ('様', 1), ('proposal', 1), ('どま', 1), ('そ', 1), ('は', 1), ('こうして', 1), ('生まれる', 1), ('。', 1)]