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 相关文章推荐
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python下载网络小说实例代码
Feb 03 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
Python selenium实现断言3种方法解析
Sep 08 Python
python 高阶函数简单介绍
Feb 19 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学习之 认清变量的作用范围
2010/01/26 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP多例模式介绍
2013/06/24 PHP
Web程序工作原理详解
2014/12/25 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
js里的prototype使用示例
2010/11/19 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
pytorch中tensor的合并与截取方法
2018/07/26 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python远程连接MySQL数据库
2019/04/19 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
室内设计自我鉴定
2013/10/15 职场文书
社区安全检查制度
2014/02/03 职场文书
党员目标管理责任书
2014/07/25 职场文书
经费申请报告范文
2015/05/18 职场文书
捐书仪式主持词
2015/07/04 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
MySQL 语句执行顺序举例解析
2022/06/05 MySQL
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python