前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >游戏文本关键词提取工作的尝试和探索

游戏文本关键词提取工作的尝试和探索

作者头像
腾讯知文实验室
发布于 2018-02-08 02:42:12
发布于 2018-02-08 02:42:12
3.1K0
举报

一、文本关键词提取的前世今生

文章的表示具有不同的层次,由粗到细可分为类型(分类)、事件(主题)、代表词(关键词)等,关键词是文章表示的重要环节。文本的关键词可以被认为“浓缩”了整篇文章的主旨和要义,是一篇文章高度概括的自然语言表示形式。更加精准的文本关键词,可以为后续推荐系统带来更精准的文本内容特征、召回更高质量的同类型文章;同时,高质量的关键词也可以作为分类标签直接用于内容运营和用户推荐,提升编辑和运营同事的工作效率。

文本关键词提取问题吸引了大量研究者的关注。从最简单的TF-IDF计算词语权重,到TextRank和LDA等无监督的方法,再到目前广泛使用的Seq2Seq等神经网络模型,无一不在关键词提取领域有着众多实践和探索。

二、游戏文本关键词提取的概况

在公司内部的电竞和游戏中心等综合类游戏产品中都沉淀了大量的游戏攻略、新手指引、晋级指南等多种不同类型的游戏文本,如何将合适的游戏文本打上正确的关键词标签,并将内容推送给恰当的用户成为一个重要的课题。

我们在游戏文本关键词提取工作的探索中,尝试了基于图的无监督方法TextRank和基于有监督的Seq2Seq神经网络方法,并针对两种方法的表现做了初步的比较。

基于神经网络的有监督方法通常需要一定数量的标注数据才能学到较好的参数。为满足神经网络训练的需求,结合项目和数据的实际情况,我们在手机QQ平台的游戏中心中收集了约3万余条带分类和标签的游戏文本,经过相似文本去重、低质量文本过滤等处理,最终得到了24000条数据样本。该份语料的文本长度从几百到一千余字不等,每个样本带有3~6个人工标注的关键词,共有约9万余个<文本,关键词>对;语料包含新手指引、晋级指南、游戏介绍等不同内容的文本,并涵盖了王者荣耀、天天炫斗、全民斗战神、天天快跑等热门游戏。实验将24000余条文本随机划分为20000条的训练集、2000条的验证集和2000条的测试集;在预处理过程中,使用jieba工具对文本分词,并在分词前导入了游戏词汇相关的词典以提高分词的精度。

三、两类文本关键词提取的模型

1、基于TextRank的游戏文本关键词提取方法

TextRank算法的思想直接借鉴了PageRank网页排序算法,使用在K长度窗口中词的相邻关系来代表PR算法中的链接指向关系,与PageRank的迭代公式完全相同,即

。其中,

i的重要性权重,

是指向该词的词集合,

是指向该词的词集合,该公式通过迭代完成计算,最后将每个词的重要性权重逆向排序即为词的重要性排序。

基于TextRank的方法简单有效,速度也在可接受的范围内。但这一方法存在两个较为明显的不足:

1、关键词的来源有限,仅为本篇文档所有词汇的集合,难以学习到更多的关键词表示,

也无法以“生成”的方式得到文章抽象的关键词表述。

2.、虽然TextRank考虑了关键词在给定距离窗口的共现等信息,但实际上仍然偏向于给高频词以更高的权重,所以在实际使用中与TF-IDF这类方法相比没有太大的优势。

TextRank思想简单,容易实现,在各类NLP工具包中都有可以直接调用的模块,如基于Python的jieba,基于Java的Hanlp等。

2、 Seq2Seq的背景

Seq2Seq模型自被提出后,已经广泛应用于神经机器翻译、图片文字描述生成和文本摘要等领域。关键词提取与文本摘要任务一脉相承,也已有学者使用各类神经网络模型在这一任务中做了各种尝试。

Seq2Seq模型又常被称作Encoder-Decoder模型,其中的两个Sequence分别对应Encoder(编码器)和Decoder(解码器)两个部分,Encoder和Decoder通常为普通的RNN单元构成,或者是LSTM单元和GRU单元。而基于CNN或其他网络结构的Seq2Seq不在本文的讨论之列。典型的Seq2Seq模型如下图1所示。

图1 Encoder-Decoder模型示意图

在图1中,下框部分为Seq2Seq模型的编码器Encoder,

为源序列的输入,在关键词抽取中对应为源文本;上框部分为Seq2Seq模型的Decoder解码器,

