Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列内の各単語の頻度を検索する


テキスト分析の一環として、さまざまなアルゴリズムで処理するために単語を数え、それらに重みを割り当てる必要があることがよくあります。この記事では、特定の文の各単語の頻度を見つける方法を説明します。以下に示すように、3つのアプローチでそれを行うことができます。

カウンターの使用

コレクションモジュールのCounter()を使用して、単語の頻度を取得できます。ここでは、最初にsplit()を適用して行から単語を生成し、次にmost_common()を適用します。

from collections import Counter
line_text = "Learn and practice and learn to practice"
freq = Counter(line_text.split()).most_common()
print(freq)

上記のコードを実行すると、次の結果が得られます-

[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]

FreqDist()の使用

自然言語ツールキットは、文字列内の単語数と個別の単語数を表示するFreqDist関数を提供します。 most_common()を適用すると、各単語の頻度がわかります。

from nltk import FreqDist
text = "Learn and practice and learn to practice"
words = text.split()
fdist1 = FreqDist(words)
print(fdist1)
print(fdist1.most_common())

上記のコードを実行すると、次の結果が得られます-

<FreqDist with 5 samples and 7 outcomes>
[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]

辞書の使用

このアプローチでは、行の単語を辞書に保存します。次に、count()を適用して、各単語の頻度を取得します。次に、単語の頻度の値を使用して単語を圧縮します。最終結果は辞書として表示されます。

text = "Learn and practice and learn to practice"
words = []
words = text.split()
wfreq=[words.count(w) for w in words]
print(dict(zip(words,wfreq)))

上記のコードを実行すると、次の結果が得られます。

{'Learn': 1, 'and': 2, 'practice': 2, 'learn': 1, 'to': 1}

  1. アナグラム単語の最大のサブセットのサイズを見つけるPythonプログラム

    小文字の配列が与えられます。私たちのタスクは、互いのアナグラムである文字列の最大のサブセットのサイズを見つけることです。文字列のアナグラムは、2番目の文字列が最初の文字列の単なる再配置である場合、1つの文字列が別の文字列のアナグラムであることを意味します。ここでは、Counter()メソッドを使用してPythonでこの問題をすばやく解決できます。 たとえば、文字列「python」と「typhon」はアナグラムです。 アルゴリズム Step 1: Split input string separated by space into words. Step 2: Sort each string

  2. Pythonで文字列の最初に繰り返される単語を見つけますか?

    1つの文字列が与えられます。私たちのタスクは、与えられた文字列の最初に繰り返される単語を見つけることです。この問題を実装するために、Pythonコレクションを使用しています。コレクションから、Counter()メソッドを取得できます。 アルゴリズム Repeatedword(n) /* n is the string */ Step 1: first split given string separated by space into words. Step 2: now convert the list of words into a dictionary. Step 3: travers