热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python英文关键词提取_如何提取文章的关键词(Python版)

项目需求:我们采集来的文章没有关键词,在发布的时候无法设定标签,我们通过代码自动提取出文章的关键词,达到对数据加工的目的。

项目需求:

我们采集来的文章没有关键词,在发布的时候无法设定标签,我们通过代码自动提取出文章的关键词,达到对数据加工的目的。

测试环境:

Anaconda Python3.5

Win7 ultmate(英文版)

Excel 2013英文版本

用一百篇文章来测试。

一、使用snownlp(https://github.com/isnowfy/snownlp)

代码如下:

import xlrd

from snownlp import SnowNLP

data = xlrd.open_workbook("article.xlsx")

table = data.sheets()[0]

nrows = table.nrows #行数

ncols = table.ncols #列数

for i in range(0,nrows):

rowValues= table.row_values(i) #某一行数据

for item in rowValues:

# print(item)

s = SnowNLP(item)

print(s.keywords(3))

执行结果:

['不', '棋子', '梦']

['姑娘', '说', '达']

['很', '不', '会']

['很', '不', '会']

['很', '不', '会']

['生日', '快乐', '走']

['不', '发现', '一个']

['爱', '不', '笨']

['事', '每次', '都']

['...', '天气', '):']

['不', '最', '人']

['会', '特', '还']

['吵', '不', '背']

['吵', '不', '背']

['不', '.', '进来']

['男孩', '1', '信']

['不', '上', '生活']

['英语', '说', '坐']

['不', '去', '没']

['不', '朋友', '已']

['幸福', '掉', '最']

['不', '想', '陪']

['没', '说', '真']

['哥哥', '很', '妈妈']

['会', '不', '很']

['不', '很', '都']

['不', '好', '都']

['很', '不', '却']

['不', '确实', '去']

['不', '都', '很']

['不', '说', '一个']

['家庭', '不', '生活']

['不', '会', '想']

['哭', '永远', '好']

['不', '会', '一个']

['不', '人', '爱']

['现实', '相处', '游戏']

['告诉', '不', '都']

['很', '一个', '说']

['告诉', '小', '幸福']

['很', '公', '带']

['不', '帮', '哥哥']

['不', '难', '爱']

['不', '分手', '后']

['不', '都', '没']

['玩', '不', '记得']

['去', '事情', '更']

['会', '不', '很']

['很', '竟然', '不']

['说', '上', '信息']

['不', '家里', '说']

['不', '都', '再']

['不', '工作', '感觉']

['不', '工作', '感觉']

['会', '次', '好']

['公主', '王子', '一个']

['感谢', '人生', '年']

['感谢', '人生', '年']

['好', '……', '嗎']

['一个', '好', '很']

['人', '死', '女人']

['人', '不', '朋友']

['想', '都', '不']

['不', '想', '分开']

['真的', '爱', '很']

['旳', '尓', '不']

['说', '座', '不']

['说', '不', '朋友']

['最', '年', '疼爱']

['记得', 'cc', '别怪']

['不', '很', '想']

['不', '妈', '回']

['不', '人', '都']

['不', '寒', '会']

['不', '想', '出轨']

['很', 'A', '好']

['还', '都', '理由']

['想', '偷偷', '还']

['很', '哥哥', '大']

['不', '人', '公']

['不', '子', '会']

['朋友', '很', '去']

['年', '不', '责怪']

['不', '聊', '还']

['学校', '正好', '都']

['会', '不', '好']

['说', '很', '不']

['不', '会', '没']

['人', '不', '生活']

['不', '我怕', '依然']

['不', '我怕', '依然']

['玩', '不', '55555555555555555

['姑娘', '不', '却']

['种', '一个', '想法']

['朋友', 'Y', '..']

['会', '永远', '不']

['说', '真的', '很']

['不', '还', '真']

['吃', '去', '人']

['不', '谈', '发现']

可以看到,这个出现了很多的单个词,效果并不是很好。

二、使用jieba

利用pip安装jieba,可能网速的问题,没有安装上,后来使用本地安装的方法,终于装上了。

Snap58.jpg

代码如下:

# -*- coding: utf-8 -*-

import xlrd

from jieba import analyse

data = xlrd.open_workbook("article.xlsx")

table = data.sheets()[0]

nrows = table.nrows #行数

ncols = table.ncols #列数

for i in range(0,nrows):

rowValues= table.row_values(i) #某一行数据

for item in rowValues:

# print(item)

tfidf = analyse.extract_tags

keywords = tfidf(item)

#for keyword in keywords:

print (keywords[:3])

执行结果:

['亲情', '棋子', '快乐']

['爱过', '姑娘', '他会']

['但会', '喜欢', '我们']

['但会', '喜欢', '我们']

['但会', '喜欢', '我们']

['生日快乐', '生日', '以为']

['其它', '她们', '我动']

['mdash', '多么', '牵起']

['每次', '女朋友', '似乎']

['...', '那个', '天气']

['最深', '依赖', '看清']

['走进', '一起', '还会']

['爱情', '因为', '争吵']

['爱情', '因为', '争吵']

['围城', '那么', '冲满']

['男孩', '异地', '......']

['可是', '可以', '因为']

['英语', '作业', '初二']

['因为', '可是', '扣扣']

['朋友', '珍惜', '放手']

['删掉', '幸福', '想要']

['一直', '这样', '不去']

['喜欢', '没说', '嘻嘻']

['哥哥', '妈妈', '越来越']

['可以', '默默', '真的']

['男朋友', '上班', '光棍节']

['有没有', '认真听讲', '__']

['狠狠', '抱住', '伤害']

['自己', '爸妈', '确实']

['我们', '这样', '可以']

['亲爱', '放弃', '早就']

['真的', '从小', '路上']

['等待', '见到', '然不']

['你们', '永远', '我视']

['内个', '表达', '六班']

['喜欢', '爱情', '一帆风顺']

['杨棋文', '放不下', '现实']

['媳妇', '起码', '告诉']

['胖胖的', '害怕', '放学']

['为什么', '灰灰', '卡是']

['结婚', '母亲', '老公']

['为什么', '晴子', '暗恋']

['那么', '想见', '放手']

['男生', '分手', '知道']

['无缘', '发现', '或许']

['一起', '记得', '喜欢']

['学会', '真的', '事情']

['不会', '但是', '确说']

['竟然', '出轨', '真的']

['信息', '宝宝', '手机']

['打工', '你家', '不了']

['心死', '野合', '健健康康']

['自己', '感觉', '工作']

['自己', '感觉', '工作']

['真的', '打扰', '见面']

['公主', '王子', '分手']

['感谢', '2011', '感言']

['感谢', '2011', '感言']

['覺得', '身邊', '離開']

['偷偷地', '三班', '表白']

['出轨', '昨晚', '名字']

['一個', '還是', '結果']

['很想', '自己', '想要']

['为什么', '不是', '分开']

['真的', '徐靖', '我爱你']

['认识', '因为', '宝贝']

['我爱你', '为何', '坦白说']

['成绩', '开心', '朋友']

['疼爱', '两年', '相爱']

['记得', '别怪', '扣扣']

['其实', '某人', '呵呵']

['爸妈', '玩电脑', '干活']

['出轨', '放不下', '老公']

['好久不见', '带著', '需说']

['出轨', '老公', '可是']

['同桌', '我们', '有时候']

['出轨', '分居', '不知悔改']

['偷偷', '见到', '几面']

['哥哥', '见到', '那年']

['侮辱', '出轨', '那种']

['喜欢', '豆子', '炒豆']

['篮球队', '朋友', '说实']

['16', '责怪', '一点多']

['是不是', '联系', '心里']

['学校', '正好', '我们']

['再也不会', '知道', '委屈']

['很烦', '分手', '一起']

['我错', '不想', '分手']

['有的是', '生活', '潇洒风流']

['我怕', '真的', '对方']

['我怕', '真的', '对方']

['陪我玩', '玩电脑', '...........

['姑娘', 'qq', '哥哥']

['默默', '一切', '说出']

['..', '朋友', '一天']

['喜欢', '永远', '白杰']

['说真的', '真的', '知道']

['阿亲', '事来', 'fuck']

['毛坤', '沙县', '九点']

['自己', '因为', '家人']

可见,jieba完胜了snownlp。

另外,jieba提取关键词有两种不同的算法,TF-IDF和TextRank,因为我不要求高精度,没有再测试了,有兴趣的朋友可以自己测试。基于TextRank算法的代码如下:

from jieba import analyse

# 引入TextRank关键词抽取接口

textrank = analyse.textrank

# 原始文本

text = "线程是程序执行时的最小单位,它是进程的一个执行流,\

是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,\

线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。\

线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。\

同样多线程也可以实现并发操作,每个请求分配一个线程来处理。"

print "\nkeywords by textrank:"

# 基于TextRank算法进行关键词抽取

keywords = textrank(text)

# 输出抽取出的关键词

for keyword in keywords:

print keyword + "/",

原载:蜗牛博客

网址:http://www.snailtoday.com

尊重版权,转载时务必以链接形式注明作者和原始出处及本声明。



推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
    本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍如何使用 Python 编写程序,检查给定列表中的元素是否形成交替峰值模式。我们将探讨两种不同的方法来实现这一目标,并提供详细的代码示例。 ... [详细]
author-avatar
用户r8l5835vd6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有