Python3 文章标题关键字提取的例子


Posted in Python onAugust 26, 2019

思路:

1.读取所有文章标题;

2.用“结巴分词”的工具包进行文章标题的词语分割;

3.用“sklearn”的工具包计算Tf-idf(词频-逆文档率);

4.得到满足关键词权重阈值的词

结巴分词详见:结巴分词Github

sklearn详见:文本特征提取——4.2.3.4 Tf-idf项加权

import os
import jieba
import sys
from sklearn.feature_extraction.text import TfidfVectorizer
 
 
sys.path.append("../")
jieba.load_userdict('userdictTest.txt')
STOP_WORDS = set((
  "基于", "面向", "研究", "系统", "设计", "综述", "应用", "进展", "技术", "框架", "txt"
 ))
 
def getFileList(path):
 filelist = []
 files = os.listdir(path)
 for f in files:
  if f[0] == '.':
   pass
  else:
   filelist.append(f)
 return filelist, path
 
def fenci(filename, path, segPath):
 
 # 保存分词结果的文件夹
 if not os.path.exists(segPath):
  os.mkdir(segPath)
 seg_list = jieba.cut(filename)
 result = []
 for seg in seg_list:
  seg = ''.join(seg.split())
  if len(seg.strip()) >= 2 and seg.lower() not in STOP_WORDS:
   result.append(seg)
 
 # 将分词后的结果用空格隔开,保存至本地
 f = open(segPath + "/" + filename + "-seg.txt", "w+")
 f.write(' '.join(result))
 f.close()
 
def Tfidf(filelist, sFilePath, path, tfidfw):
 corpus = []
 for ff in filelist:
  fname = path + ff
  f = open(fname + "-seg.txt", 'r+')
  content = f.read()
  f.close()
  corpus.append(content)
 
 vectorizer = TfidfVectorizer() # 该类实现词向量化和Tf-idf权重计算
 tfidf = vectorizer.fit_transform(corpus)
 word = vectorizer.get_feature_names()
 weight = tfidf.toarray()
 
 if not os.path.exists(sFilePath):
  os.mkdir(sFilePath)
 
 for i in range(len(weight)):
  print('----------writing all the tf-idf in the ', i, 'file into ', sFilePath + '/', i, ".txt----------")
  f = open(sFilePath + "/" + str(i) + ".txt", 'w+')
  result = {}
  for j in range(len(word)):
   if weight[i][j] >= tfidfw:
    result[word[j]] = weight[i][j]
  resultsort = sorted(result.items(), key=lambda item: item[1], reverse=True)
  for z in range(len(resultsort)):
   f.write(resultsort[z][0] + " " + str(resultsort[z][1]) + '\r\n')
   print(resultsort[z][0] + " " + str(resultsort[z][1]))
  f.close()

TfidfVectorizer( ) 类 实现了词向量化和Tf-idf权重的计算

词向量化:vectorizer.fit_transform是将corpus中保存的切分后的单词转为词频矩阵,其过程为先将所有标题切分的单词形成feature特征和列索引,并在dictionary中保存了{‘特征':索引,……},如{‘农业':0,‘大数据':1,……},在csc_matric中为每个标题保存了 (标题下标,特征索引) 词频tf……,然后对dictionary中的单词进行排序重新编号,并对应更改csc_matric中的特征索引,以便形成一个特征向量词频矩阵,接着计算每个feature的idf权重,其计算公式为 Python3 文章标题关键字提取的例子 其中是所有文档数量,是包含该单词的文档数。最后计算tf*idf并进行正则化,得到关键词权重。

以下面六个文章标题为例进行关键词提取

Python3 文章标题关键字提取的例子

Using jieba on 农业大数据研究与应用进展综述.txt

Using jieba on 基于Hadoop的分布式并行增量爬虫技术研究.txt

Using jieba on 基于RPA的财务共享服务中心账表核对流程优化.txt

Using jieba on 基于大数据的特征趋势统计系统设计.txt

Using jieba on 网络大数据平台异常风险监测系统设计.txt

Using jieba on 面向数据中心的多源异构数据统一访问框架.txt

----------writing all the tf-idf in the 0 file into ./keywords/ 0 .txt----------

农业 0.773262366783

大数据 0.634086202434

----------writing all the tf-idf in the 1 file into ./keywords/ 1 .txt----------

hadoop 0.5

分布式 0.5

并行增量 0.5

爬虫 0.5

----------writing all the tf-idf in the 2 file into ./keywords/ 2 .txt----------

rpa 0.408248290464

优化 0.408248290464

服务中心 0.408248290464

流程 0.408248290464

财务共享 0.408248290464

账表核对 0.408248290464

----------writing all the tf-idf in the 3 file into ./keywords/ 3 .txt----------

特征 0.521823488025

统计 0.521823488025

趋势 0.521823488025

大数据 0.427902724969

----------writing all the tf-idf in the 4 file into ./keywords/ 4 .txt----------

大数据平台 0.4472135955

异常 0.4472135955

监测 0.4472135955

网络 0.4472135955

风险 0.4472135955

----------writing all the tf-idf in the 5 file into ./keywords/ 5 .txt----------

多源异构数据 0.57735026919

数据中心 0.57735026919

统一访问 0.57735026919

以上这篇Python3 文章标题关键字提取的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
python通过zlib实现压缩与解压字符串的方法
Nov 19 Python
初步理解Python进程的信号通讯
Apr 09 Python
python处理图片之PIL模块简单使用方法
May 11 Python
python计算一个序列的平均值的方法
Jul 11 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
python中的反斜杠问题深入讲解
Aug 12 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python sorted对list和dict排序
Jun 09 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
python实现的爬取电影下载链接功能示例
Aug 26 #Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 #Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 #Python
Golang GBK转UTF-8的例子
Aug 26 #Python
利用python实现周期财务统计可视化
Aug 25 #Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 #Python
numpy求平均值的维度设定的例子
Aug 24 #Python
You might like
php中函数前加&符号的作用分解
2014/07/08 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Python性能优化技巧
2015/03/09 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python 深度学习中的4种激活函数
2020/09/18 Python
英国家用电器购物网站:Hughes
2018/02/23 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
《画家乡》教学反思
2014/04/22 职场文书
参赛口号
2014/06/16 职场文书
公司授权委托书样本
2014/09/15 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
李强感恩观后感
2015/06/17 职场文书
单位证明范文
2015/06/18 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL