一篇文章带你使用 jieba 提取文章的关键词

文章目录

    • 一、我的需求
    • 二、代码
      • 1. 将最后一列提取到文档中
      • 2. 利用 jieba 提取关键词

一、我的需求

想要在这样的一个文档里,根据最后一列内容,提取出最后一列所有内容的关键词

一篇文章带你使用 jieba 提取文章的关键词_第1张图片
由于没怎么用过 jieba,不知道对这个文档直接操作该怎么操作(有知道的小伙伴可以告诉下怎么操作,感谢

所以考虑先将最后一列的内容提取到一个文档里,然后再对这个文档使用 jieba 提取关键词

二、代码

1. 将最后一列提取到文档中

# 数据预处理,对原始数据进行处理,加特征,改标签
import pandas as pd

# 读取数据的函数
def load_data(filename, nameList):
    data = pd.read_table(filename, names=nameList, sep='\t', encoding='utf8', header=None)
    return data

# 获取热度值满足条件的内容
def get_data_content(data):
    # 对 ccs,fcs,lcs 进行整合成热度值特征
    data['hot'] = data['ccs'] + data['fcs'] + data['lcs']
    # 提取出 hot 大于25的微博内容
    data = data[data['hot'] > 25]

    return data


if __name__ == '__main__':
    # 读取数据
    file_path = "weibo_train_data.txt"
    # 定义一些列的展示
    nameList = ['uid', 'mid', 'time', 'fcs', 'ccs', 'lcs', 'cont']
    # 调用函数进行读取数据,并且对数据进行清洗
    data = load_data(file_path, nameList)
    data = get_data_content(data)
    # 保留剩余的所有内容
    data.to_csv("weibo_data.txt")
    # 只保留内容
    data = data.drop(['uid', 'mid', 'time', 'css', 'fcs', 'lcs', 'hot'], axis=1)
    data.to_csv("weibo_cont_data.txt", sep='\t', index=False)

2. 利用 jieba 提取关键词

基于 TF-IDF(term frequency–inverse document frequency) 算法的关键词抽取

import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

sentence :为待提取的文本
topK: 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
withWeight : 为是否一并返回关键词权重值,默认值为 False
allowPOS : 仅包括指定词性的词,默认值为空,即不筛选

# 提取关键词
import jieba.analyse

# 读取数据
filename = "weibo_cont_data.txt"
data = open(filename, 'rt', encoding='utf-8').read()
keywords =jieba.analyse.extract_tags(data, topK=20, withWeight=True, allowPOS=())
print(keywords)

其他可参考:https://blog.csdn.net/bozhanggu2239/article/details/80157305

你可能感兴趣的:(Python,深度学习,python,机器学习,大数据,数据分析,jieba)