基于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

相关推荐
青山如墨雨如画2 小时前
【北邮-无线通信中的人工智能】物理层技术中AI的应用实践:基于KNN的调制识别(1)理论基础
人工智能·python·机器学习·matlab·jupyter
MATLAB代码顾问2 小时前
Python Matplotlib数据可视化实战指南
python·信息可视化·matplotlib
AI 编程助手GPT2 小时前
用 Python 做一个世界杯赛前分析脚本:以巴西 vs 摩洛哥为例
开发语言·网络·人工智能·python·chatgpt
万事大吉CC2 小时前
Python 笔试输入模板总结
python·算法
Java患者·2 小时前
《Python 人脸识别入门实践:从人脸检测到人脸比对完整实现》
开发语言·python·opencv·目标检测·计算机视觉·目标跟踪·视觉检测
宸丶一3 小时前
Day 10:LangGraph - Agent 的图执行引擎
java·windows·python
weixin_307779133 小时前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
zmzb01033 小时前
Python课后习题训练记录Day130
开发语言·python
高洁014 小时前
医疗行业的数字孪生革命
python·机器学习·数据挖掘·transformer·知识图谱
MATLAB代码顾问4 小时前
Python Pandas数据分析入门指南
python·数据分析·pandas