目录

一.视频文本提取

1.视频转音频

2.音频转文本:

二.摘要提取

1.txetrank--抽取式摘要

3.聚类法--抽取式摘要

4.seq2seq法--生成式摘要

三.总结


前言

笔者结合所学的文本分类和摘要提取知识,构建了一个可提取视频摘要信息的系统,可供参考学习。


一.视频文本提取

1.视频转音频

视频转音频使用movie库(pip install movie),三行代码实现视频转换音频:

from moviepy.editor import AudioFileClip
my_audio_clip = AudioFileClip("E:\\电影\\视频素材\\航天器对接.mp4")
my_audio_clip.write_audiofile("E:\\电影\\视频素材\\航天器对接音频.wav")

2.音频转文本:

使用speecrecognition库和pocketsphinx库进行识别。

两者通过pip安装即可,但是注意若直接pip安装pocketsphinx失败,则先进行 conda install swig 安装其依赖,之后再pip安装pocketsphinx即可。 这是因为pocketsphinx是基于c++实现,而swig是一个可以把c/c++代码封装为python库的工具。

同时注意,pocketsphinx默认只提供英文识别,中文识别需要去官方下载普通话升级包,并安装到英文包相同路径(D:\anaconda3\Lib\site-packages\speech_recognition\pocketsphinx-data)下

官网:CMU Sphinx - Browse /Acoustic and Language Models at SourceForge.net

普通话升级包安装: ①目前最新版的Mandarin中只存在cmusphinx-zh-cn-5.2.tar.gz这个双重压缩文件,挂梯子下载后双重解压。 ②需要注意:把解压出来的zh_cn.cd_cont_5000文件夹重命名为acoustic-model、zh_cn.lm.bin命名为language-model.lm.bin、zh_cn.dic改为pronounciation-dictionary.dict。 ③在en-US,即默认英文包的同级目录创建"zh-CN"用于存放 ④把第②步中的四个文件放入zh-CN中即可。

import speech_recognition as sr
audio_file='E:\\电影\\视频素材\\航天器对接音频.wav'
r=sr.Recognizer()with sr.AudioFile(audio_file)as source:audio=r.record(source)try:print("识别的文本:",r.recognize_sphinx(audio,language='zh-CN'))
except Exception as e:print(e)

二.摘要提取

1.txetrank--抽取式摘要

from snownlp import SnowNLPtext='''就废弃茶叶被转手事件发声明本报讯(记者刘俊) “我们也是受害者!”昨日,有媒体报道称康师傅的废弃茶叶被转手卖给不良商家、冒充名茶流入市场,康师傅的一位联系人这样说。康师傅昨日晚间发出声明表示生产废料处理商作出了 “不良行为”,公司方面除表达严正关注的立场外,也已经配合政府有关单位进行调查。中止与生产废料厂商的合同康师傅在给本报的声明中确认,经查,与康师傅签订生产废料处理合同之厂商为吉安三石饲料商行,且系通过公开招标程序取得合同承揽资格,并签有保证透过合法渠道处理康师傅生产废料的承诺。昨日媒体报道的内容显示吉安三石饲料商行可能违反与康师傅签订之合同,即日起,康师傅已中止履行与吉安三石饲料商行的有关合同,并静待相关单位调查结果后从严追究责任。昨日,康师傅一位熟悉情况的人士告诉记者,这家商家是从去年三季度后开始给康师傅处理生产废料的,有关合同将在今年年底届满,这位联系人指康师傅和该商行之间没有参股或任何资本关系。'''
text2="""记者傅亚雨沈阳报道 来到沈阳,国奥队依然没有摆脱雨水的困扰。7月31日下午6点,国奥队的日常训练再度受到大雨的干扰,无奈之下队员们只慢跑了25分钟就草草收场。31日上午10点,国奥队在奥体中心外场训练的时候,天就是阴沉沉的,气象预报显示当天下午沈阳就有大雨,但幸好队伍上午的训练并没有受到任何干扰。下午6点,当球队抵达训练场时,大雨已经下了几个小时,而且丝毫没有停下来的意思。抱着试一试的态度,球队开始了当天下午的例行训练,25分钟过去了,天气没有任何转好的迹象,为了保护球员们,国奥队决定中止当天的训练,全队立即返回酒店。在雨中训练对足球队来说并不是什么稀罕事,但在奥运会即将开始之前,全队变得“娇贵”了。在沈阳最后一周的训练,国奥队首先要保证现有的球员不再出现意外的伤病情况以免影响正式比赛,因此这一阶段控制训练受伤、控制感冒等疾病的出现被队伍放在了相当重要的位置。而抵达沈阳之后,中后卫冯萧霆就一直没有训练,冯萧霆是7月27日在长春患上了感冒,因此也没有参加29日跟塞尔维亚的热身赛。队伍介绍说,冯萧霆并没有出现发烧症状,但为了安全起见,这两天还是让他静养休息,等感冒彻底好了之后再恢复训练。由于有了冯萧霆这个例子,因此国奥队对雨中训练就显得特别谨慎,主要是担心球员们受凉而引发感冒,造成非战斗减员。而女足队员马晓旭在热身赛中受伤导致无缘奥运的前科,也让在沈阳的国奥队现在格外警惕,“训练中不断嘱咐队员们要注意动作,我们可不能再出这样的事情了。”一位工作人员表示。从长春到沈阳,雨水一路伴随着国奥队,“也邪了,我们走到哪儿雨就下到哪儿,在长春几次训练都被大雨给搅和了,没想到来沈阳又碰到这种事情。”一位国奥球员也对雨水的“青睐”有些不解。"""
s=SnowNLP(text2)
print(s.summary(9))
print(s.summary(1))

