在Python中查找字符串中每个单词的频率
作为文本分析的一部分,我们经常需要对单词进行计数并为它们分配权重,以便使用各种算法进行处理,因此在本文中,我们将了解如何找到给定句子中每个单词的出现频率。我们可以使用以下三种方法来做到这一点。
使用计数器
我们可以使用Counter()
from collections模块来获取单词的出现频率。在这里,我们首先应用split()
来从行中生成单词,然后应用most_common()。
示例
from collections import Counterline_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 FreqDisttext = "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}
以上是 在Python中查找字符串中每个单词的频率 的全部内容, 来源链接: utcz.com/z/348877.html