知识图谱与自然言语处理的故事
作者头像
  • 飞机圈子
  • 2020-07-27 16:21:56 4

你指尖跳跃的代码,是我此生不变的信仰,唯我自然语言处理(NLP)永存不朽。


从自然语言处理(NLP)和知识图谱谈起


我对知识图谱的研究偏向较多,但自然语言处理是知识图谱研究中不可或缺的一部分。普遍认为,知识图谱是自然语言处理的重要基础,而知识图谱的应用离不开自然语言处理的支持。

为何如此?我们可以通过定义来理解:

什么是知识图谱?

知识图谱源自语义网络,其主要目标是描绘现实世界中存在的各种实体和概念及其相互关系。

什么是自然语言处理(NLP)?

自然语言处理是指机器接收人类以自然语言形式输入的信息,并通过预设的算法进行加工、计算等一系列操作,以模拟人类对自然语言的理解,并返回期望的结果。

从上述描述可以看出,自然语言处理和知识图谱都致力于实现同一目标:使机器具备与人类相同的理解和交互能力,并实现拟人的交互。

在实际应用中,无论是知识图谱还是自然语言处理,它们的目标都是为了实现智能问答、翻译和推荐系统等功能。知识图谱的构建需要自然语言处理技术的帮助,而自然语言处理同样依赖于知识图谱中的关联分析和推理能力。

因此,在研究知识图谱的过程中,自然语言处理技术是必不可少的。


理解知识图谱,从分词开始


如果你用搜索引擎搜索“苹果和锤子”,你可能会发现搜索结果主要集中在“苹果手机”和“锤子手机”。然而,如果你单独搜索“苹果”或“锤子”,结果中会包含非手机的“苹果”和“锤子”。出现这种现象的原因是搜索引擎的知识图谱中存在“手机”、“苹果”和“锤子”之间的关联关系,使得机器能够将这三者联系在一起并返回相应的结果。

如果搜索的是一句话呢?

例如,“苹果和锤子哪个更好?”这时,机器需要从这句话中正确地提取出“苹果”和“锤子”这两个词,而不是提取出“萍、果和、锤、子”。

搜索“苹果和锤子哪个更好”时,搜索引擎做了许多工作,其中包括理解输入和遍历知识图谱。其中,理解输入就是一个自然语言处理的过程,这一过程大致可分为词法分析、句法分析和语义分析。

搜索引擎接收到输入后,首先将每个句子分解成词语,然后进行词性标注,接着对标注过的句子进行命名实体识别,最后搜索实体间可能存在的关系。因此,在进行命名实体识别前,必须先进行分词和词性标注。

词法分析是自然语言处理的第一步,具体步骤包括分词、词性标注、命名实体识别和词义消歧。其中,命名实体识别和词义消歧是知识图谱构建的关键环节,而分词是词法分析的基础任务。目前,分词算法已经相当成熟,准确率可达90%以上,但剩下的10%仍需不断优化。

例如,对于“南京市长江大桥”这样的句子,分词算法面临着三个主要问题:分词粒度、语境歧义和词典未录入。例如,“长江大桥”是一个词还是两个词?“南京市长江大桥”可以理解为“南京市/长江大桥”或“南京/市长/江大桥”。如果“江大桥”不在词典中,算法能否正确判断它是一个词语?


分词算法综述


如前所述,分词是自然语言处理中最经典也是最基本的任务。不同语言的分词重点各不相同。

对于英文等语言而言,句子中的词语是通过单词自然分割的,因此这类语言的重点更多在于实体识别和词性标注。

而对于中文这样的语言,句子由词语组成,词语由字组成,因此分词是理解句子的基础。

接下来主要讨论中文分词算法。中文分词是一项挑战,即使对以汉语为母语的人来说,对于句子中词语的认同率也只有约70%。对于机器而言,这项任务更是艰巨。

中文分词算法可以按规则分为基于字典的分词和基于字的分词。按技术发展可分为基于规则的分词、基于统计的分词和基于神经网络的分词。

以下是三种基本的分词算法:

  1. 基于规则的方法:最大匹配分词算法
  2. 基于统计的方法:n-gram分词算法
  3. 基于神经网络的方法:BiLSTM+CRF分词算法

最大匹配分词算法

最大匹配算法基于词典,首先需要一个词典作为语料库。算法的基本原理是从左到右匹配最长的词典词语,无法匹配的字则单独划分。

