必威体育Betway必威体育官网
当前位置:首页 > IT技术

textteaser算法学习

时间:2019-08-28 06:14:06来源:IT技术作者:seo实验室小编阅读:64次「手机版」
 

teaser

今天简单来介绍和实现textteaser摘要算法

统计指标

1)句子长度,长度为某个长度的句子为最理想的长度,依照距离这个长度的远近来打分。

2)句子位置,根据句子在全文中的位置,给出分数。(比如每段的第一句是核心句的比例大概是70%)

3)句子关键词打分,文本进行预处理之后,按照词频统计出排名前10的关键词,通过比较句子中包含关键词的情况,以及关键词分布的情况来打分。 

综合上述3步的打分做累加,然后倒排得到每个句子的重要性得分,此时要考虑到摘要的可读性,通俗的做法是按照句子在文章中出现的顺序来输出。

程序代码如下:

def computeScore(self, sentences,  topKeywords):
    keywordList = [keyword['word'] for keyword in topKeywords]#先把频率最高的几个单词取出来
    summaries = []#设置一个摘要列表
    self.ws = Wordsegmentation(stop_words_file=None,
                               allow_speech_tags=libiary2.allow_speech_tags)
    for i, sentence in enumerate(sentences):#枚举句子
        sent = self.parser.removePunctations(sentence)#去除句子中的标点
        words=self.ws.segment(text=sent, lower=True, use_stop_words=False, use_speech_tags_filter=False)#对句子进行分词

        sbsFeature = self.sbs(words, topKeywords, keywordList)#传入参数,句子单词,文章最高频率单词以及这些单词,返回1/单词数目*句子分数
        dbsFeature = self.dbs(words, topKeywords, keywordList)


        sentenceLength = self.parser.getSentenceLengthScore(words)#理想句子长度是20,求句子长度得分
        sentencePosition = self.parser.getSentencePositionScore(i, len(sentences))#得到句子位置权重
        keywordFrequency = (sbsFeature + dbsFeature) / 2.0 * 10.0
        totalScore = (keywordFrequency * 2.0 + sentenceLength * 0.5 + sentencePosition * 1.0) / 4.0

        summaries.APPend({
            # 'titleFeature': titleFeature,
            # 'sentenceLength': sentenceLength,
            # 'sentencePosition': sentencePosition,
            # 'keywordFrequency': keywordFrequency,
            'totalScore': totalScore,
            'sentence': sentence,
            'order': i
        })

    return summaries

相关阅读

自动排课算法总结

自动排课算法总结 http://blog.csdn.net/Sinde1992/article/details/50321225 零.与遗传算法的比较 遗传的优点: 全局寻优能力强,

opencv学习——solve()

今天在学习最小二乘法的时候遇到了solve函数,用来解线性方程 A*X=B参考官方文档bool cv::solve(InputArray src1,  InputArray

简洁明了的克鲁斯卡尔算法求解

小试牛刀–++克鲁斯卡尔算法++ 考研资料书本定义:克鲁斯卡尔算法思想:每次找出侯选边中权值最小的边,就将该边并入生成树中。重复

ES学习记录9——关于Term

9.2.4 Term Vector  返回一个特定文档的信息和字段的统计信息,这里的文档可以索引中存储的文档,也可以是用户手动提供的,Term vecto

autojs调用java的类库爬取bilibili视频弹幕内容,get请

/** * @功能 爬取指定bilibili视频弹幕 * @作者 家 * @感谢 内个谁, ProjectXero * @难点 不会解压gzip和deflate,再次感谢上

分享到:

栏目导航

推荐阅读

热门阅读