如何使用Python统计中文语料库中的词频
发布时间:2023-12-22 21:35:14
要使用Python统计中文语料库中的词频,可以按照以下步骤进行操作:
1. 准备语料库:首先需要准备好需要统计词频的中文语料库文件。语料库可以是文本文件(如.txt文件)或者多个文本文件组成的文件夹。
2. 读取语料库:使用Python的文件操作函数,将语料库文件读取到Python程序中。如果是文件夹,需要遍历文件夹下的所有文件,并将每个文件的内容读取到程序中。
import os
def read_corpus(folder_path):
corpus = []
if os.path.isdir(folder_path):
for file_name in os.listdir(folder_path):
with open(os.path.join(folder_path, file_name), 'r', encoding='utf-8') as f:
content = f.read()
corpus.append(content)
return corpus
# 读取语料库文件夹中的所有文件
corpus_folder = 'path/to/corpus_folder'
corpus = read_corpus(corpus_folder)
3. 分词:使用分词工具对每个语料进行分词,将句子切分成一个个词语。常用的中文分词工具有jieba、snownlp等,这里以jieba为例。
import jieba
def tokenize(corpus):
tokenized_corpus = []
for sentence in corpus:
tokens = jieba.cut(sentence)
tokenized_corpus.append(list(tokens))
return tokenized_corpus
# 对语料库进行分词
tokenized_corpus = tokenize(corpus)
4. 统计词频:统计分词后的词语出现的频率。可以使用Python的collections.Counter类来实现。
from collections import Counter
def count_words(tokenized_corpus):
word_counts = Counter()
for tokens in tokenized_corpus:
word_counts.update(tokens)
return word_counts
# 统计词频
word_counts = count_words(tokenized_corpus)
5. 排序和输出:对词频进行排序,并输出结果。
def sort_and_output(word_counts, output_file):
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
with open(output_file, 'w', encoding='utf-8') as f:
for word, count in sorted_word_counts:
f.write(f'{word}\t{count}
')
# 对词频进行排序,并输出结果到文件
output_file = 'path/to/output_file.txt'
sort_and_output(word_counts, output_file)
这样,就可以统计中文语料库中词语的词频,并将结果输出到指定文件中。
以上是一个简单的示例,用于统计中文语料库中的词频。具体的实现可以根据实际需求进行修改和扩展。同时还可以对语料库进行预处理(如去除停用词、进行词性过滤等)来提升词频统计的准确性和可用性。
