python中文文本概括实践

#python# #jieba# #Transformers#

文本概括实践,适合初步总结分析概括文本。

一、简易模式

使用到 jieba 

import jieba
import jieba.analyse

# 示例中文文本
text = """这里是您想要概括的中文文本。将示例文本替换为您实际希望概括的段落。"""

# 使用jieba的textrank提取关键句
def extract_summary(text, topK=3):
    # 使用jieba的textrank接口提取关键句,topK指定要提取的句子数量
    key_sentences = jieba.analyse.textrank(text, topK=topK, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
    return ' '.join(key_sentences)

# 打印概括后的文本
print(extract_summary(text))

二、进阶模式

使用到 Hugging Face的Transformers库。为了提高准确性,我将文本先转化为英文,再转化汉语。提升概括的准确性。初次使用 Transformers 会加载模型库,比较慢。

from transformers import pipeline

# 加载中文到英文的翻译模型
translator_to_en = pipeline("translation_zh_to_en", model="Helsinki-NLP/opus-mt-zh-en")

# 加载预训练的概括模型和tokenizer
summarizer = pipeline("summarization", model="t5-base", tokenizer="t5-base", framework="pt")

# 加载英文到中文的翻译模型
translator_to_zh = pipeline("translation_en_to_zh", model="Helsinki-NLP/opus-mt-en-zh")

# 示例中文文本,替换为您想要概括的文本
chinese_text = "这里是您的中文文本,将会被翻译、概括,并再次翻译回中文。"

# 将示例文本翻译成英文
translated_text_to_en = translator_to_en(chinese_text)[0]['translation_text']

# 使用概括模型进行文本概括
summary_text = summarizer(translated_text_to_en, max_length=130, min_length=30, do_sample=False)

# 将概括好的英文文本翻译回中文
summary_text_in_chinese = [translator_to_zh(summary['summary_text'])[0]['translation_text'] for summary in summary_text]

# 输出概括并翻译后的中文结果
for summary in summary_text_in_chinese:
    print(summary)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值