2.TF-IDF法--抽取式摘要


#coding:utf-8
import nltk
import jieba
import numpy#分句
def sent_tokenizer(texts):start=0i=0#每个字符的位置sentences=[]punt_list=',.!?:;~,。!?:;~'#标点符号for text in texts:#遍历每一个字符if text in punt_list and token not in punt_list: #检查标点符号下一个字符是否还是标点sentences.append(texts[start:i+1])#当前标点符号位置start=i+1#start标记到下一句的开头i+=1else:i+=1#若不是标点符号,则字符位置继续前移token=list(texts[start:i+2]).pop()#取下一个字符.pop是删除最后一个if start<len(texts):sentences.append(texts[start:])#这是为了处理文本末尾没有标点符号的情况return sentences#对停用词加载
def stopwordslist(filepath):stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]return stopwords#对句子打分
def score_sentences(sentences,topn_words):#参数 sentences:文本组(分好句的文本,topn_words:高频词组scores=[]sentence_idx=-1#初始句子索引标号-1for s in [list(jieba.cut(s)) for s in sentences]:# 遍历每一个分句,这里的每个分句是 分词数组 分句1类似 ['花', '果园', '中央商务区', 'F4', '栋楼', 'B33', '城', ',']sentence_idx+=1 #句子索引+1。。0表示第一个句子word_idx=[]#存放关键词在分句中的索引位置.得到结果类似:[1, 2, 3, 4, 5],[0, 1],[0, 1, 2, 4, 5, 7]..for w in topn_words:#遍历每一个高频词try:word_idx.append(s.index(w))#关键词出现在该分句子中的索引位置except ValueError:#w不在句子中password_idx.sort()if len(word_idx)==0:continue#对于两个连续的单词,利用单词位置索引,通过距离阀值计算族clusters=[] #存放的是几个cluster。类似[[0, 1, 2], [4, 5], [7]]cluster=[word_idx[0]] #存放的是一个类别(簇) 类似[0, 1, 2]i=1while i<len(word_idx):#遍历 当前分句中的高频词CLUSTER_THRESHOLD=2#举例阈值我设为2if word_idx[i]-word_idx[i-1]<CLUSTER_THRESHOLD:#如果当前高频词索引 与前一个高频词索引相差小于3,cluster.append(word_idx[i])#则认为是一类else:clusters.append(cluster[:])#将当前类别添加进clusters=[]cluster=[word_idx[i]] #新的类别i+=1clusters.append(cluster)#对每个族打分,每个族类的最大分数是对句子的打分max_cluster_score=0for c in clusters:#遍历每一个簇significant_words_in_cluster=len(c)#当前簇 的高频词个数total_words_in_cluster=c[-1]-c[0]+1#当前簇里 最后一个高频词 与第一个的距离score=1.0*significant_words_in_cluster*significant_words_in_cluster/total_words_in_clusterif score>max_cluster_score:max_cluster_score=scorescores.append((sentence_idx,max_cluster_score))#存放当前分句的最大簇(说明下,一个分解可能有几个簇) 存放格式(分句索引,分解最大簇得分)return scores;#结果输出
def results(texts,topn_wordnum,n):#texts 文本,topn_wordnum高频词个数,为返回几个句子stopwords = stopwordslist("C:\\Users\\cuguanren\\pytorch实践项目\\语音识别\\data\\stopwords\\hit_stopwords.txt")#加载停用词sentence = sent_tokenizer(texts)  # 分句words = [w for sentence in sentence for w in jieba.cut(sentence) if w not in stopwords iflen(w) > 1 and w != '\t']  # 词语,非单词词,同时非符号wordfre = nltk.FreqDist(words)  # 统计词频topn_words = [w[0] for w in sorted(wordfre.items(), key=lambda d: d[1], reverse=True)][:topn_wordnum]  # 取出词频最高的topn_wordnum个单词scored_sentences = score_sentences(sentence, topn_words)#给分句打分# 1,利用均值和标准差过滤非重要句子avg = numpy.mean([s[1] for s in scored_sentences])  # 均值std = numpy.std([s[1] for s in scored_sentences])  # 标准差mean_scored = [(sent_idx, score) for (sent_idx, score) in scored_sentences ifscore > (avg + 0.5 * std)]  # sent_idx 分句标号,score得分# 2,返回top n句子top_n_scored = sorted(scored_sentences, key=lambda s: s[1])[-n:]  # 对得分进行排序,取出n个句子top_n_scored = sorted(top_n_scored, key=lambda s: s[0])  # 对得分最高的几个分句,进行分句位置排序c = dict(mean_scoredsenteces=[sentence[idx] for (idx, score) in mean_scored])c1=dict(topnsenteces=[sentence[idx] for (idx, score) in top_n_scored])return c,c1if __name__=='__main__':texts = str(input('请输入文本:'))topn_wordnum=int(input('请输入高频词数:'))n=int(input('请输入要返回的句子个数:'))c,c1=results(texts,topn_wordnum,n)print(c)print(c1)

