如何使用Python提取中文关键词
发布时间:2024-01-08 07:36:00
使用Python提取中文关键词可以使用Jieba库。Jieba是一个中文分词库,可以将一段中文文本分割成词语。下面是使用Jieba提取中文关键词的步骤及示例代码:
1. 安装Jieba库:
pip install jieba
2. 导入Jieba库:
import jieba
3. 加载自定义词典(可选):
jieba.load_userdict('custom_dict.txt')
自定义词典可以包含专业术语、人名、地名等词汇,以提高分词的准确性。
4. 分词:
sentence = "我喜欢使用Python编程" words = jieba.cut(sentence)
jieba.cut函数将句子分成词语,并返回一个可迭代的生成器。
5. 过滤停用词(可选):
stopwords = ['的', '我', '使用', '编程'] keywords = [word for word in words if word not in stopwords]
停用词是一些常见的无实际意义的词语,如介词、连词等。可以根据需要自定义一个停用词列表,并根据列表过滤掉无用的词语。
6. 统计词频:
word_freq = {}
for word in keywords:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
遍历分词结果,使用字典记录每个词语出现的次数。
7. 根据词频排序:
sorted_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
使用sorted函数将词频字典按值(词频)进行排序,从高到低。
8. 提取关键词:
top_n = 5 # 提取前5个关键词 keywords = [word for word, freq in sorted_words[:top_n]]
根据需要提取前n个关键词。
完整代码示例:
import jieba
# 加载自定义词典
jieba.load_userdict('custom_dict.txt')
# 分词
sentence = "我喜欢使用Python编程"
words = jieba.cut(sentence)
# 过滤停用词
stopwords = ['的', '我', '使用', '编程']
keywords = [word for word in words if word not in stopwords]
# 统计词频
word_freq = {}
for word in keywords:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
# 根据词频排序
sorted_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
# 提取关键词
top_n = 5 # 提取前5个关键词
keywords = [word for word, freq in sorted_words[:top_n]]
print(keywords)
以上就是使用Python提取中文关键词的步骤和示例代码。根据实际需求可以自定义词典和停用词列表,优化关键词提取的准确性。
