Java教程

面向特定问题的开源算法管理和推荐

本文主要是介绍面向特定问题的开源算法管理和推荐,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2021SC@SDUSC
概述

  • 应用场景
    本课题的应用场景在于用户在系统中上传代码的时候可以给用户推荐代码所使用的技术特征(关键词),然后可以根据技术特征进行检索。例如github上代码的标签就是可以视为技术特征。

  • 问题描述
    输入:一个文本库,主要是算法描述(主要是中文)
    输出:
    1、 对于每个文本txt, 抽取关键词作为算法的技术特征
    2、在以此关键词于数据集中进行检索时, 能够反映本文txt的主旨

  • 约束条件
    1、 抽取出的关键词与文本内容的相关性(关键词对于当前文本的代表性)
    2、给出抽取到的关键词合适的次序
    3、抽取出的关键词在数据集中的特异性(关键词在当前本文的重要性,相对于数据集中其他文本的显著性)

总体任务分析

首先进行数据集的爬取与统计,根据爬取得到的数据集,运用不同的模型进行性能的对比分析

  • 数据集的爬取与统计
    1、从https://xueshu.baidu.com/上爬取至少5000个中文论文摘要、标题和关键词,将爬取到的内容存放到execl表格中或数据库中。
    2、需要统计Baiduxueshu数据集中文档的平均长度、文档中平均关键词的个数、关键词在文中存在比,并补充完整下面表格。

表1 数据集描述表

数据集文档总数文档平均长度文档平均关键字个数关键词在文中存在比
Baiduxueshu
  • 不同模型性能对比分析
    相关模型如下

    • PositionRank
      该模型是一个用于从学术文档中提取关键词的无监督模型,论文核心就是在词的权值迭代的时候融入位置信息,融入方式有两种,一种是该词出现的所有位置(Fullmode)都融入,另外一种是该词出现的第一个位置(FP)进行融入。
      针对学术文档的无监督关键短语提取模型,其中将单词出现的所有位置信息融入到有偏PageRank。

      算法基本步骤 :

      • 单词级图构建
      • 位置偏好的PageRank设计
      • 候选词组生成
    • KPE:
      该模型在多部分图结构中对主题信息进行编码,模型在单个图中表示候选关键词和主题,并利用它们的相互加强关系来提高候选排名,引入了一种新机制,将关键词选择偏好纳入模型。

    • ELSKE:
      ELSKE可以有效地提取一组候选关键词,而无需依赖计算成本更高的技术,例如词性标注。它根据PF-IDF 方案对这些候选关键词进行评分和排名,PF-IDF 方案是流行的 TF-IDF方案的调整版本,适用于分析较大的文档或文档集合。

    • Embedrank
      先利用POS tags抽取候选短语,然后计算候选短语的embedding和文章embedding的cosine similarity,利用相似度将候选短语排序,得到关键的短语。

      关于embedding:
      将高维数据映射到较低维空间来解决稀疏输入数据的核心问题。即第一解决了向量空间高维度的问题,第二赋予了单词间几何空间距离大小的实际意义。

  • 评价指标
    精准率与召回率
    精准率和召回率是广泛应用于关键词抽取任务的评价指标,用于衡量关键词抽取模型的准确程度,其中精准率表示算法提取的关键词与人工给定关键词相匹配的个数与算法提取的总关键词数量的比值,召回率则表示算法提取的关键词与人工给定关键词相匹配的个数与人工给出的关键词数量的比值。
    排名倒数
    评估关键词次序的重要程度,即正确关键词在抽取的关键词结果中的排名来评估抽取的性能。表示文本实际的关键词的集合,表示文本实际的关键词的数量,表示文本实际对应的第i个关键词在抽取出的关键词集合中的位置。
    特异性评价指标SN
    评估算法抽取的前topK个关键词在数据集中的特异性,即抽取出的关键词相对于数据集中其他文本的显著性。
  • 不同模型性能对比分析
    小组内成员分别负责四个模型中的一个,最后每个人的到各自运行结果之后,根据下表进行各模型性能对比分析。

PRRRF1MRRSNtop3PRRRF1MRRSNtop5
PositionRank
Embedrank
KPE
ELSKE

具体任务综述

  • embedding

向量空间中的位置(距离和方向)可以把语义编码到一个好的embedding中。embedding是一种矩阵,其中每列是与词汇表中的item对应的向量。
要获取单个词汇item的稠密向量,就检索与该item对应的列。可以参照tensorflow中的tf.nn.embedding_lookup函数。要获得表示多个词汇item(例如句子或段落中的所有单词)的稀疏向量的稠密向量,可以检索每个单独item的embedding,然后将它们相加。
如果稀疏向量包含词汇项的计数,则可以将每个embedding乘以其相应项的计数,然后再相加。

EmbeddeRank

  • 选择该模型 原因背景
    短语提取的任务是自动选择一组最能描述给定自由文本文档的短语。
    有监督的关键短语提取需要大量的带标签的训练数据,并且在训练数据领域之外的泛化能力非常差。
    同时,无监督系统的准确性较差,并且通常不能很好地概括,因为它们要求输入文档属于一个更大的语料库,也作为输入提供。
    针对以上弊端,我们使用EmbeddeRank从单个文档中提取关键短语,即一种新的无监督方法,利用句子嵌入。

  • 具体应用
    EmbedRank在标准数据集上比基于图形的最先进系统获得更高的F分数,适合实时处理大量Web数据。使用EmbedRank,我们还通过为新短语引入基于嵌入的最大边缘相关性(MMR),显式增加了所选关键短语之间的覆盖率和多样性。一项包含200多张选票的用户研究表明,尽管减少短语的语义重叠不会导致F分数的提高,但人类更喜欢我们的高多样性选择。

  • MMR
    在推荐中,多样性并不是目的,而是一种提高用户粘度或是惊喜度的手段。MMR算法又叫最大边界相关算法,此算法在设计之初是用来计算Query文本与被搜索文档之间的相似度,然后对文档进行rank排序的算法。属于文本摘要自动生成算法中一种。

  • 文本摘要自动生成算法

NLP(自然语言处理)领域一个特别重要的任务叫做——文本摘要自动生成。此任务的主要目的是快速的抽取出一篇文章的主要内容,这样读者就能够通过最少的文字,了解到文章最要想表达的内容。由于抽取出来的摘要表达出了文章最主要的含义,所以在做长文本分类任务时,我们可以采用文本摘要算法将长文本的摘要抽取出来,在采用短文本分类模型去做文本分类,有时会起到出奇的好效果。

文本摘要抽取算法主要分为两大类:

  • 生成式
    生成式一般采用的是监督式学习算法,最常见的是需要大量的训练数据的sequence2sequence模型,需要大量的训练数据。
    优点:模型可以学会自己总结文章的内容
    缺点:生成的摘要可能会出现语句不通顺的情况。

  • 抽取式
    抽取式的摘要是从文章中抽出的一些重要句子,能代表整篇文章。
    优点:生成的摘要不会出现语句不通顺的情况
    缺点:缺乏文本总结能力,生成的摘要可能出现信息丢失的情况。

    总结

    前期在相关知识的储备,以及模型的学习了解。例如MMR算法,目前知识简单了解到MMR摘要算法的原理。后续还需要结合代码实现进行理解,并且代码部分可能并非此算法的最优实现。最后可以真正落地的摘要算法,是需要其他的思想和知识算法相融合的,比如文本句子和标题的相似度,词向量文本向量等等。

这篇关于面向特定问题的开源算法管理和推荐的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!