3.聚类法--抽取式摘要

下载中文spacy模型 python -m spacy download zh_core_web_lg

注意#from summarizer.sentence_handler import SentenceHandler中提到的sentence_handler已经被移除,取而代之的是summarizer.summary_processor.SentenceHandler方法。

from summarizer import Summarizer
#from summarizer.sentence_handler import SentenceHandler
from spacy.lang.zh import Chinese#spaCy是最流行的开源NLP开发包之一,中文版预训练模型包括词性标注、依存分析和命名实体识别等
from transformers import *
import summarizer# 通过Transformers加载模型
modelName = "hfl/rbt6"  # 使用中文bert,可以换成自己常用的
custom_config = AutoConfig.from_pretrained(modelName)
custom_config.output_hidden_states = True
custom_tokenizer = AutoTokenizer.from_pretrained(modelName)
custom_model = AutoModel.from_pretrained(modelName, config=custom_config)model = Summarizer(custom_model=custom_model,custom_tokenizer=custom_tokenizer,sentence_handler=summarizer.summary_processor.SentenceHandler(language=Chinese)  # 使用中文分词
)texts = ["""四海网讯,近日,有媒体报道称:章子怡真怀孕了!报道还援引知情人士消息称,“章子怡怀孕大概四五个月,预产期是年底前后,现在已经不接工作了。”这到底是怎么回事?消息是真是假?针对此消息,23日晚8时30分,华西都市报记者迅速联系上了与章子怡家里关系极好的知情人士,这位人士向华西都市报记者证实说:“子怡这次确实怀孕了。她已经36岁了,也该怀孕了。章子怡怀上汪峰的孩子后,子怡的父母亲十分高兴。子怡的母亲,已开始悉心照料女儿了。子怡的预产期大概是今年12月底。”当晚9时,华西都市报记者为了求证章子怡怀孕消息,又电话联系章子怡的亲哥哥章子男,但电话通了,一直没有人接听。有关章子怡怀孕的新闻自从2013年9月份章子怡和汪峰恋情以来,就被传N遍了!不过,时间跨入2015年,事情却发生着微妙的变化。2015年3月21日,章子怡担任制片人的电影《从天儿降》开机,在开机发布会上几张合影,让网友又燃起了好奇心:“章子怡真的怀孕了吗?”但后据证实,章子怡的“大肚照”只是影片宣传的噱头。过了四个月的7月22日,《太平轮》新一轮宣传,章子怡又被发现状态不佳,不时深呼吸,不自觉想捂住肚子,又觉得不妥。然后在8月的一天,章子怡和朋友吃饭,在酒店门口被风行工作室拍到了,疑似有孕在身!今年7月11日,汪峰本来在上海要举行演唱会,后来因为台风“灿鸿”取消了。而消息人士称,汪峰原来打算在演唱会上当着章子怡的面宣布重大消息,而且章子怡已经赴上海准备参加演唱会了,怎知遇到台风,只好延期,相信9月26日的演唱会应该还会有惊喜大白天下吧。""","""鉴于统一误差计算模型简化方法自适应性差的问题,提出了一种根据地势特征自适应分割地形区域从而有选择性地进行误差计算和模型简化的方法.针对地形模型数据量大的特点,建立了细节层次结构,并证明了空间快速索引方法的有效性.为了解决平缓地势区域分割困难的问题,提出了基于凸点和扩散点相结合的特征选择算法,并有效控制了特征点的密度.在此基础上提出了多分辨率邻域节点查找与匹配方法,实现了区域的快速粗粒度分割.提出了地表起伏度计算方法,进一步评价了分割区域的地势特征,从而对部分区域进行细分处理.在真实数据上进行了实验研究,结果表明算法性能以及简化模型的精度和自适应性较好.""","""针对央视3·15晚会曝光的电信行业乱象,工信部在公告中表示,将严查央视3·15晚会曝光通信违规违法行为。工信部称,已约谈三大运营商有关负责人,并连夜责成三大运营商和所在省通信管理局进行调查,依法依规严肃处理。""","""就废弃茶叶被转手事件发声明本报讯(记者刘俊) “我们也是受害者!”昨日,有媒体报道称康师傅的废弃茶叶被转手卖给不良商家、冒充名茶流入市场,康师傅的一位联系人这样说。康师傅昨日晚间发出声明表示生产废料处理商作出了 “不良行为”,公司方面除表达严正关注的立场外,也已经配合政府有关单位进行调查。中止与生产废料厂商的合同康师傅在给本报的声明中确认,经查,与康师傅签订生产废料处理合同之厂商为吉安三石饲料商行,且系通过公开招标程序取得合同承揽资格,并签有保证透过合法渠道处理康师傅生产废料的承诺。昨日媒体报道的内容显示吉安三石饲料商行可能违反与康师傅签订之合同,即日起,康师傅已中止履行与吉安三石饲料商行的有关合同,并静待相关单位调查结果后从严追究责任。昨日,康师傅一位熟悉情况的人士告诉记者,这家商家是从去年三季度后开始给康师傅处理生产废料的,有关合同将在今年年底届满,这位联系人指康师傅和该商行之间没有参股或任何资本关系。“厂家承诺废料用来做枕头”“为了确保不会出现乱子我们在合同上跟这家商行更是明确约定,不能利用废弃茶叶做任何违法国家法律法规的事情的。”上述人士说,这家商行向他们承诺茶叶是用于做枕头等用品的,康师傅方面为了安全起见,还特意向他们索要用于做枕头等业务的单据,没有想到还是出了这样的事情。康师傅是内地最大的即饮茶饮料生产商,其市场份额近四成。据媒体昨日曝光的二手茶叶的产业链,回收商行将康师傅泡过后的废弃茶叶以低价出售给不良商家,商家将茶叶运往外地进行加工出售。每年百万斤的二手茶叶被制成名茶出口国外或卖给国内企业。据报道,泡后的茶叶先是被运往广州增城新塘永和龟山,在烘干后被运往东莞麻涌的茶厂加工,然后集中运至浙江安吉凯丰茶叶有限公司(下称凯丰茶厂)进行再次加工。作者:刘俊 (来源:广州日报)""","""记者傅亚雨沈阳报道 来到沈阳,国奥队依然没有摆脱雨水的困扰。7月31日下午6点,国奥队的日常训练再度受到大雨的干扰,无奈之下队员们只慢跑了25分钟就草草收场。31日上午10点,国奥队在奥体中心外场训练的时候,天就是阴沉沉的,气象预报显示当天下午沈阳就有大雨,但幸好队伍上午的训练并没有受到任何干扰。下午6点,当球队抵达训练场时,大雨已经下了几个小时,而且丝毫没有停下来的意思。抱着试一试的态度,球队开始了当天下午的例行训练,25分钟过去了,天气没有任何转好的迹象,为了保护球员们,国奥队决定中止当天的训练,全队立即返回酒店。在雨中训练对足球队来说并不是什么稀罕事,但在奥运会即将开始之前,全队变得“娇贵”了。在沈阳最后一周的训练,国奥队首先要保证现有的球员不再出现意外的伤病情况以免影响正式比赛,因此这一阶段控制训练受伤、控制感冒等疾病的出现被队伍放在了相当重要的位置。而抵达沈阳之后,中后卫冯萧霆就一直没有训练,冯萧霆是7月27日在长春患上了感冒,因此也没有参加29日跟塞尔维亚的热身赛。队伍介绍说,冯萧霆并没有出现发烧症状,但为了安全起见,这两天还是让他静养休息,等感冒彻底好了之后再恢复训练。由于有了冯萧霆这个例子,因此国奥队对雨中训练就显得特别谨慎,主要是担心球员们受凉而引发感冒,造成非战斗减员。而女足队员马晓旭在热身赛中受伤导致无缘奥运的前科,也让在沈阳的国奥队现在格外警惕,“训练中不断嘱咐队员们要注意动作,我们可不能再出这样的事情了。”一位工作人员表示。从长春到沈阳,雨水一路伴随着国奥队,“也邪了,我们走到哪儿雨就下到哪儿,在长春几次训练都被大雨给搅和了,没想到来沈阳又碰到这种事情。”一位国奥球员也对雨水的“青睐”有些不解。""","""交会对接,简简单单四个字,包含了两个阶段,这是建设中国空间站的关键技术,也是航天器在轨运行中最复杂的技术之一。你问天为例,发射前,我们可以想象为地球带着他和长征火箭一起旋转。从起飞的那一瞬间,他们不在随地球运动,脱离地表直接利用太空。因此,起飞时刻的精准性决定了火箭是否被地球带着偏离了预期的初始条件,这里也就做了一个名词零窗口发射时间误差只能在政府一秒内不允许有任何延误与变更。发生后,两个航天器怎样找到彼此呢?将会对接常常被被誉为万里传真,其实距离并不与难度成正比,追踪确立,甚至也不一定多耗燃料。关键在于精准控制飞行过程中的高度差和航天器自身的时期,新生活,后悔到月底运行速度越快。打个比方,只要保持问题的轨道,英语空间站婚自然就以更快的速度飞向空间站追踪过程中,问题逐渐抬高,轨道空间站的相对速度也随之逐渐减小,问天与空间站轨道高度相似,两者的相对速度为零,对接就可望实现了。上公室。航天器达到第一种速度后,建立轨道飞行,此后速度大小,只于轨道高度有关。简单说,快速交会对接飞行速度变快了,而是轨道控制的流程变短了,所以快速交会对接模式,除了快速之外的另一个关键词是自主。自主就是追踪飞行器,不用再等待地面的指挥,而是利用自己掌握的数据来决定自己的前进方向。这里我们的北斗大哥可是出大力北斗全球导航的应用使得精确实时的轨道侧。"""]for i, j in enumerate(texts):result = model(j)print(str(i + 1) + ':' + result)

