欢迎访问宙启技术站
智能推送

如何使用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提取中文关键词的步骤和示例代码。根据实际需求可以自定义词典和停用词列表,优化关键词提取的准确性。