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 Tkinter基础控件用法
Sep 03 Python
学习python 之编写简单乘法运算题
Feb 27 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python用plt画图时,cmp设置方法
Dec 13 Python
python pandas模块基础学习详解
Jul 03 Python
django如何实现视图重定向
Jul 24 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
python 画条形图(柱状图)实例
Apr 24 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
详解python datetime模块
Aug 17 Python
Python函数调用追踪实现代码
Nov 27 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开发中常用的字符串操作函数
2011/02/08 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
javascript回车完美实现tab切换功能
2014/03/13 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
详解Python中where()函数的用法
2018/03/27 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Django模板语言 Tags使用详解
2019/09/09 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
考试违纪检讨书
2014/02/02 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
施工安全责任书
2014/04/14 职场文书
残疾人小组计划书
2014/04/27 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
公司证明怎么写
2014/09/22 职场文书
小学毕业感言100字
2015/07/30 职场文书
关于军训的感想
2015/08/07 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python