您的位置:

Python词频统计代码详解

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中词频统计的应用,希望能够帮助读者初步掌握这一重要技巧。