热门标签 | 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

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



推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文基于对相关论文和开源代码的研究,详细介绍了LOAM(激光雷达里程计与建图)的工作原理,并对其关键技术进行了分析。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
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社区 版权所有