4.seq2seq法--生成式摘要

本模型采用清华大学开源的新闻集,涉及领域广泛,数量达80w条,同时采用哈工大提供的预训练bert模型实现。

## THUCNews 原始数据集
# -*- coding:utf-8 -*-import torch
from tqdm import tqdm
import time
import glob
from torch.utils.data import Dataset, DataLoader
from bert_seq2seq import Tokenizer, load_chinese_base_vocab
from bert_seq2seq import load_bertvocab_path = "./state_dict/roberta_wwm_vocab.txt"  # roberta模型字典的位置
word2idx = load_chinese_base_vocab(vocab_path)
model_name = "roberta"  # 选择模型名字
model_path = "./state_dict/roberta_wwm_pytorch_model.bin"  # 模型位置
recent_model_path = "./state_dict/bert_auto_title_model.bin"   # 用于把已经训练好的模型继续训练
model_save_path = "./state_dict/bert_auto_title_model.bin"
batch_size = 4
lr = 1e-5
maxlen = 256class BertDataset(Dataset):"""针对特定数据集,定义一个相关的取数据的方式"""def __init__(self) :## 一般init函数是加载所有数据super(BertDataset, self).__init__()## 拿到所有文件名字self.txts = glob.glob('./corpus/THUCNews/*/*.txt')self.idx2word = {k: v for v, k in word2idx.items()}self.tokenizer = Tokenizer(word2idx)def __getitem__(self, i):## 得到单个数据# print(i)text_name = self.txts[i]with open(text_name, "r", encoding="utf-8") as f:text = f.read()text = text.split('\n')if len(text) > 1:title = text[0]content = '\n'.join(text[1:])token_ids, token_type_ids = self.tokenizer.encode(content, title, max_length=maxlen)output = {"token_ids": token_ids,"token_type_ids": token_type_ids,}return outputreturn self.__getitem__(i + 1)def __len__(self):return len(self.txts)def collate_fn(batch):"""动态padding, batch为一部分sample"""def padding(indice, max_length, pad_idx=0):"""pad 函数"""pad_indice = [item + [pad_idx] * max(0, max_length - len(item)) for item in indice]return torch.tensor(pad_indice)token_ids = [data["token_ids"] for data in batch]max_length = max([len(t) for t in token_ids])token_type_ids = [data["token_type_ids"] for data in batch]token_ids_padded = padding(token_ids, max_length)token_type_ids_padded = padding(token_type_ids, max_length)target_ids_padded = token_ids_padded[:, 1:].contiguous()return token_ids_padded, token_type_ids_padded, target_ids_paddedclass Trainer:def __init__(self):# 判断是否有可用GPUself.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")print("device: " + str(self.device))# 定义模型self.bert_model = load_bert(word2idx, model_name=model_name)## 加载预训练的模型参数~self.bert_model.load_pretrain_params(recent_model_path)# 加载已经训练好的模型,继续训练# 将模型发送到计算设备(GPU或CPU)self.bert_model.set_device(self.device)# 声明需要优化的参数self.optim_parameters = list(self.bert_model.parameters())self.optimizer = torch.optim.Adam(self.optim_parameters, lr=lr, weight_decay=1e-3)# 声明自定义的数据加载器dataset = BertDataset()self.dataloader =  DataLoader(dataset, batch_size=batch_size, shuffle=True, collate_fn=collate_fn)def train(self, epoch):# 一个epoch的训练self.bert_model.train()self.iteration(epoch, dataloader=self.dataloader, train=True)def save(self, save_path):"""保存模型"""self.bert_model.save_all_params(save_path)print("{} saved!".format(save_path))def iteration(self, epoch, dataloader, train=True):total_loss = 0start_time = time.time() ## 得到当前时间step = 0report_loss = 0for token_ids, token_type_ids, target_ids in tqdm(dataloader,position=0, leave=True):step += 1if step % 10 == 0:self.bert_model.eval()test_data = ["""就废弃茶叶被转手事件发声明本报讯(记者刘俊) “我们也是受害者!”昨日,有媒体报道称康师傅的废弃茶叶被转手卖给不良商家、冒充名茶流入市场,康师傅的一位联系人这样说。康师傅昨日晚间发出声明表示生产废料处理商作出了 “不良行为”,公司方面除表达严正关注的立场外,也已经配合政府有关单位进行调查。中止与生产废料厂商的合同康师傅在给本报的声明中确认,经查,与康师傅签订生产废料处理合同之厂商为吉安三石饲料商行,且系通过公开招标程序取得合同承揽资格,并签有保证透过合法渠道处理康师傅生产废料的承诺。昨日媒体报道的内容显示吉安三石饲料商行可能违反与康师傅签订之合同,即日起,康师傅已中止履行与吉安三石饲料商行的有关合同,并静待相关单位调查结果后从严追究责任。昨日,康师傅一位熟悉情况的人士告诉记者,这家商家是从去年三季度后开始给康师傅处理生产废料的,有关合同将在今年年底届满,这位联系人指康师傅和该商行之间没有参股或任何资本关系。""","""交会对接,简简单单四个字,包含了两个阶段,这是建设中国空间站的关键技术,也是航天器在轨运行中最复杂的技术之一。你问天为例,发射前,我们可以想象为地球带着他和长征火箭一起旋转。从起飞的那一瞬间,他们不在随地球运动,脱离地表直接利用太空。因此,起飞时刻的精准性决定了火箭是否被地球带着偏离了预期的初始条件,这里也就做了一个名词零窗口发射时间误差只能在政府一秒内不允许有任何延误与变更。发生后,两个航天器怎样找到彼此呢?将会对接常常被被誉为万里传真,其实距离并不与难度成正比,追踪确立,甚至也不一定多耗燃料。关键在于精准控制飞行过程中的高度差和航天器自身的时期,新生活,后悔到月底运行速度越快。打个比方,只要保持问题的轨道,英语空间站婚自然就以更快的速度飞向空间站追踪过程中,问题逐渐抬高,轨道空间站的相对速度也随之逐渐减小,问天与空间站轨道高度相似,两者的相对速度为零,对接就可望实现了。上公室。航天器达到第一种速度后,建立轨道飞行,此后速度大小,只于轨道高度有关。简单说,快速交会对接飞行速度变快了,而是轨道控制的流程变短了,所以快速交会对接模式,除了快速之外的另一个关键词是自主。自主就是追踪飞行器,不用再等待地面的指挥,而是利用自己掌握的数据来决定自己的前进方向。这里我们的北斗大哥可是出大力北斗全球导航的应用使得精确实时的轨道侧。""","8月28日,网络爆料称,华住集团旗下连锁酒店用户数据疑似发生泄露。从卖家发布的内容看,数据包含华住旗下汉庭、禧玥、桔子、宜必思等10余个品牌酒店的住客信息。泄露的信息包括华住官网注册资料、酒店入住登记的身份信息及酒店开房记录,住客姓名、手机号、邮箱、身份证号、登录账号密码等。卖家对这个约5亿条数据打包出售。第三方安全平台威胁猎人对信息出售者提供的三万条数据进行验证,认为数据真实性非常高。当天下午 ,华 住集 团发声明称,已在内部迅速开展核查,并第一时间报警。当晚,上海警方消息称,接到华住集团报案,警方已经介入调查。"]for text in test_data:print(self.bert_model.generate(text, beam_size=3))print("loss is " + str(report_loss))report_loss = 0# self.eval(epoch)self.bert_model.train()if step % 8000 == 0:self.save(model_save_path)# 因为传入了target标签,因此会计算loss并且返回predictions, loss = self.bert_model(token_ids,token_type_ids,labels=target_ids,)report_loss += loss.item()# 反向传播if train:# 清空之前的梯度self.optimizer.zero_grad()# 反向传播, 获取新的梯度loss.backward()# 用获取的梯度更新模型参数self.optimizer.step()# 为计算当前epoch的平均losstotal_loss += loss.item()end_time = time.time()spend_time = end_time - start_time# 打印训练信息print("epoch is " + str(epoch)+". loss is " + str(total_loss) + ". spend time is "+ str(spend_time))# 保存模型self.save(model_save_path)def testtry(self,s):#self.bert_model.train()self.bert_model.eval()with torch.no_grad():test_data = sfor text in test_data:print(self.bert_model.generate(text, beam_size=1))if __name__ == '__main__':trainer = Trainer()train_epoches = 1for epoch in range(train_epoches):# 训练一个epochtrainer.train(epoch)

