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

相关推荐
结衣结衣.18 分钟前
python中的函数介绍
java·c语言·开发语言·前端·笔记·python·学习
茫茫人海一粒沙21 分钟前
Python 代码编写规范
开发语言·python
林浩23322 分钟前
Python——异常处理机制
python
数据分析螺丝钉1 小时前
力扣第240题“搜索二维矩阵 II”
经验分享·python·算法·leetcode·面试
小蜗笔记1 小时前
在Python中实现多目标优化问题(7)模拟退火算法的调用
开发语言·python·模拟退火算法
TANGLONG2222 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
魏大橙2 小时前
Fastjson反序列化
开发语言·python
立黄昏粥可温2 小时前
Python 从入门到实战34(实例2:绘制蟒蛇)
开发语言·python
柚乐果果3 小时前
数据分析实战简例
java·大数据·python
luthane3 小时前
python 实现djb2哈希算法
python·算法·哈希算法