Python是一门广受欢迎的编程语言,其强大的文本处理能力尤其受到广大学习者和开发者的青睐,词频统计就是Python常用的一种文本处理方法。在本文中,我们将从多个方面详细阐述Python中的词频统计代码,帮助读者初步掌握这一技巧。
一、英文歌Hello词频统计Python代码
我们先从一个简单的例子开始,演示如何使用Python进行英文歌的词频统计。下面是代码示例:
text = "Hello from the other side, I must've called a thousand times" words = text.split() freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
运行以上代码,会输出一个字典,包含每个英文单词出现的次数。代码中,我们首先将文本字符串text按空格分割成单词,然后遍历每个单词,统计出现次数,存入freq字典中。
二、红楼梦词频统计Python代码
接下来,我们来看一下如何使用Python进行中文文本的词频统计,以《红楼梦》为例。转载的《红楼梦》文字可以通过Git命令获取,当前目录下就会有一个红楼梦txt的文件,接下来就是代码部分:
with open('hongloumeng.txt', 'r', encoding='utf-8') as file: text = file.read().replace('\n', '') words = list(jieba.cut(text)) words = filter(lambda x: len(x)>1, words) freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代码解释:
首先,我们使用Python内置函数open()打开《红楼梦》txt文件,然后使用read()方法读取文本内容并使用replace()方法将换行符替换为空格。接着,我们使用jieba库进行中文分词,筛选出长度大于1的词语,最后进行词频统计。
三、词频统计Python代码不区分大小写
在进行词频统计时,有时候需要忽略单词的大小写,例如“Hello”和“hello”被认为是同一个单词。下面是不区分大小写的词频统计Python代码示例:
text = "To be, or not to be, that is the question" words = text.lower().split() freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
在代码中,我们使用lower()方法将文本字符串转换为小写,并按空格分割成单词。然后按照前文的方法进行遍历统计,统计完后输出频率字典。
四、词频统计Python代码jieba
我们前面已经用到了jieba,这里介绍一下jieba库的基本用法:
import jieba text = "我喜欢Python编程" words = list(jieba.cut(text)) print(words)
代码解释:
首先,我们导入jieba库。然后,我们定义一个文本字符串text,对其进行中文分词并生成词语列表words,最后输出列表。
五、词频统计Python代码导入表格
有时候,我们需要直接将词频统计结果导出到表格中,下面是一个示例,展示了如何使用Python进行表格导入:
import pandas as pd freq = {'Python': 3, '编程': 2, '很棒': 1} df = pd.DataFrame.from_dict(freq, orient='index', columns=['Frequency']) df.index.name = 'Word' df.to_csv('freq.csv')
代码解释:
首先,我们导入pandas库。然后,我们使用Python内置函数from_dict()将频率字典转换为DataFrame格式,并设置列名和索引名。最后,我们使用to_csv()函数将DataFrame对象导出为csv文件。
六、词频统计Python代码意义背景
除了基本的词频统计,我们还可以在统计时考虑每个单词的意义和背景。例如,某些单词出现在特定场景中时,它们的含义可能会有所不同。下面是一个示例:
import nltk text = "I saw a saw." tokens = nltk.word_tokenize(text) tags = nltk.pos_tag(tokens) freq = {} for word, tag in tags: if tag[0] == 'V': if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代码解释:
我们导入nltk库进行英文分词和词性标注,对文本字符串text进行分词,标注后最终输出包含动词的词频字典。
七、词频统计Python代码多个文件
有时候,我们需要统计多个文本文件中的词频,下面是一个示例:
import glob files = glob.glob('*.txt') freq = {} for file in files: with open(file, 'r') as f: text = f.read().lower() words = text.split() for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代码解释:
首先,我们使用Python模块glob匹配当前目录下所有的txt文件。然后,我们使用Python内置函数open()打开每个txt文件,按照前文的方法进行词频统计,并在词频字典freq中累加出现次数。
八、词频图Python代码
最后,我们将展示如何使用Python绘制词频图。我们会使用Matplotlib库,代码示例:
import matplotlib.pyplot as plt freq = {'Python': 3, '编程': 2, '很棒': 1} plt.bar(range(len(freq)), list(freq.values()), align='center') plt.xticks(range(len(freq)), list(freq.keys())) plt.show()
代码解释:
我们导入Matplotlib库,并定义一个频率字典freq。然后,我们使用plt.bar()函数绘制竖状条形图,使用plt.xticks()函数设置x轴标签。最后,我们通过调用plt.show()函数显示图形。
九、三国演义词频统计Python
最后,让我们以著名的《三国演义》作为示例,展示如何进行中文文本的词频统计:
import jieba with open('san_guo_yan_yi.txt', 'r', encoding='utf-8') as f: text = f.read() words = list(jieba.cut(text)) freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq)
代码解释:
与前面的《红楼梦》示例类似,代码中我们也使用jieba库进行中文分词,并进行遍历统计。
总结
Python是一门非常灵活的编程语言,词频统计是其广泛应用的一种文本处理方法。本文从多个方面介绍了Python中词频统计的应用,希望能够帮助读者初步掌握这一重要技巧。