Pythonで文字列リストから最も頻出する単語を抽出する方法
はじめに
文字列のリストの中で最も頻繁に出現する単語を見つけたいケースはよくあります。そのような場合、リストを反復処理しながら各単語の出現回数をカウントし、「max」メソッドを使って最も出現回数の多い単語を取得するのが一般的なアプローチです。
実装例
以下に具体的なコード例を示します。
from collections import defaultdict
my_list = ["python is best for coders", "python is fun", "python is easy to learn"]
print("The list is :")
print(my_list)
my_temp = defaultdict(int)
for sub in my_list:
for word in sub.split():
my_temp[word] += 1
result = max(my_temp, key=my_temp.get)
print("The word that has the maximum frequency :")
print(result)出力結果
The list is : ['python is best for coders', 'python is fun', 'python is easy to learn'] The word that has the maximum frequency : python
コードの解説
必要なパッケージ(collectionsモジュールのdefaultdict)を環境にインポートします。
文字列のリストを定義し、コンソールに表示します。
整数値を格納するためのdefaultdictを作成し、変数に代入します。存在しないキーにアクセスしても自動的に0で初期化されるため、カウント処理がシンプルになります。
リスト内の各文字列を反復処理し、split()メソッドでスペース区切りに分割します。
各単語の出現回数をカウントして辞書に記録していきます。
max()メソッドのkey引数にmy_temp.getを指定することで、出現回数が最大となる単語を取得します。
取得した結果を変数に代入します。
結果をコンソールに出力として表示します。
Counterを使った別の方法
Pythonの標準ライブラリにはcollections.Counterという便利なクラスがあり、より簡潔に同じ処理を実現できます。
from collections import Counter
my_list = ["python is best for coders", "python is fun", "python is easy to learn"]
words = []
for sub in my_list:
words.extend(sub.split())
counter = Counter(words)
result = counter.most_common(1)[0][0]
print(result) # pythonCounterクラスのmost_common()メソッドを使えば、出現頻度順にソートされた結果を簡単に取得できます。用途に応じてdefaultdictとCounterを使い分けるとよいでしょう。
-
Pythonでクイックソートを実装する方法|初心者向けにサンプルコードを徹底解説
この記事では、クイックソート(QuickSort)のアルゴリズムを使って配列を並べ替えるPythonプログラムの実装方法を、初心者にもわかりやすく解説します。 問題の定義 問題: 与えられた配列を、クイックソートの考え方を利用して昇順にソートすることです。 クイックソートは「分割統治法」と呼ばれる手法に基づく高速なソートアルゴリズムです。まず配列を基準値(ピボット)を境目に2つの部分に分割し、それぞれの部分配列を再帰的にソートしていくことで、最終的に全体が整列された配列を得られます。 クイックソートの仕組み 処理の流れは以下のとおりです。 配列からピボット(基準となる要素)を選びます。こ
-
文中の各単語を逆順に並べ替えるPythonプログラムの書き方
この記事では、Pythonの組み込み関数を使って、文の中の各単語を逆順にする方法を解説します。処理の流れはシンプルで、まず文を単語のリストに分割し、次に各単語を反転させて新しいリストを作成し(ここではリスト内包表記を活用)、最後にそのリストを結合して新しい文を生成します。 実行例 入力 :: PYTHON PROGRAM 出力 :: NOHTYP MARGORP アルゴリズム ステップ1 : 文を入力し、変数 s に格納する。 ステップ2 : 文を単語のリストに分割する。 w = s.split( ) ステップ3 : 各単語を反転させ、新しい単語リスト nw を作成する。 ステップ