三.总结

在以上采用的4种摘要提取方法中,经读者测试,效果最好的应是第三种摘要提取方法,即聚类方法,不论是从摘要提取所需的时间,还是提取出摘要的质量,相对来说都是最好的选择。-

视频会议摘要提取系统相关推荐

  1. 文本摘要提取_了解自动文本摘要-1:提取方法

    文本摘要提取 Text summarization is commonly used by several websites and applications to create news feed ...

  2. Apache OpenMeetings 5.0.0 发布:开源视频会议和协作系统

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.oschina.net ...

  3. nlp中文文本摘要提取,快速提取文本主要意思

    文本摘要提取 之前写过一版 文本摘要提取,但那版并不完美.有所缺陷(但也获得几十次收藏). 中文文本摘要提取 (文本摘要提取 有代码)基于python 今天写改进版的文本摘要提取. 文本摘要旨在将文本 ...

  4. 使用TextRank算法进行文本摘要提取(python代码)

    文本摘要是自然语言处理(NLP)的一种应用,随着人工智能的发展文本提取必将对我们的生活产生巨大的影响.随着网络的发展我们处在一个信息爆炸的时代,通读每天更新的海量文章/文档/书籍会占用我们大量的时间, ...

  5. OpenWrt提取系统镜像

    OpenWrt提取系统镜像 前言:在路由器中flash了openwrt系统,并安装了许多软件及相关配置,现想将整个系统的镜像提取出来,并flash到另一台相同的设备中. 方法 1.先查看firewar ...

  6. 客服通话文本摘要提取比赛基线

    一.赛题背景 客服中心每天都需要接通大量的客户来电,客户来电需要进行语音转文本,同时对文本进行概括,提取客户核心诉求,但是人工总结会增加客服工作量,降低工作效率,因此期望使用AI算法进行自动的文本摘要 ...

  7. 中文文本摘要提取 (文本摘要提取 有代码)基于python

    任务简介 文本摘要旨在将文本或文本集合转换为包含关键信息的简短摘要.文本摘要按照输入类型可分为单文档摘要和多文档摘要.单文档摘要从给定的一个文档中生成摘要,多文档摘要从给定的一组主题相关的文档中生成摘 ...

  8. 「谷歌大脑」提出通过对长序列进行摘要提取,AI可自动生成「维基百科」

    原文来源:arXiv 作者:Peter J. Liu.Mohammad Saleh.Etienne Pot.Ben Goodrich.Ryan Sepassi.Łukasz Kaiser.Noam S ...

  9. python中文文本分词_SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库...

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和Te ...

