美文网首页自然语言处理
利用槽位匹配做文本匹配

利用槽位匹配做文本匹配

作者: 程序媛大菲 | 来源:发表于2019-11-12 22:47 被阅读0次

    一、设计目的:

       解析待匹配query中的关键槽位,例如平安福可以投保么,其中平安福属于保险槽位,投保属于投保意图槽位,同时,利用槽位匹配实现两个query的匹配。
    

    二、数据分析:

       经过对目前用户语料的分析,我们发现保险垂直领域的问题存在一些高频用户问,且这些用户问题具有一定的pattern,通过解析其pattern并利用pattern进行匹配可以获得准确率较高准确率的候选答案。
    

    三、设计方案

    1)方案流程

    image.png

    2)方案细节:

    (1)关键词词典提取:

       方案一:基于统计的方法:利用embedding和聚类,提取高频词语补充词典。
    
               通过Bert训练的向量,利于向量表征的词语进行聚类分析,这里用的主要聚类方法有LPA以及Kmeans
    
       方案二:基于哈工大的LTP的依存句法分析方法,提取粒度较大的词语,并利用聚类打上对应tag。
    
               句法主要包括句子的结构分析和依存句法分析,其中依存句法分析通过依存弧对句子进行连接,进而把整个句子连接起来,形 
    
               成依存树,其中依存弧是有向的,由修饰词指向被修饰词。如下图平安福受益人变更需要的材料,其切词结果为平安福、受益
    
               人、并更、需要、的、材料,其中受益人变更可作为保险领域的一个较为重要的短语,在依赖句法分析中,受益人、变更都作
    
               为需要的SBV关系的被修饰词,因此我们可以把相近的SBV关系的依赖上游作为一个短语,同理,“平安福受益人”也可以作   
    
                为一个短语,即ATT修饰关系的相邻词可以作为一个短语,这句话可以提出平安福受益人,受益人变更两个短语。
    
    image.png
        方案三:利用HowNet扩充词典。
    
              HowNet秉承还原论思想,认为词汇/词义可以用更小的语义单位来描述。这种语义单位被称为“义原”(Sememe),顾  
    
              名思义就是原子语义,即最基本的、不宜再分割的最小语义单位。在不断标注的过程中,HowNet逐渐构建出了一套精细的义  
    
              原体系(约2000个义原)。HowNet基于该义原体系累计标注了数十万词汇/词义的语义信息。通过howNet利用已有的词语,  
    
              可以获得其近义词,扩充词典。
    

    (2)规则配置文件(slotConfig.yml):

    Part1:应用逻辑

     APP相关:
    
     - attribute: must
    
        slotName: platform
    
     -attribute: must
    
        slotName: someThingAboutAPP
    
     如上所述,每一个意图对应的配置文件下是list,list每一个元素由槽位属性和槽位名称组成。在完成query解析逻辑之后根据配置
    
     文件中的对应意图的规则确定问题的意图。
    

    Part2:配置规则扩充方法

      首选使用文本聚类,将相近的词语聚为同一个类别,利用已有词典mask不同类别下的query,得到不同类别的pattern,频率   
    
      较。 高的pattern可作为该类别的配置规则。
    

    Part3:提高准确率需要添加的额外规则

      1)意图分类准确率不够高:根据query打上标签的词语数量,添加不同类别的阈值。
    

    (3)方案实验

      1) 实验数据:以往用户日志(大于100百万条)以及FAQ标准问以及相似问。
    
      2) 测试数据:利用pattern等方法统计的高中低频数据10万条。
    
      3) 实验效果:可以识别到意图的覆盖率33.7%,可匹配到答案的覆盖率15.7%。
    

    (4)存在的问题

       1)多意图冲突问题:eg:平安福的优点是什么。  其中平安福是什么可以判定为保险定义类,平安福的优点可以判定为保险亮点   
    
            类。
    
       2)模型的泛化能力不足:在要求准确率的情况下存在规则的泛化能力不足。
    
       3)模型的覆盖率较低:利用槽位解析的情况下,可覆盖的数据量较少。
    

    四、计划

    目前有一定的数据积累,所以针对以上问题,接下来主要从以下几个方面展开工作:

        1. 利用分类模型提高泛化能力。
    
        2.利用深度学习方法,基于现有数据的序列标注以及其他深度学习方法扩充槽位规则。
    

    相关文章

      网友评论

        本文标题:利用槽位匹配做文本匹配

        本文链接:https://www.haomeiwen.com/subject/zmjcictx.html