Python で英語文章中の単語を集計する方法をご紹介します。
大まかな流れは次のとおりになるでしょうか。
- 文章を単語に分けて
- 集計して
- 表示する
collectons の Counter というクラスを使うときれいに書くことができます。
# ライブラリの読み込み
import re
from collections import Counter
# 00 テキストの取得
target_text = """
Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Python is often compared to Tcl, Perl, Ruby, Scheme or Java. Some of its key distinguishing features include:
very clear, readable syntax
strong introspection capabilities
intuitive object orientation
natural expression of procedural code
full modularity, supporting hierarchical packages
exception-based error handling
very high level dynamic data types
extensive standard libraries and third party modules for virtually every task
extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)
embeddable within applications as a scripting interface
"""
# 01 文章を単語に分ける
# 複数の区切り文字を指定するため re.split を使う
words = re.split(r'\s|\,|\.|\(|\)', target_text.lower())
# 02 集計する
counter = Counter(words)
# 03 表示する
# Counter#most_common を使って出現頻度の降順に csv 形式で表示する
for word, count in counter.most_common():
if len(word) > 0:
print("%s,%d" % (word, count))
# => csv 形式の単語出現回数
以上です。少し変更して標準入力を受け付けるようにすると、ちょっとした英単語カウンタとして使えます。
参考