最新文章

  1. ajax实现异步校验
  2. Project interpreter not specified(eclipse+pydev) (转)
  3. Java之currenHashMap
  4. __attribute__((packed))
  5. 如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信
  6. php教程水印,PHP教程之ImageTTFText函数实现图像加文字水印的详细资料说明
  7. 惠普微型计算机怎么装机,详解hp如何安装系统
  8. 【MFC开发(9)】列表控件List Box
  9. 【Python】爬取的图片不对怎么办?Python爬取网页图片小结
  10. vcpkg安装boost的一些问题,
  11. 戴尔dell电脑恢复出厂设置教程(BIOS恢复出厂设置,新版台式机)
  12. java 风能玫瑰图_使用java awt画风向玫瑰图及风能玫瑰图程序
  13. 酷派春雷com.yulong.android,酷派春雷hd刷机详细教程介绍
  14. cba篮球暂停次数和时间_NBA和CBA篮球规则的主要不同
  15. windows server 2016 安装openssh
  16. pytho语法总结(1):基础知识,列表介绍,列表操作
  17. 工程师小哥魔术揭秘“三仙归洞”,把我都看蒙了!
  18. 特殊格式的时间读取并排序
  19. 微波射频学习笔记3--------微带线与带状线介绍
  20. 解决cesium widgets.css is not exported from package

热门文章

  1. 软件工程用例图要素简单解释
  2. 全球云计算领域的领导者
  3. 操作系统--内存管理
  4. 计算机 精度,精度计算器
  5. VS2012中“工具>选项中的VC++目录编辑功能已被否决”解决方法
  6. 书籍推荐《未来简史》
  7. 顶级(top-level window)窗口,被拥有窗口(owned window),子窗口(child window) 与WS_POPUP,WS_CHILD深入浅出
  8. 递归与递推 输出斐波拉契数列的前n项 python
  9. 几句话掌握Unix的前世今生——简单吧
  10. 将PPT转成PDF后字体变了怎么解决