您的位置:

Python中文词频统计

介绍

在文本处理中,词频统计是一个重要而常见的任务,可以用于文本分类、数据挖掘等应用。而Python作为一门广泛应用于文本处理的语言,其丰富的开源库和工具使得中文文本处理变得更加简单而高效。

Python中文词频统计

最常见的Python中文词频统计方法是使用Python自带的collections模块中的Counter类。这个类可以把一个可迭代对象的元素作为字典的键,出现次数作为值。所以,只需要把中文文本转化为列表或迭代器,就可以使用Counter类进行词频统计了。


from collections import Counter

text = "今天天气真好,适合出门散步。你出去玩了吗?"
split_words = text.split(" ")  # 按空格分词
counts = Counter(split_words)
print(counts)

运行结果:

Counter({'今天天气真好,适合出门散步。你出去玩了吗?': 1})

正如运行结果所示,因为没有针对中文进行分词处理,使得整个文本成为了列表中的一个元素。因此,需要进行分词处理,而jieba是中文分词的强大工具,可以将中文文本转换成分好词的列表。

import jieba

text = "今天天气真好,适合出门散步。你出去玩了吗?"
split_words = jieba.lcut(text)  # 使用jieba进行分词
counts = Counter(split_words)
print(counts)

运行结果:

Counter({',': 1, '你': 1, '适合': 1, '了': 1, '玩': 1, '今天天气': 1, '出门': 1, '。': 1, '真好': 1, '出去': 1, '散步': 1, '吗': 1})

这样,就得到了一个将中文文本拆分成分好词的列表,并使用Counter进行词频统计的方法。

中文词频统计的在线工具

除了在Python中进行编程,也可以使用在线的中文词频统计工具。

目前较为出名的在线中文文本词频统计工具是“中文词频统计器”,它不仅可以统计中文文本中每个词的出现次数,还可以对词性进行分析,提供简易的云图展示等功能。输入待分析的中文文本,点击“开始分析”即可自动进行词频统计并分析各个词的词性以及平均出现频率。

excel中文词频统计

在使用excel进行中文文本处理时,可以使用excel的内置函数COUNTIF和MATCH进行词频统计。

COUNTIF函数可用于计算出现次数。例如,对于单元格A1中的文字“理想”,我们可以使用以下公式计算“理想”在介绍中出现的次数:

=COUNTIF(A1,"*理想*")

而MATCH函数可以用于检查一个值是否出现在一个数组或者范围中,可以统计一个单词在文本中出现的次数。例如,对于单元格A1中的文字“理想”,我们可以使用以下公式计算“理想”在介绍中出现的次数:

=SUM(IF(ISERROR(MATCH("理想",A1:A10)),0,1))

中文文本词频统计

中文文本的词频统计需要注意中英文混合的情况,可以使用jieba库中的功能进行分词,同时注意去除停用词和标点符号。

在以下代码示例中,我们使用jieba分词器进行中文分词,并去掉停用词和符号后,对一篇小说进行词频统计:

import jieba
from collections import Counter

# 停用词文件路径
stopwords_path = "stopwords.txt"

def remove_stopwords(file_path):
    stopwords = set()
    with open(stopwords_path, "r", encoding="utf-8") as f:
        for line in f.readlines():
            stopwords.add(line.strip())
    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read()
        words = jieba.lcut(content)
        new_words = []
        for word in words:
            if word not in stopwords and word != " " and len(word) > 1:
                new_words.append(word)
        return new_words
        
      
if __name__ == "__main__":
    file_path = "novel.txt"
    words = remove_stopwords(file_path)
    word_count = Counter(words)
    for word, count in word_count.most_common(10):
        print(word, count)

除了jieba之外,还有其他中文分词工具,如THULAC、Stanford NLP等。

头歌中文词频统计

头歌中文词频统计工具是一个在线的中文分词和词频统计工具,可以自动分词并统计每个词的出现次数。

使用头歌中文词频统计工具非常简单,只需要将待分析的中文文本黏贴到工具的文本框中,点击“开始分析”即可。

小结

本文介绍了Python中文词频统计的基本方法,包括使用Python自带的collections模块、jieba中文分词、excel中的COUNTIF和MATCH、在线中文文本词频统计工具、头歌中文词频统计等。

使用这些方法,可以快速高效地进行中文文本的词频统计和分析。