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

相关推荐
风之所往_1 小时前
Python 3.0 新特性全面总结
python
2401_882273721 小时前
如何在 CSS 中正确加载本地 JPG 背景图片
jvm·数据库·python
Lucas_coding1 小时前
【Claude Code Router】 Claude Code 兼容 OpenAI 格式 API, Claude code 接入本地部署模型
人工智能·python
测试员周周1 小时前
【AI测试系统】第5篇:从 Archon 看 AI 工程化落地:为什么"确定性编排+AI 弹性智能"是终局?
人工智能·python·测试
大飞记Python2 小时前
【2026更新】Python基础学习指南(AI版)——04数据类型
开发语言·人工智能·python
Hello eveybody3 小时前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp
2301_795099744 小时前
让 CSS Grid 自适应容器尺寸的动态布局方案
jvm·数据库·python
呆萌的代Ma4 小时前
python读取并加载.env的配置文件
python
Muyuan19984 小时前
27.RAG 系统中的上下文充分性判断:从 Chunk 数量、FAISS 距离到 LLM Relevance Gate
python·django·pdf·fastapi·faiss
U盘失踪了4 小时前
python curl转python脚本
开发语言·chrome·python