基于textrank4zh实现文本提取关键词、关键短语、摘要

TextRank算法可以用来从文本中提取关键词和摘要(重要的句子)。TextRank4ZH是针对中文文本的TextRank算法的python算法实现。

TextRank4ZH的缺点:

依赖于词性标注:TextRank4ZH在进行摘要和关键词提取时使用了中文的词性标注,这可能导致一些错误的分析结果,尤其是对于不确定词性或无法准确标注的词汇。

对于长文本效果不佳:由于TextRank4ZH是基于图模型的算法,它在处理长文本时的效果可能不如其他更复杂的深度学习模型。

对context的考虑较少:TextRank4ZH主要基于文本中句子之间的相似度来进行摘要和关键词提取,但它对句子之间的上下文信息考虑较少,可能会导致一些语义上的错误。

类似的工具:

LDA:Latent Dirichlet Allocation(LDA)是一种无监督学习算法,用于从文本中提取主题。与TextRank4ZH不同,LDA考虑了每个词的概率分布和在不同主题下的潜在分布,可以更好地提取出文本的主题信息。

BERT:BERT是一种基于Transformer的预训练深度学习模型,可以用于各种自然语言处理任务,包括文本摘要和关键词提取。BERT在处理长文本上更具优势,能够更好地理解上下文语义,但它的使用和训练也更加复杂。

TF-IDF:TF-IDF是一种经典的文本特征提取方法,用于计算词语在文档中的重要性。TF-IDF可以用于关键词提取,但无法进行文本摘要。 这些工具和算法都有各自的优缺点,选择合适的工具应根据具体的应用场景和需求来进行评估,考虑到文本长度、准确性要求、处理速度等因素。

安装

bash 复制代码
$ pip uninstall textrank4zh

提取关键词、关键短语、摘要

python 复制代码
#-*- encoding:utf-8 -*-
from __future__ import print_function
from textrank4zh import TextRank4Keyword


text = "这间酒店位于北京东三环,里面摆放很多雕塑,文艺气息十足。答谢宴于晚上8点开始。"
tr4w = TextRank4Keyword()

tr4w.analyze(text=text, lower=True, window=2)

print()
print('sentences:')
for s in tr4w.sentences:
    print(s)                 # py2中是unicode类型。py3中是str类型。

print()
print('words_no_filter')
for words in tr4w.words_no_filter:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

print()
print('words_no_stop_words')
for words in tr4w.words_no_stop_words:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

print()
print('words_all_filters')
for words in tr4w.words_all_filters:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

文本内容来源:https://auto.cnr.cn/2015xc/20240307/t20240307_526619427.shtml

结果:

复制代码
关键词:
汽车 0.037479586305810844
芯片 0.03338628994933437
消费者 0.014531764685959202
发展 0.009912052532631601
应用 0.009828380002304241
标准 0.00894295515358438
技术 0.008802053203802713
可靠性 0.008493745554331444
系统 0.008414204000149363
市场 0.008019283383904402
消费市场 0.007749023701300795
车辆 0.007451680042932302
功能 0.007271970215152071
要求 0.007075622696913796
驾驶 0.007067894197573073
汽车产业 0.007045375993069193
产品 0.00686469050950748
性能 0.006549313620122935
提升 0.0062613133113714175
安全 0.00624075571443069

关键短语:
汽车芯片标准
汽车消费市场
汽车芯片技术
功能安全
驾驶系统
汽车市场
汽车产品
汽车芯片

摘要:
36 0.027256913124679042 中央财经大学副教授刘春生在接受《中国消费者报》记者采访时表示,随着汽车"新四化"进程的加快,传统汽车正向智能移动终端转变,对车载芯片在性能、安全、可靠性和兼容性等方面提出了更高的要求,原有的国际标准已经不能充分满足当前和未来汽车电子系统发展的需求
22 0.02697070922898101 中国信息协会常务理事、国研新经济研究院创始院长朱克力在接受《中国消费者报》记者采访时表示,新政的发布源于汽车产业快速变革与升级,随着汽车新"四化"加速推进,汽车芯片作为核心零部件,在整车中的价值比重不断提升,但现有的国际标准如AEC-Q系列等已不能完全满足新技术、新应用对汽车芯片性能、质量和可靠性的要求
35 0.02599082881356829 因此,在环境适应性、功能适配性、可靠性和安全性方面对汽车芯片提出了更为严格的要求,在我国建立起符合实际情况的汽车芯片标准,能更好地满足汽车产业发展需要

文本拆分的4种格式

sentences:由句子组成的列表。

words_no_filter:对sentences中每个句子分词而得到的两级列表。

words_no_stop_words:去掉words_no_filter中的停止词而得到的二维列表。

words_all_filters:保留words_no_stop_words中指定词性的单词而得到的二维列表。

python 复制代码
#-*- encoding:utf-8 -*-
from __future__ import print_function
from textrank4zh import TextRank4Keyword


text = "这间酒店位于北京东三环,里面摆放很多雕塑,文艺气息十足。答谢宴于晚上8点开始。"
tr4w = TextRank4Keyword()

tr4w.analyze(text=text, lower=True, window=2)

print()
print('sentences:')
for s in tr4w.sentences:
    print(s)                 # py2中是unicode类型。py3中是str类型。

print()
print('words_no_filter')
for words in tr4w.words_no_filter:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

print()
print('words_no_stop_words')
for words in tr4w.words_no_stop_words:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

print()
print('words_all_filters')
for words in tr4w.words_all_filters:
    print('/'.join(words))   # py2中是unicode类型。py3中是str类型。

结果:

复制代码
sentences:
这间酒店位于北京东三环,里面摆放很多雕塑,文艺气息十足
答谢宴于晚上8点开始

words_no_filter
这/间/酒店/位于/北京/东三环/里面/摆放/很多/雕塑/文艺/气息/十足
答谢/宴于/晚上/8/点/开始

words_no_stop_words
间/酒店/位于/北京/东三环/里面/摆放/很多/雕塑/文艺/气息/十足
答谢/宴于/晚上/8/点

words_all_filters
酒店/位于/北京/东三环/摆放/雕塑/文艺/气息
答谢/宴于/晚上

相关链接

https://github.com/letiantian/TextRank4ZH
https://blog.csdn.net/q7w8e9r4/article/details/134008766

相关推荐
hhzz6 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
SunnyDays10117 小时前
Python PDF 转 Markdown 详解(转换整个文档,特定页面,表格,扫描 PDF)
python·pdf 转 markdown·pdf 转 md·扫描 pdf 转 md·pdf 表格转 md
2601_954706497 小时前
云手机 API 自动化实战:Python 批量控机、挂机脚本完整实现
python·智能手机·自动化
Alan_69111 小时前
聊聊 Swagger/Postman/Apifox 的真实选型与 Python 项目实战
python·测试工具·postman
智慧物业老杨12 小时前
物业绿化数智化权责管控方案:基于工单平台的双层权限追溯模块落地实践
python
Metaphor69212 小时前
使用 Python 在 Word 文档中添加批注
python·word
FreakStudio12 小时前
WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
会周易的程序员12 小时前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
一只专注api接口开发的技术猿13 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
HAPPY酷13 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda