Skip to content
This page has been auto-translated and may contain errors.View in English

title: 単語頻度分析ツール description: テキストブロックを読み込み、最も一般的な単語をレポートします。

単語頻度分析ツール

ミラ こんにちは。ミッションログから情報を抽出する仕事を任されているのですが、ログが何百もあるんです。テキストファイルを読み込んで、各単語の出現回数をカウントし、上位の結果を表示するものが必要です。すべてを手動で読まずに、どのトピックが繰り返し出てくるのか知りたいんです。

作成するもの

テキストを入力するか、読み込むファイル名を入力してください: sample.txt

頻出単語トップ10:
  the       42
  and       31
  python    18
  is        16
  you       14
  ...

必要な知識

  • 文字列 - テキストを単語に分割し、句読点を削除し、小文字に変換する
  • 辞書 - 各単語が何回出現したかをカウントする
  • リスト - 上位の結果をソートしてスライスする
  • ファイルと例外 - テキストファイルから読み込む
  • ラムダ、内包表記、zip - リスト内包表記と key を用いた sorted() が役立ちます

ヒント

カウント前に正規化する。 すべてを小文字にし、カウントを構築する前に句読点を削除します。そうしないと、「Python」と「python」と「Python,」がすべて異なる単語としてカウントされます。

辞書がカウントを行う。 単語をループします。単語がすでにキーの場合は、そのカウントをインクリメントします。そうでない場合は、カウント1で追加します。デフォルト値を持つ .get() を使うと、きれいに書けます。

辞書を値でソートする。 sorted()key= 引数を受け取ります。各キーの値を返すラムダを渡して、頻度でソートします。

さらに進む

コア分析が機能したら:

  • ストップワード。 「the」、「and」、「is」などの一般的な単語を無視します。ストップワードのセットを定義し、それに含まれる単語をスキップします。
  • 設定可能なトップN。 常に10を表示する代わりに、ユーザーが表示する結果の数を指定できるようにします。
  • ビジュアル出力。 各単語の横に、そのカウントに比例した繰り返し文字で作られたバーを印刷します。シンプルなバージョンでも、出力がより読みやすくなります。