该算法需要两个输入:分词词典和待分词句子。例如,分词词典为{“明天”, “好吃的”, “吃”, “什么”},待分词句子为“明天吃什么?”

n-gram分词算法

n-gram算法是一种基于统计的语言模型算法,通过概率判断词语的组成情况。算法基于一个前提:句子中包含常见词语的可能性大于包含生僻词的可能性。因此,该算法的目的是寻找最有可能的分词结果。

计算概率最直接的方法是数频次。例如,“南京市长江大桥”有多种分词方法,每种分词在语料库中出现的次数为m,语料库的总数为n,则每种分词的概率为m/n。

BiLSTM+CRF分词算法

该算法实际上是两个算法的结合,即BiLSTM和CRF算法。这两种算法涉及马尔科夫链、神经网络等基础知识,目前有机会详细撰写一篇博客来介绍两者的细节,这里暂时简单列出。

CRF相比传统统计方法的优势在于考虑了上下文场景,对多义词和词典未录入的词有更好的效果,但效率较低,需要大量训练和计算时间。

LSTM是RNN的一种变体,在一定程度上解决了RNN在训练过程中梯度消失和梯度爆炸的问题。双向循环神经网络(BiLSTM)从句子的开头和结尾同时处理输入,将上下文信息编码,从而提升预测效果。

基本步骤包括:标注序列、双向LSTM网络预测标签、Viterbi算法求解最优路径。


NLP技术的工程化


自然语言处理被认为是人工智能领域的明珠。

通常认为,人工智能是机器从感知到认知的过程。在感知阶段,计算机视觉技术最为知名,已在很大程度上实现了成熟应用,不仅可以识别物体图像,还能预测物体的下一步动作。相比之下,自然语言处理的要求更高,因为“差之毫厘,谬以千里”。

自然语言处理面临的主要挑战包括问答、翻译、复述和摘要等场景。问答涉及人机交互,包括语音和文字交互,要求机器理解聊天内容及情感,并给出合适的回应。翻译要求机器理解多种语言并在语法、语境和语义上进行转换。复述可以更广泛地理解为一种结构化数据的转换。摘要则是将大量内容提炼成简洁的信息。

这些应用场景涉及一系列自然语言处理技术,包括词法分析、句法分析、文档分析、语义分析、分类和相似度匹配等。

将这些基础任务应用于具体的业务场景,常见的应用包括自动问答、纠错消歧、词典翻译、自动写作、标签分类、情感分析、推荐系统和爬虫系统等。

自然语言处理如何落地到具体应用?

我认为,当前自然语言处理技术的应用落地最关键的是“两端问题”,即顶层产品和底层数据。底层是否拥有面向垂直领域的足够大的语料库,顶层是否有良好的交互系统。

在底层,无论是自然语言处理还是知识图谱,大多数努力的方向都是建立通用的知识库和词典。但在垂直领域,由于数据安全和数据资产的原因,大部分数据是非公开的,无法直接使用。此外,垂直领域的建模需要深入了解业务,这也是需要在一个行业深耕积累的经验。

通过针对具体的业务特点定制化构建面向垂直领域的知识图谱,以及基于这个图谱的自然语言处理应用,才能真正提升相关业务的生产效率。

在顶层,需要通过产品将技术落地。除了产品本身符合正确的业务流程,还需要良好的交互设计来提升用户体验。例如,智能客服应用在多轮交互中无法做到100%的准确性,但可以通过友好的交互设计让用户接受结果。如果交互设计不佳,即使技术上准确率很高,也会被用户抱怨。

例如,语音实时翻译会遇到噪声、远场、口音等问题。因此,将自然语言处理技术落地会涉及许多定制化场景,除了技术层面,对产品经理的要求也非常高。

有趣的是,知识图谱被视为人工智能的基石,而自然语言处理被誉为人工智能的明珠。这句话充分体现了两者之间的相互依存关系:知识图谱需要借助自然语言处理技术来构建,而自然语言处理也需要借助知识图谱来完成推理。

技术算法是通用的,但业务场景却是定制化的。产品经理需要深入思考如何将技术工程化、产品化,最终实现商业变现。

用技术讲述故事的同时,需要更多的实际内容来提升业务目标。

作者:Eric,数据产品经理。金融大数据方向,知识图谱工程化。

本文由 @Eric_Xie 原创发布于人人都是产品经理。未经允许,禁止转载。

    本文来源:图灵汇
责任编辑: : 飞机圈子
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
图谱言语自然处理故事知识
    下一篇