python3で日本語文章の単語を集計する。

概要

「この文章の中でもっとも出てくる単語はなにか分かりますか??」という自然言語処理をしている人からすると抽象度の高い質問に対してまぁなんとなく適当に答えるというものです。

文字列をカウントする時の手順。

  1. 形態素解析などを用いて文章を単語に分けてます。
  2. 集計します。
  3. 出力します。
  4. 眺めます

実装

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import MeCab as mc
from collections import Counter

# 1.mecabを用いて単語に分けます。
def mecab_analysis(text):
    t = mc.Tagger("-Ochasen")
    t.parse('')
    node = t.parseToNode(text) 
    output = []
    while node:
        if node.surface != "":  # ヘッダとフッタを除外
            word_type = node.feature.split(",")[0]
            if word_type in ["形容詞", "動詞","名詞", "副詞"]:
                output.append(node.surface)
        node = node.next
        if node is None:
            break
    return output

def count_csv():
    text= str(open("ファイル名","r",encoding="utf-8").read())
    words = mecab_analysis(text)
# 2.集計して
    counter = Counter(words)
# 3.出力します
    for word, count in counter.most_common():
        if len(word) > 0:

            print ("%s,%d" % (word, count))

def main():
    count_csv()

if __name__ == '__main__':
   main()

使って改修して!!!

github.com

最後に

まぁ大体の大まかな値を知ることができて楽が出来ます。

参照

スピリットベンチャー宣言 - GMOインターネット株式会社