赞
踩
想要在这样的一个文档里,根据最后一列内容,提取出最后一列所有内容的关键词
由于没怎么用过 jieba
,不知道对这个文档直接操作该怎么操作(有知道的小伙伴可以告诉下怎么操作,感谢)
所以考虑先将最后一列的内容提取到一个文档里,然后再对这个文档使用 jieba 提取关键词
# 数据预处理,对原始数据进行处理,加特征,改标签 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)
基于 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。