AC自动机算法简述以及基于神经网络的知识推理总结

1、文本分词有中文分词和英文分词,对于后者,目前多采用nltk进行分词处理;而在这篇文章中,将主要介绍中文分词,其主要有两种思路:查词典和字标注;查词典的方法有:机械的最大匹配法、最少词数法,以及基于有向无环图的最大概率组合(eg: jieba分词),还有基于语言模型的最大概率组合,等等。字标注法就是通过几个标记把句子的正确分词法表示出来。我计划使用前者,而一个好的查词典方法,需要具备两个条件:① 做好特殊排序的词典;② 有效的查找条件。对于①来说,可以构建前缀树(tire);对于②,目前也有对应的经典算法(如AC算法)。将AC自动机用于查词典分词,可有效提高查找效率。

AC自动机算法;回忆之前学习过的KMP模式匹配,它的核心思想是给出一个模板和一个待匹配文本串,查找这个模板在该文本串中存在的情况(是否存在,存在位置或是出现几次等等)。然而,现实生活中往往要面临多个模板以及众多的文本串。此时,如果还想着将其一个个的拿出来用KMP进行匹配的话,势必会大大折损效率。为解决问题,AC自动机算法应运而生,并大量应用于问答检索系统。使用AC算法进行查找之前,需要先构建前缀树(tire),构建方法已在具体代码中实现。多模匹配实现步骤为:①构造前缀树;②设置每一个节点的Failure Node(即fail指针,与KMP中的next有类似功能);③收集每个节点的所有匹配模式串信息;④对目标串进行搜索匹配。目前python已经有了现成的pyahocorasick库可以实现AC算法查找词典的功能。

2、知识推理是知识图谱补全的重要手段,也是知识图谱研究领域的一大热点。而在神经网络发展的过程中,它在知识推理中的应用也越发受人重视。基于神经网络的知识推理方法具备更强的推理能力和泛化能力,对知识库中实体、属性、关系和文本信息的利用率更高,推理效果更好。

基于神经网络的推理主要分为三种:① 基于语义的推理;② 基于结构的推理;③ 基于辅助存储的推理。

基于神经网络的知识推理主要思路是利用神经网络的学习能力和泛化能力来建模知识图谱的事实元组。下面将主要介绍下基于语义的推理方法:

① 基于语义的推理
基于语义的推理建立在挖掘和利用语义信息的基础上,例如实体和关系的名称、描述以及上下文信息等。而文本中蕴含着丰富的语义信息,信息之间又存在深刻的语义关联,因此,文本和语义信息自然而然地成为知识推理领域的主要推理依据。在这篇文章中,将介绍两种基于语义的推理模型:
(1)ConMask 模型
通过利用知识库中已存在的实体和关系进行知识图谱补全定义为“Closed-World KGC”,即“封闭世界知识图谱补全”,此类知识图谱补全方法严重依赖现有知识图谱连接,难以处理知识图谱外部加入的新实体。为了能够应对知识图谱外部的未知新实体,研究人员进一步定义了“Open-World KGC”,即“开放世界知识图谱补全”,该类方法可以接收知识库外部实体并将其链接到知识图谱。基于上述思想提出 ConMask模型,该模型主要分为三部分操作:(1)依赖于关系的内容遮蔽:筛选文本信息,删去无关信息,仅留下与任务有关的内容,其中利用了注意力机制;(2)目标融合:使用全卷积神经网络从相关文本抽取目标实体的嵌入向量;(3)目标实体解析:生成候选实体和抽取实体嵌入之间的相似度排名,相似度最高的认为是最佳结果。
但是,ConMask模型是从文本中获取信息。故当未出现能够准确描述实体或关系的文本时,模型无法获取足够的推理依据,推理效果将大打折扣,该方法难以应对文本信息不足的情形。

(2)HNM 模型
目前,智能问答系统已经成为人工智能领域研究的热门话题之一,知识图谱已经在基于知识的问答领域显示出其强大的威力。现有的问答系统通常依赖于各个特定的组件来解决问题的不同子任务(如分割、实体识别、消歧和关系分类等),最终获得正确答案。问答系统的传统方法一般是构建复杂的自然语言处理管道(pipeline),这会导致错误信息沿着管道传播,并且需要人为干预以适应新的领域。
为了避免管道模型复杂的NLP管道结构、产生错误传播的问题,并且希望模型可以在不同的领域重新训练或重用,研究人员采用了一种完全不同的方法,他们开发了一个整体神经匹配模型(HNM),学习对主谓词对进行排序,以便检索给定问题的相关事实,然后以端到端的方式回答简单的问题。该模型包含一个嵌套的单词/字符级问题编码器,它能够使用来自问题的字符级和字词级信息来进行实体预测和谓词预测,同时允许处理词汇表之外和罕见的单词问题。也就是说,该模型结合了字符级模型的优点以及单词级模型的丰富语义。尽管该方法仅限于回答简单问题,但这项工作可以作为将来开发更高级的神经问答方法的基础,进一步可以处理更复杂的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值