站浏览量 站访问人数
目录
  1. 1. nlp开端
  2. 2. 应用
    1. 2.1. 搭配
    2. 2.2. 提取
    3. 2.3. 生成
    4. 2.4. 图谱
  3. 3. 实践
    1. 3.1. 分词
    2. 3.2. 相似判断
    3. 3.3. feed流匹配
    4. 3.4. 内容质量打分
    5. 3.5. 提取和生成
  4. 4. 最后的话

自然语言处理(nlp)在内容中起着关键作用,以下是在学习和实践应用中涉及到的一些点,记录下方便查询和修缮,其中的缺陷或者不足欢迎邮件一起探讨研究,其中涉及的开源技术如需使用到,请遵照它们各自的开源技术协议。

nlp开端

语言是文字的组织,从字、词、短语、句子、段落、摘要、篇章等粒度,组织后展现出来需要依照句法结构、依存关系等。

在中文语言处理中,不可或缺的是分词技术、抽取技术,其他的技术可以从此产生。

分词可以使用各种开源框架,也可以自定义写,方法有多种匹配、隐马尔可夫、神经网络等,个人认为采取隐马尔可夫和词典自定义的方法比较好些,当然根据应用的场景,对分词的粗细要求来选取即可。

抽取,包括短语的抽取,关键字的抽取,摘要的抽取,从篇章中抽取出重要的成分,注意与生成区分,提取是从大集合中抽取出小集合;抽取的方法已知的有textrank,与pagerank的形式同理,其他的未做过深入研究。

应用

自然语言处理的应用很广,很细,小到一个分词的服务,大到如资讯个性化推荐等。各个互联网做内容的会根据自己的优势,设计自己的平台服务,这里归为如下几个大类:

搭配

搭配用在对象与修饰的应用场景下,中文的句子(有实意的)应当含有实体+修饰成分,不然理解不了句子的含义,因此能够找出实体的修饰成分,就可以读懂句子的意思。

这种应用主要在评论分析、舆情监控等对实体和情感应用强的背景里。

所用的技术已知的有条件随机场。

提取

提取短语,提取关键字,提取摘要,是对篇章进行缩减,对篇章进行主成分分析的一种方式,在内容流中可以起到压缩文本的作用。

另外,对于搜索也帮助很大,可以把内容映射成提取出的关键字(词语/句子),在搜索时提升召回率。

在推荐时,相当于有粗的标签,给用户推荐时能够匹配到喜好,实现上又可以减少存储空间。

已知所用的技术有pagerank,tf-idf等。

生成

自动生成句子,段落,文章,是很火的领域,也是最有价值的方向,可以减少大量人力。

英文的版本可根据提供的关键单词写出一篇原创的文章;中文下可以根据提供的字或词,写出一篇宋词或唐诗。在新闻下,可以根据固定的模板写出报道….
这些应用的背后基于语言的生成,但是目前写出与人相近深度的文章还未达到,这些实现的背后基于统计概率,基于模板填充等。

宋词有固定的字数,固定的韵脚,可以统计词来实现,即根据第一个给定的词,依次从后续找到下一个词或上一个词,类似于做填空题;
唐诗与宋词类似,固定了字数,但是可以做到生成一句后,不在继续,然后把已生成的作为基准进行下一个生成,做到上下文语境,这样操作需要大量的运行时间,相当于4句诗,需要4个模型,另外需要人工去挑选最好的。

报道,目前都是短讯报道,没有像解读报道那样子长,短讯报道有固定的模板,只需填入重要的信息即可。

然而,目前很多神经网络序列模型,可以根据上下文(前后5个词)来得到生成模型,依次推断下一个词;或者根据写草稿形式,在候选的训练集中挑选组织新的表达文字。

生成依赖的是训练集,生成短句,固定模式文本已经实现,长篇文章还需进一步发展,以及需要更大的保存结构,保存词之间的领域概率;在构建词与词之间的领域权重,这是一个值得研究的方向。

图谱

图谱,与族谱类似,把开端以及中间的节点进行详细记录,便于查找源和check节点之间的关联性。

图谱在实际应用中,个人觉得有价值在于意向图谱,可以识别用户的下一步意向,这在内容中可以用于推荐,在搜索中提高命中率。

但,图谱本人学习和研究不深,这里没有太多的深度东西。

必须确定的是,图谱在内容中将会是一大高点,能够构建个人的图谱,尤其是意向图谱,在未来空间很大。

实践

目前实践使用到的最多是分词,各个业务线用到的细点很多,也不断在做整合,提供服务,以及便利化后续应用。

分词

分词可以使用开源技术,当然这个开源技术要切合自己实际架构,融合起来能够方便,可以自定义修改。当前本人使用的已经可以融合到spark和flink中,运行正常。对各大文本内容进行分词,得到word2vec的训练集合,得到地理位置信息匹配,得到关键搜索句子的匹配,得到内容质量的打分等等。

相似判断

句子之间的相似判断,可能最多想到的是MD5做指纹,然后采取相似系数计算,这是快捷也是成本最小的。为了体现nlp,以及丰富性,可以用tf-idf以及word2vec来计算。需要提的tf-idf计算需要全量计算一遍,而在计算两两之间的相似性时只需增量计算即可,另外,tf-idf是可以用稀疏向量存储的,计算时间大大加快。

word2vec其实是单个词的嵌入向量,如何做到句子的级别,一是句子重新训练,得到句子级别的嵌入向量,而是根据词的向量进行计算得到句子的向量。
值得注意的是,word2vec得到的向量是密集型向量,计算相似性时非常非常非常慢,加快的方法是对句子的向量进行缩减,比如成分分析,特征挑选,本地哈希,目的是缩减嵌入向量的维,而不失去代表性。当然,也可以做到增量计算。

feed流匹配

内容的盈利途径是广告点击率,提升广告点击率的方式有多种,在nlp领域,能够做到的一点是,把内容的针对性关键字与广告的显眼字进行匹配投放,以加大目标匹配度。比如在文章内提取带地理位置信息等字样,与投放的广告进行比对,而不浪费盲目投放的概率。

内容质量打分

好的内容能够得到更多的点击,好的内容粘性很强,所以,好的内容优先展示,给到更大的曝光机会是必要的,也是必须的。对内容的打分,需要考量的是内容本身,提供内容的作者,以及展示出来的点击效果,从三方维度进行score得到的质量具有代表性,但不是唯一性。

提取和生成

提取主要针特定的业务背景,提取出关注的词类型,以便针对性判断,这里可以用简单的正则或者统计实现;

生成,可以借鉴宋词的方式,固定下句子的格式,从而依照给定的词挨个给出。比如固定句子的词性排列;而选取时采取的是下一个词的最大或随机概率,这样简单的实现生成一篇文章,虽然内容上不知所云,但是,加上句法和语法的限制,相信是可以进一步提升的。

最后的话

自然语言处理是本人在实验室开始就小鼓捣的一个方向,不断地在整合各个模块,把它们做成便利化,希望能够提供服务,目前只是方便自己在业务中减少工作量,或者接收其他辅助需求。