为解码器的输出,对应关键词的输出。以关键词提取为例,每个时间步的输出向量y都将会与一个softmax相连,以计算词表中每一个词的概率(由于语料中词表过大,计算每一个词通常会有计算复杂度过高的问题,有很多学者提出改进方案着手解决这一问题,如https://arxiv.org/pdf/1412.2007.pdf)。

由上图Encoder框内部分可以看到,

即每个时间步计算得到的隐藏层向量

为前一个隐藏层输出

和当前时间步输入

共同作用的结果。而Decoder部分接受的输入向量c(图1)来自Encoder部分的输出向量,一般为Encoder最后一个时间步的隐藏层输出

,在某些工作中也有可能是若干隐藏层向量的组合或者函数变换,即为

。而Decoder部分的隐藏层状态向量计算方式为

,即对于每一个时间步的隐藏层

,都使用同样长度的同一个c来计算。Decoder部分输出向量

的计算同样依赖于来自Encoder同样的信息,如图1所示,这一信息依然是同一个c

由上述讨论可以看出,一般来讲,在文本摘要、机器翻译等工作中,Decoder部分接受的来自源文本的输入信息仅为一个固定长度的向量c(即便输入的文本非常长),由一个固定长度的向量去解码为译文或者关键词摘要的信息,通常会带来较大的性能损失。Bahdanau于2014年提出的attention机制便可以较好的解决这一问题,并在随后的两三年中,在翻译、摘要、关键词提取、图片文本生成乃至情感分析领域都得到了广泛的应用。

基于attention机制的Seq2Seq模型在Encoder编码部分与传统模型并无二致,attention机制的关注点主要集中在Decoder部分,如图2所示。该图的下半部分为Seq2Seq的Encoder部分,当然从图中看,这里的Encoder与图1相比,多了一个双向RNN的部分。这样做的缘由是使网络能够从两个方向共同学到信息,与attention并无关联。

图2 带有attention机制的Seq2Seq模型

与普通Seq2Seq模型相同的是,图2中的模型也会在Decoder阶段读入来自Encoder的c,但是这个c并不是简单由Encoder最后一个隐藏层节点的值再做函数变换而来,而是通过读取Encoder每一个时间步的隐藏层节点状态并加权求和得到。如下公式所示。

结合公式和图2可以清晰的看出,

对应Decoder的t时刻中、来自编码器Encoder

时刻输入的权重,通过线性加权求和,就可以得到

,即t时刻Decoder中接受Encoder向量的部分。由图2可知,这时Decoder部分的隐藏层状态向量

的计算方式为

而公式中的

,由语料经训练得到,并通过一个归一化公式将解码器t时刻来自不同

的权重

之和归为1。

2、基于Copying机制的Seq2Seq-attention模型

上述基于attention的模型在机器翻译、智能问答和文本摘要等多项任务中取得了广泛的应用。然而,对于文本摘要、关键词抽取和智能问答等任务来说,Decoder部分的设计仍然难以避免部分缺憾。

以关键词提取为例,解码器Decoder部分每一个时间步都会产生一个词汇,这个词汇经过softmax计算得出,而词汇的来源则是一个大小为n的词表

。从计算时间成本的角度考虑,这个词表通常不会包含训练集中所有的词汇,训练集中的大量低频词汇只能统一用UNK代替;另一方面,测试集中的词不一定完全在训练集中出现过,当然也未必会在可预测的词表V的范围内。这就带来了一个问题——在文本摘要、关键词提取中常被称为OOV(out of vocabulary)问题。由于OOV的这一现象,当新的测试语料中包含一些重要的词表外(OOV)词汇时,那么无论是提取关键词还是生成摘要,这些重要的OOV词汇只能被预测为UNK。

谈完OOV问题给Seq2Seq模型带来的缺憾,下面说回Copying机制。如果让人类去做文档摘要或者关键词的提炼,他不仅会使用自己的背景知识和过去学到的东西来写这一份摘要,而且会从原文中“照抄”或者“摘录”一部分重要的文字。我们对照机器的摘要(关键词提取)工作,传统模型往往仅利用在训练语料中学到的参数,在生成的时候,逐个预测某一个位置应当选择词表中的哪一个词;若原文中几个重要的关键词并不在词表中,那么很遗憾,这些词没有机会生成在关键词列表中。Jiatao gu等人借鉴人类“照抄”、“拷贝”的形式,在Seq2Seq with attention模型中引入了Copying机制,很大程度的改善了OOV问题对关键词抽取和摘要工作带来的影响。这一网络模型在Encoder部分同样是一个传统的形式,并没有变化;但是在Decoder解码器部分,增加了很多关于Copying机制的计算,如图3所示。

图3 带有Copying机制的Seq2Seq模型

由图3可以看出,Decoder部分该模型在隐藏层状态向量

的更新和

的预测上都与之前的模型有明显不同。如图3的右下方所示,State Update的过程可以很明显的分为这么几个部分:第一部分是左侧蓝色箭头实线,这是来自attentive read的信息,也就是我们通常说的attention信息

;第二部分是

的部分,也与之前的attention模型相同;但是第三部分

的信息,并不仅仅使用上一时间步产出结果的embedding,还与一个selective read向量拼接,这个向量事实上是通过一个与注意力机制类似的方式计算得到,计算解码器该位置与编码器各个时间步隐藏层状态的位置相关信息,为接下来的Copy-Mode提供信息。

图3的右上方Generate-Mode和Copy-Mode是生成关键词文本的两个概率计算公式。左侧的Generate-Mode与经典模型的生成方式相同;而Copy-Mode则计算从源序列中生成各个单词的概率,两个概率相加即为

位置的目标词的概率,如公式所示。

注意,公式中的gc分别代表两个生成方式。而gc的计算方式与生成的词

和两个词表V、X(源文本词表)的关系有关,原文中的Figure2有清晰描述,这里不再赘述。

四、 Copying机制模型在游戏文本关键词提取中的意义

由以上的描述可知,一篇文本中的重要关键词如果不是整个训练集的高频词,不在词表Vocabulary中,那么在传统attention-Seq2Seq束手无策的情况下,Copying机制可以通过直接从原文中“拷贝”,较好的解决这个问题。同时,作为经典的生成模型,它与Textrank等方法相比,又增加了很多从成千上万篇训练语料中学习的知识,可以很好的平衡“抽取”和“生成”两种模型的优点。

下面以一个简单的示例结束这篇文章。

Sample:《王者联盟》5V5王者峡谷三路推塔激情博弈<eos>在《王者联盟中》,5v5对战备受众多玩家喜爱,玩家可自行匹配,也可邀好友一起开黑。在5v5对战中不是个人秀操作就能掌控全场,更多的需要团队之间进行默契配合。合理的阵容搭配,明确的战场分工,玩家对英雄的操作技巧……(节选)

GroundTruth:5v5王者峡谷;王者联盟;新手

Seq2Seq with Copying Mechanism(Top5)

TextRank(Top5)

1. 王者学院

英雄

2. 王者联盟

2. 敌方

3. 5v5王者峡谷

3. 击杀

4. 新手

4. 队友

5. 5v5王者联盟

5. 发育

  1. 1. 王者学院
  2. 英雄
  3. 2. 王者联盟

2. 敌方

  1. 3. 5v5王者峡谷

3. 击杀

  1. 4. 新手

4. 队友

  1. 5. 5v5王者联盟

5. 发育

经过测试集测试可知,基于DNN的Seq2Seq方法比TextRank的P1@5高出4%,R1@5高出8%,F1@5高出5.4%,初步证明了这一方法的有效性。

接下来,仍需要从数据和模型两个层面进一步提升关键词提取的表现,也可以考虑从多模型结果ensemble的角度去增加结果的鲁棒性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯文曲星 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
预训练属于迁移学习的范畴。现有的神经网络在进行训练时,一般基于反向传播(Back Propagation,BP)算法,先对网络中的参数进行随机初始化,再利用随机梯度下降(Stochastic Gradient Descent,SGD)等优化算法不断优化模型参数。而预训练的思想是,模型参数不再是随机初始化的,而是通过一些任务进行预先训练,得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练。
汀丶人工智能
2023/07/17
6.7K0
大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
NLP硬核入门-PointerNet和CopyNet
PointerNet和CopyNet是同一类网络模型,只是在不同的论文里叫法不同,后文统一用PtrNet来表示。
zenRRan
2019/11/12
1.3K0
​深度学习基础 | Seq2seq+Attention
可以看出,整个seq2seq模型分为两大部分:Encoder RNN和Decoder RNN。
NewBeeNLP
2021/11/04
6570
NLP笔记——NLP概述
在字符上使用 CNN 或 LSTM 以获得基于字符的词表示的做法现在相当普遍,特别是对于形态信息重要或有许多未知单词的丰富的语言和任务,效果更加明显。据我所知,序列标签使用基于字符的表示(Lample 等人,2016;普兰克等人,2016),可以减轻在计算成本增加的情况下必须处理固定词汇表的需要,并支持完全基于字符的 NMT (Ling 等人, 2016;Lee 等人,2017)。
UM_CC
2022/09/22
7400
文本生成魔改方案汇总!
文本生成是NLP中较难的点,应用场景多且广泛。本篇笔记录一下文本生成的应用场景和主流方案,主要是基础的学习汇总和解决方案的梳理,相关学习资料在文中有链接或者文末有参考文献(我人工筛选的)都是相对经典的。
zenRRan
2021/01/04
1.9K0
文本生成魔改方案汇总!
四万字全面详解 | 深度学习中的注意力机制(三)
目前深度学习中热点之一就是注意力机制(Attention Mechanisms)。Attention源于人类视觉系统,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性的去获取被观察事物的某些重要部分,比如我们看到一个人时,往往先Attend到这个人的脸,然后再把不同区域的信息组合起来,形成一个对被观察事物的整体印象。
NewBeeNLP
2020/11/24
1.7K0
四万字全面详解 | 深度学习中的注意力机制(三)
工大SCIR | 文本摘要简述
随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,对各类文本进行一个“降 维”处理显得非常必要,文本摘要便是其中一个重要的手段。文本摘要旨在将文本或文本集合转换为包含关键信息的简短摘要。文本摘要按照输入类型可分为单文档摘要和多文档摘要。单文档摘要从给定的一个文档中生成摘要,多文档摘要从给定的一组主题相关的文档中生成摘要。按照输出类型可分为抽取式摘要和生成式摘要。抽取式摘要从源文档中抽取关键句和关键词组成摘要,摘要全部来源于原文。生成式摘要根据原文,允许生成新的词语、短语来组成摘要。按照有无监督数据可以分为有监督摘要和无监督摘要。本文主要关注单文档、有监督、抽取式、生成式摘要。
zenRRan
2019/11/19
1.4K0
Seq2Seq、SeqGAN、Transformer…你都掌握了吗?一文总结文本生成必备经典模型(一)
 机器之心专栏 本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。 本文将分 2 期进行连载,共介绍 10 个在文本生成任务上曾取得 SOTA 的经典模型。 第 1 期:Seq2Seq(RNN)、Seq2Seq(LSTM)、Seq2Seq+
机器之心
2023/03/29
1.2K0
Seq2Seq、SeqGAN、Transformer…你都掌握了吗?一文总结文本生成必备经典模型(一)
NLP 进行文本摘要的三种策略代码实现和对比:TextRank vs Seq2Seq vs BART
来源:Deephub Imba本文约8400字,建议阅读15分钟本文将使用Python实现和对比解释NLP中的3种不同文本摘要策略。 本文将使用 Python 实现和对比解释 NLP中的3种不同文本摘要策略:老式的 TextRank(使用 gensim)、著名的 Seq2Seq(使基于 tensorflow)和最前沿的 BART(使用Transformers )。 NLP(自然语言处理)是人工智能领域,研究计算机与人类语言之间的交互,特别是如何对计算机进行编程以处理和分析大量自然语言数据。最难的 NLP
数据派THU
2022/05/27
8950
NLP 进行文本摘要的三种策略代码实现和对比:TextRank vs Seq2Seq vs BART
Text Summarization文本摘要与注意力机制
自动文本摘要是在保持关键信息内容和整体含义的同时,生成简洁流畅的摘要的任务。 文本摘要目前大致可以分为抽取式与生成式两种类型:
深度学习视觉
2020/03/29
1.5K0
Text Summarization文本摘要与注意力机制
独家 | Python利用深度学习进行文本摘要的综合指南(附教程)
本文介绍了如何利用seq2seq来建立一个文本摘要模型,以及其中的注意力机制。并利用Keras搭建编写了一个完整的模型代码。
数据派THU
2019/07/17
2.4K0
独家 | Python利用深度学习进行文本摘要的综合指南(附教程)
NLP中自动生产文摘(auto text summarization)
最近几年在人工智能领域中大热的工程技术deep learning,将机器对图像,语音,人类语言的认知能力都提升了不少,前前后后也涌现出不少不仅仅是很cool而且是非常实用的应用,比如人脸识别,猫脸识别,无人车,语义搜索等等。其中,深度学习技术对图像和语音的影响最大,但对人类语言的理解(NLP)做的没有那么那么好。所以,不必太过鼓吹人工智能将会如何如何,民众的期待不应太过接近科幻电影,不然只能换来无尽的失望,从而导致寒冬的来临。 However, I would encourage everyone to t
机器学习AI算法工程
2018/03/15
2.8K0
NLP中自动生产文摘(auto text summarization)
指针生成网络(Pointer-Generator-Network)原理与实战
本文主要内容:介绍Pointer-Generator-Network在文本摘要任务中的背景,模型架构与原理、在中英文数据集上实战效果与评估,最后得出结论。参考的《Get To The Point: Summarization with Pointer-Generator Networks》以及多篇博客均在文末给出连接,文中使用数据集已上传百度网盘,代码已传至GitHub,读者可以在文中找到相应连接,实际操作过程中确实遇到很多坑,并未在文中一一指明,有兴趣的读者可以留言一起交流。由于水平有限,请读者多多指正。
用户1432189
2019/09/27
2.7K0
指针生成网络(Pointer-Generator-Network)原理与实战
谷歌开放GNMT教程:如何使用TensorFlow构建自己的神经机器翻译系统
选自谷歌 机器之心编译 参与:机器之心编辑部 近日,谷歌官方在 Github 开放了一份神经机器翻译教程,该教程从基本概念实现开始,首先搭建了一个简单的NMT模型,随后更进一步引进注意力机制和多层 LSTM 加强系统的性能,最后谷歌根据 GNMT 提供了更进一步改进的技巧和细节,这些技巧能令该NMT系统达到极其高的精度。机器之心对该教程进行简要的描述,跟详细和精确的内容请查看项目原网站。 GitHub 链接:https://github.com/tensorflow/nmt 机器翻译,即跨语言间的自动翻译,
机器之心
2018/05/09
1.8K0
谷歌开放GNMT教程:如何使用TensorFlow构建自己的神经机器翻译系统
【NLP】文本自动摘要任务的心得总结
由于最近需要进行组内的知识分享,因而借此机会将文本摘要的一些基本知识以及本人的一些实践经验做成文稿,一方面用来组内分享,一方面也是总结一下过去在该领域的一些心得体会。因个人的能力所限,本文实质上是对文本摘要的不完全总结,如有未能囊括的知识点,还请同学们多提意见,一起进步。
yuquanle
2019/11/14
4.4K0
【NLP】文本自动摘要任务的心得总结
这可能是你见过的最全的注意力机制的总结!
近些年来,注意力机制一直频繁的出现在目之所及的文献或者博文中,可见在 NLP 中算得上是个相当流行的概念,事实也证明其在 NLP 领域散发出不小得作用。这几年的顶会 paper 就能看出这一点。本文深入浅出地介绍了近些年的自然语言中的注意力机制包括从起源、变体到评价指标方面。
崔庆才
2019/05/06
10.2K0
这可能是你见过的最全的注意力机制的总结!
浅谈NLP:从词向量到Transformer| 技术创作特训营第一期
是时候把之前学习NLP的知识整理下了。大模型火了后,又涌出好多Transfomer相关的文章,回想当时刚接触NLP的时候,还是从word2vec开始...很久前看的东西都快忘记了,所以想做一些总结。
languageX
2023/08/14
1.8K1
【TensorFlow 谷歌神经机器翻译】从零开始打造属于你的翻译系统
【新智元导读】谷歌今天公布了一个用 TensorFlow 构建神经机器翻译(NMT)系统的教程,全面解释 seq2seq 模型,并演示如何从零开始构建 NMT 翻译模型。这个教程从 NMT 的背景知识讲起,详细讲解如何构建并训练一个 NMT 模型,并提供代码,绝对有用。 机器翻译——自动在两种语言之间进行翻译的任务——是机器学习中最活跃的研究领域之一。在多种机器翻译方法中,序列到序列(“seq2seq”)模型最近取得了巨大的成功,并已经成为大多数商业翻译系统的事实上的标准,例如谷歌翻译。这是由于 seq2s
新智元
2018/03/27
2.3K0
【TensorFlow 谷歌神经机器翻译】从零开始打造属于你的翻译系统
长文实践 | 详述文文本生成任务之营销文本生成
每天给你送来NLP技术干货! ---- 编辑:AI算法小喵 写在前面 在《一文详解生成式文本摘要经典论文Pointer-Generator》中,我们已经详细地介绍过长文本摘要模型 PGN+Coverage。这个工作小喵20年初的时候不仅研读了,同时也做了相关的复现与优化尝试,没记错的话当时用的是TF框架。碍于年代久远,当时也没有做笔记的习惯,所以没法跟大家分享相关的实践内容。 不过,小喵最近发现了一篇与之相关实践类博文,作者将 PGN+Coverage 用在营销文本生成任务上。整个实验与代码实现写的非常详细
zenRRan
2022/09/13
9180
长文实践 | 详述文文本生成任务之营销文本生成
实战关键词提取
关键词是代表文章重要内容的一组词,在文献检索、自动文摘、文本聚类/分类等方面有着重要的应用。现实中大量的文本不包含关键词,这使得便捷获取文本信息更困难,所以自动提取关键词技术具有重要的价值和意义。
伊泽瑞尔
2022/05/31
8620
实战关键词提取
推荐阅读
相关推荐
大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档