ホームページ  >  記事  >  バックエンド開発  >  Counterを使用してPythonで単語の頻度を数えて並べ替える方法?

Counterを使用してPythonで単語の頻度を数えて並べ替える方法?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-21 21:37:02466ブラウズ

How to Count and Sort Word Frequencies in Python Using Counter?

リスト内の単語の出現頻度を数えて並べ替える

最近のプロジェクトで、リスト内の単語の出現回数を数えて並べ替える必要があるという問題が発生しました。頻度順に、最も頻繁に出現する単語がリストの先頭に表示されます。解決策の基本的なアイデアはありましたが、それを Python 3.3 で効果的に実装する方法がわかりませんでした。

幸いなことに、Python の collections.Counter クラスは、この問題に対するシンプルで効率的な解決策を提供します。以下に例を示します。

<code class="python">from collections import Counter

# Create a list of words
list1 = ['apple', 'egg', 'apple', 'banana', 'egg', 'apple']

# Use Counter to count word occurrences
counts = Counter(list1)

# Print the counts
print(counts)  # Counter({'apple': 3, 'egg': 2, 'banana': 1})</code>

この例では、Counter は、キーが単語、値がそのカウントである辞書のようなオブジェクトを作成します。 print ステートメントは、一意の各単語のカウントを出力します。

頻度に基づいて単語を並べ替えるには、Counter の most_common() メソッドを使用できます。このメソッドは、各タプルに単語とその数が含まれるタプルのリストを返します。デフォルトでは、リストは頻度の降順で並べ替えられます。つまり、最も頻繁に使用される単語が先頭になります。

単語のリストを並べ替える方法は次のとおりです。

<code class="python"># Sort the words based on frequency
sorted_words = [word for word, count in sorted(counts.most_common(), key=lambda x: x[1], reverse=True)]

# Print the sorted list
print(sorted_words)  # ['apple', 'egg', 'banana']</code>

このコードでは、sorted は、reverse=True 引数を使用して、タプルのリストを 2 番目の要素 (カウント) で降順に並べ替えます。これにより、最も頻繁に使用される単語がsorted_wordsリストの最初に来るようになります。

以上がCounterを使用してPythonで単語の頻度を数えて並べ替える方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。