【人工智能项目】深度学习实现知乎文本摘要

本文介绍了如何使用gensim和textrank库在Python中实现知乎文本的自动摘要。通过分句、分词处理文本,然后利用gensim的summarize方法和textrank4zh生成关键句子,从而简化海量文本信息。实验结果以csv文件形式保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【人工智能项目】深度学习实现知乎文本摘要

在这里插入图片描述

任务说明

文本摘要是NLP领域经典任务之一,在当前互联网时代,用户可以通过自动文本摘要对海量文本信息进行简化处理。本次比赛的的任务就是自动文本摘要。

使用gensim来生成摘要

import numpy as np
import pandas as pd
from gensim.summarization.summarizer import summarize
testdf=pd.read_csv("data/test.csv")
testdf.head(10)

在这里插入图片描述

from pyltp import Segmentor
from pyltp import SentenceSplitter


_segmentor = None
_sent_splitter = None

def split(content):
    '''分句和分词'''
    global _segmentor, _sent_splitter
    if _segmentor is None:
        model_path = r'cws.model'
        segmentor = Segmentor()  # 初始化实例
        segmentor.load(model_path) # 加载分词模型
        _segmentor = segmentor  # 设置全局变量, 避免每次都重新加载模型, 耗时
        _sent_splitter = SentenceSplitter() # 句子分割模型
    sents = _sent_splitter.split(content)  # 先进行分句
    s = []
    for sent in sents:
        words = _segmentor.segment(sent) # 分词
        sent = ' '.join(words) # 用空格把词隔开
        s.append(sent)
    content = '. '.join(s)  # 用.把句子隔开
    return content
def clean(content):
    content = str(content).replace('.', '') # 删除句子分隔符
    content = str(content).replace(' ', '') # 删除空格
    return content

from gensim.summarization.summarizer import summarize

result=[]
#for i in range(10):

for i in testdf.index:
    t=testdf['article'][i]
    tokens = split(t)
    s=summarize(tokens)
    s=clean(s)
    print(i,s+'\n')
     
    result.append([i,s])
predresult=pd.DataFrame(result)
predresult.to_csv("mysubmission.csv",header=None, index=None)

在这里插入图片描述

使用textrank来生成摘要

import pandas as pd
from tqdm import tqdm
train_df = pd.read_csv('data/train.csv')
test_df = pd.read_csv('data/test.csv')
train_df.head()

在这里插入图片描述

from textrank4zh import TextRank4Keyword,TextRank4Sentence
texts = test_df['article'].values
res = []

for text in tqdm(texts):
    text = text.replace('<Paragraph>',' ')
    tr4s = TextRank4Sentence()
    tr4s.analyze(text=text, lower=True, source = 'no_stop_words')
    key_sentences = tr4s.get_key_sentences(num=1, sentence_min_len=20)
    res.append(key_sentences[0]['sentence'])

在这里插入图片描述

sub = pd.DataFrame()
sub['sum'] = res
sub.head()

在这里插入图片描述

sub.to_csv('sub.csv',header=None)

小结

下次见!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值