CN107239450B - 基于交互上下文处理自然语言方法 - Google Patents

基于交互上下文处理自然语言方法 Download PDF

Info

Publication number
CN107239450B
CN107239450B CN201710407202.1A CN201710407202A CN107239450B CN 107239450 B CN107239450 B CN 107239450B CN 201710407202 A CN201710407202 A CN 201710407202A CN 107239450 B CN107239450 B CN 107239450B
Authority
CN
China
Prior art keywords
natural language
semantics
language input
user
semantic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710407202.1A
Other languages
English (en)
Other versions
CN107239450A (zh
Inventor
王溪华
郝新利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Doone Information Technology Co ltd
Original Assignee
Shanghai Doone Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Doone Information Technology Co ltd filed Critical Shanghai Doone Information Technology Co ltd
Priority to CN201710407202.1A priority Critical patent/CN107239450B/zh
Publication of CN107239450A publication Critical patent/CN107239450A/zh
Application granted granted Critical
Publication of CN107239450B publication Critical patent/CN107239450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于交互上下文处理自然语言方法,包括下列步骤:从用户接收第一自然语言输入,其中所述第一自然语言输入包括用户非响应于提问所提供的自然语言输入;分析所述第一自然语言输入以便从所述第一自然语言输入中提取多个关键元素;存储所述关键元素;从用户接收第二自然语言输入;根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入相关联的关键元素;以及根据所述第二自然语言输入和所述相关联的关键元素生成自然语言输出。通过该方法,可以扩展机器人获取有用信息的方式,还可以保证情景交互的连续性。

Description

基于交互上下文处理自然语言方法
技术领域
本发明总的来说涉及自然语言处理领域,具体而言涉及一种基于交互上下文处理自然语言方法。
背景技术
随着计算机技术的发展,人工智能机器人开始在市场上兴起,例如微软公司的“小冰”、苹果公司的“Siri”、百度的“度秘”等等。这些人工智能机器人主要分为语音助手类和聊天类。前者主要功能是为用户提供有用信息,而后者旨在与用户闲聊。无论哪类机器人都涉及自然语言处理技术。自然语言处理技术是指,对用户输入的自然语言进行处理,使得机器人能够理解所述自然语言。
首先,现有人工智能机器人的一大局限性在于,这些机器人与用户的交互方式比较单一。例如大多数机器人必须采用问答形式才能从用户获取有用信息。
其次,机器人与用户的交互不具有连贯性,也就是说,用户的输入仅能被机器人用于生成当前闲聊输出或查询结果,而当用户在情景中断或者当上下文改变的情况下再次继续相关闲聊或询问相关问题时,则机器人无法跟进或者需要用户再次输入相同信息。这导致较差的用户体验。
再次,在现有技术中通过“被动触发式逻辑”来实现用户与计算机之间的智能交互是。所谓被动触发式逻辑是指:在满足一定条件下被动触发的、被人工赋予的交互逻辑。被动触发式逻辑一般来用逻辑分叉树实现,其中在逻辑树的根部、每一个分支节点上都设置一系列的“触发条件”,一旦触发后,根据预设的触发条件进入不同的“分支逻辑”。尽管这种模式的技术实现难度较低,但是成本却非常高,例如针对一棵3*5的“逻辑树”(三层交互,每层5种情况)就要设置125个分支节点,这最少需要用上千行的代码来描述,而一个细分领域中一般需要涉及到几百个交互逻辑,且每个交互逻辑的分支情况远不止5种,因此这样一个“逻辑分叉树森林”的复杂程度是巨大的。如何以较低复杂度和成本实现所谓的智能交互,是本领域技术人员一直在探寻的一个目标。
另一方面,自然语言处理的难点在于如何从用户的自然语言输入中准确地提取出关键词,而目前的人工智能机器人在提取关键词方面的效率和准确率都不高,其主要原因如下。正确提取关键词的前提是对自然语言输入进行正确分词和确定正确的语义。关于分词方法,现有机器人大多采用机械分词、即穷举一句话所有可能的分词结果,然后将所有分词结果中的每个词在知识库中进行匹配,最后输出匹配度最好的结果。由于知识库巨大,这导致巨大的计算量,从而极大地提高了计算成本,而且当遇到容易混淆的表达方式、如“长春市里有家长春药店”时,分词系统也容易出错。关于语义确定,由于用户语言输入中的核心词汇可能具有多种含义,例如“土豆”既可以指一种食物、也可以指“土豆”视频网站,因此现有机器人在遇到有歧义的词汇时,容易错误地确定词汇的语义。低效和易错的分词和语义确定导致关键词提取的低效和低正确率,从而导致机器人的智能化程度低,用户体验较差。
发明内容
从现有技术出发,本发明的任务是提供一种基于交互上下文处理自然语言方法,通过该方法,可以扩展机器人获取有用信息的方式、即可以从非针对机器人所提问题的回答、例如闲聊、用户主动提供的信息等等中获取有用信息;此外,还可以保证情景交互的连续性,即情景中断或上下文变换以后,仍然可以向用户提供合适的输出,而无需用户重新提供在之前已经提供过(如通过闲聊或问答提供)的信息。
根据本发明,该任务通过一种基于交互上下文处理自然语言方法来解决,该方法包括下列步骤:
从用户接收第一自然语言输入,其中所述第一自然语言输入包括用户非响应于提问所提供的自然语言输入;
分析所述第一自然语言输入以便从所述第一自然语言输入中提取多个关键元素,其中关键元素包括自然语言输入中的关键词在该自然语言输入的上下文中的语义;
存储所述关键元素;
从用户接收第二自然语言输入;
根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入相关联的关键元素;以及
根据所述第二自然语言输入和所述相关联的关键元素生成自然语言输出。
应当指出,第二自然语言输入是在第一自然语言输出之后的任意时刻输入的自然语言输入,而不一定是紧跟在第一自然语言输入之后的自然语言输入。
根据本发明的方法至少具有下列优点:(1)在本发明中,通过附加于提取用户回答中的关键元素、还提取用户其它输入、如闲聊中的关键元素,可以扩展机器人获取有用信息的方式,例如可以从非针对机器人所提问题的回答、例如闲聊或用户主动提供的信息等等中获取关键元素,所述关键元素可以用于针对用户之后的闲聊或查询生成输出,从而使机器人更加智能;(2)在本发明中,通过提取用户在先自然语言输入中的关键元素并将其用于为用户在后自然语言输入生成自然语言输出,可以保证情景交互的连续性,即情景中断或上下文变换以后,仍然可以向用户提供所期望的输出(如闲聊或查询结果),而无需用户重新提供已经在之前提供过(如通过闲聊或问答提供)的信息;(3)在本发明中,通过提取并保存包括关键词在当前上下文的正确语义的关键元素、而不是仅仅提取并保存关键词本身,可以大大地消除歧义,提高系统输出的正确性,这是因为关键词在不同上下文中具有不同含义、如语义,而通过保存正确的语义,可以在上下文切换时仍然使用关键词的正确语义,在保证情景交互连续性的同时还确保系统输出的正确性。
在本发明的一个优选方案中规定,根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入相关联的关键元素包括下列步骤:
根据第二自然语言输入确定知识点;
根据所述知识点确定生成自然语言输出所需的语义集合;
从第二自然语言输入中提取关键元素;
根据所述语义集合和所提取的关键元素确定所需的剩余语义;以及
从所存储的多个关键元素中确定所需的剩余语义中的一个或多个第一剩余语义。
通过该优选方案,可以以低复杂度和成本实现智能交互,因为在本发明中通过知识点即可确定为了生成相应自然语言输出(即系统输出)所需的语义集合,从而进一步从已存储的关键元素(在本发明中,关键元素包括关键词的正确语义)中查找所需的语义或者进一步向用户询问其余语义,由此即可生成符合用户本意的自然语言输出,让系统显得非常智能化,因此在本发明中完全不需要设置复杂的“逻辑分叉树森林”,这极大地减小了方案的复杂度和编程及运算成本。该方案基于发明人的如下独特洞察力:如果要清楚地描述一个具体问题(或事情),大多需要多个语义、例如三个语义;例如,为了清楚描述“哪里可以办理准生证?”这个问题以至于能够给出答案,就至少需要三个语义“哪里”、“办理”和“准生证”,又如为了清楚表达“重新办理身份证多少钱?”,需要至少三个语义:“多少钱”、“重新办理”、“身份证”等等,以此类推发现,“证件”这个知识点包括至少三个所需语义:(1)“证件名称”,如准生证、身份证、驾驶证等等;(2)“办理事项”:如办理、注销、重新办理、挂失等等;(3)“询问事项”:地点(哪里)、费用(多少钱)、办理程序(怎么办理)等等;因此,每个知识点都是所需语义的集合,而每个所需语义都可以用不同的具体语义来填充,这些具体语义可以在用户的自然语言输入中被查找,以最终确定用户所描述的具体问题或事情;因此,在确定知识点(既可以预设、也可以通过上下文确定)的情况下,就可以根据用户的当前和在先自然语言输入中的关键元素来确定所需语义或者进一步向用户询问其余所需语义。这样一来,完全没有必要采用复杂的“逻辑分叉树森林”,由此极大地降低了方案的复杂度,从而大大降低了编程(如分支的编程)和运算成本(如各分支的匹配)。
在本发明的一个扩展方案中规定,该方法还包括下列步骤:
向用户提问以确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的一个或多个第二剩余语义。
通过该扩展方案,可以在所存储的关键元素还不足以覆盖所需语义集合中的全部语义的情况下向用户提问已获得所需剩余语义,从而生成对用户更加有用的自然语言输出。
在本发明的另一扩展方案中规定,向用户提问以确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的一个或多个第二剩余语义包括下列步骤:
通过分析紧接在第二用户自然语言输入之前的一个或多个用户自然语言输入来确定上一个上下文;
确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的剩余语义中与上一个上下文最相关的剩余语义以作为第二剩余语义;以及
向用户提问以获取第二剩余语义。
通过该扩展方案,可以改进向用户提问以获得剩余语义的方式,也就是说,通过该扩展方案,可以先向用户提问与用户最近谈论的内容相关的剩余语义,让人机对话更贴近人与人之间的对话,从而让系统显得更“智能”。
在本发明的又一扩展方案中规定,根据第二自然语言输入确定知识点包括:
根据预设的上下文或者用户的一个或多个自然语言输入确定知识点集合;以及
根据第二自然语言输入从所述知识点集合中确定知识点。
通过该扩展方案,可以快速地和低成本地确定具体知识点。例如,在便民中心大厅的智能终端上,预设的上下文是“行政事宜”,由此可以确定“行政事宜”这个知识点集合,而这个知识点集合又包括多个具体知识点:如“办证”、“缴费”、“纳税”等等。进而通过用户所提供的一个或多个自然语言输入、如第一和第二自然语言输入确定具体知识点。如此一来,可以方便地确定具体知识点,进而确定所需语义集合。
在本发明的一个优选方案中规定,分析所述第一自然语言输入包括下列步骤:
根据第一语义知识库对所述第一自然语言输入进行语义匹配以识别所述第一自然语言输入的总体语义;
选择限定知识库;
通过确定所述限定知识库中与所述总体语义相关联的条目并去除其余条目来缩减所述限定知识库;
对所述第一自然语言输入进行机械分词以生成所述第一自然语言输入的分词结果集合;
使用经缩减的限定知识库对所述分词结果进行匹配以从分词结果集合中确定分词结果;
使用第二语义知识库对分词结果中的词语进行匹配以确定所述词语的语义;以及
从所述词语的语义中选择一个或多个用作关键元素。
通过该优选方案可以极大地提高分词效率和分词正确率。这是因为,本发明人独创地采用了下列措施:(1)在现有技术中,一般使用专用分词工具(如中科院分词NLPIR、哈工大的LTP等等)来进行分词,但是这些分词工具的分词准确率不高、而且无法细分到具体领域,例如遇到“长春市里有家长春药店”之类易混淆表达方式时,容易分词错误;另一种方式是机械分词、即把用户自然语言输入的每一种文字的排列组合都罗列一遍以保证不会遗漏任何分词可能性,但是机械分词虽然准确率为100%,但是计算量巨大,因为所有分词结果集合均需要与涉及各领域的巨大知识库中的每个条目一一进行匹配比对,但只有一个结果是准确的,其它结果均为额外计算,这样会造成巨大的计算量、例如动辄几亿次计算量,在本发明中,为了消除上述缺点,将机械分词与较小限定知识库相结合、即采用较小的限定知识库来对机械分词的分词结果进行匹配——其中限定知识库是仅仅包括一个或多个分类的知识库,而不是涵盖全部领域的大知识库——,这样既结合了机械分词的高精度,同时又缩小了要进行匹配的库,从而大大降低了计算量;(2)在本发明中,通过提取用户自然语言输入的总体语义、即大致含义并筛除限定知识库中与总体语义不相关联的条目来缩减限定知识库,可以进一步降低将机械分词结果与限定知识库相匹配的计算量,从而进一步降低计算成本。
在此应当指出,本发明中所指的“关键元素”不是指关键词的文字本身,而是指关键词的语义。这是因为,关键词在不同语境或上下文中可能具有不同含义,从而可能将关键词的错误语义用于后续处理,进而导致输出与用户输入不相干的系统输出;相反,如果存储包括正确语义的关键元素,则能为用户提供更准确的自然语言输出(如响应于用户的闲聊或查询生成闲聊输出或查询结果)。
在本发明的一个扩展方案中规定,第二自然语言输入包括闲聊和用户查询。在本发明中,“用户查询”可以理解为祈使句或疑问句形式的用户输入,而“闲聊”可以理解为除了用户查询以外的用户自然语言输入,例如陈述句形式的用户输入。通过该方案,可以将本发明用于聊天机器人和语音助手二者,即本发明既可以用于与用户聊天解闷,也可以为用户提供有用的查询信息。
另外,应当指出,“所述第一自然语言输入包括用户非响应于提问所提供的自然语言输入”的措辞并未排除第一自然语言输入包括用户响应于系统查询提供的自然语言输入,而是本发明的方法可以从用户应答和闲聊、以及其它自然语言输入中提取关键元素。
在本发明的另一扩展方案中规定,根据一个或多个第一自然语言输入的上下文或者根据预设来选择限定知识库。通过该扩展方案,可以更加精准地选择限定知识库,从而提高分词准确率。例如,可以根据用户输入的前三句话来确定用户上下文,或者根据用户选择或系统预设来确定用户上下文,然后根据用户上下文选择合适的限定知识库。
在本发明的一个优选方案中规定,根据第一语义知识库对所述第一自然语言输入进行语义匹配包括下列步骤:
将所述第一自然语言输入与第一语义知识库进行匹配以识别所述第一自然语言中的句型,其中所述第一语义知识库包括预先存储的句型模型;以及
根据所述句型确定所述第一自然语言输入的总体语义。
通过该优选方案,可以容易地确定用户自然语言输入的总体语义、即大致含义,因为一句话的大致含义一般可以通过这句话的句型来确定,例如“我要吃汉堡”这句话的句型为“我要吃…”,从而可以确定这句话的大致含义与“食物”相关联,从而可以除去限定知识库中与“食物”无关联的条目,从而削减限定知识库。而且,句型匹配无需分词即可进行,因此适于在分词前进行来简化分词计算。第一语义知识库可以预先存储各种句型,以供与用户自然语言输入进行匹配。其它确定总体语义的方法也是可设想的,例如提取用户自然语言输入中的可能的动词或名词,通过所述词语确定总体语义。
在本发明的另一优选方案中规定,使用语义知识库对分词结果中的词语进行匹配以确定所述词语的语义包括下列步骤:
使用语义知识库对分词结果中的第一词语进行匹配以确定第一词语的一个或多个语义;
使用语义知识库对分词结果中的第二词语进行匹配以确定第二词语的多个语义;
分别确定第二词语的多个语义中的每个与第一词语的一个或多个语义中的每个的关联性;
确定第二词语的语义和第一词语的语义中彼此具有最大关联性的语义;以及
将所述语义分别确定为第二词语的语义和第一词语的语义。
通过该优选方案,可以极大地消除词语的歧义,从而正确地识别关键元素。这是因为,用户所说的一句话中的各个词语的语义是相互关联的,例如在“我要吃土豆”这句话中,“土豆”既可能指一种食物,也可能指“土豆”视频网站,但是通过分析词语“土豆”的这几个语义与该句话中的另一个词语“吃”的关联程度后发现,“土豆”的“食物”语义与词语“吃”的语义之间的关联程度最高,由此可以确定“土豆”在这句话中是指食物,由此通过该优选方案,可以提高确定语义的正确率,从而促进后续关键元素的正确确定。其它消除歧义的方式也是可设想的,例如通过当前上下文或用户之前提供的自然语言输入来确定各词语的语义。
在本发明的一个扩展方案中规定,总体语义包括下列类别:食物、娱乐、出行、服装。通过该扩展方案,可以覆盖生活中的基本面,从而有效地对限定知识库进行缩减或筛除。其它划分方式也是可设想的。
在本发明的另一扩展方案中规定,使用贪婪算法、退火算法或者经典二叉树算法来使用限定知识库对所述分词结果进行匹配。通过该扩展方案,可以有效地执行匹配过程。
在本发明的又一扩展方案中规定,使用贪婪算法、退火算法或者经典二叉树算法来使用语义知识库对分词结果中的词语进行匹配。通过该扩展方案,可以有效地执行匹配过程。
在本发明的另一扩展方案中规定,在语义匹配和/或使用限定知识库对所述分词结果进行的匹配和/或使用语义知识库对分词结果中的词语进行的匹配失败时,执行异常处理程序,其中输出错误提示或者使用神经网络以在神经网络中寻找就近的匹配节点。通过该扩展方案,可以有效地处理异常情况。
此外,本发明的前述任务还可以通过一种机器可读存储介质来解决,该存储介质具有存储在其上的计算机程序,所述计算机程序被配置为执行根据本发明的方法。
附图说明
下面结合附图参考具体实施例来进一步阐述本发明。
图1示意性地示出了根据本发明的方案的一个应用场景,其中示意性地说明了根据本发明对关键元素的采集;
图2示意性地示出了根据本发明的方案的另一应用场景,其中示意性地说明了根据本发明的上下文连续性;
图3示出了根据本发明的方法的流程图;
图4示出了根据本发明的用于确定针对知识点的所需语义的方法的流程图;以及
图5示出了根据本发明的用于提取关键元素的方法的流程。
具体实施方式
应当指出,各附图中的各组件可能为了图解说明而被夸大地示出,而不一定是比例正确的。在各附图中,给相同或功能相同的组件配备了相同的附图标记。
除非另行规定,在本申请中,量词“一个”、“一”并未排除多个元素的场景。
图1示意性地示出了根据本发明的方案的一个应用场景,其中示意性地说明了根据本发明对关键元素的采集。应当指出,尽管在此将本发明的方法用于移动设备、如智能手机上的语音助手,但是本发明不限于此,而是本发明还可以应用于其它设备、比如台式机、智能家电、服务器、工作站、机场或火车站查询终端等等其它设备,也可以应用于其它场景、例如聊天、智能交互等等。
如图1中所示,用户103在移动设备101的用户界面102上与采用根据本发明的方法的智能语音助手104交互。用户103在对话框105和107中与语音助手104闲聊,也就是说,用户103以非问答式交互方式与语音助手104交互,其中用户103主动地、或者非响应于语音助手104的提问而提供自然语言输入、即对话框105和107中的内容。响应于用户103的自然语言输入105和107,语音助手104分别提供了例如闲聊形式的应答106和108。其中语音助手104对用户103的自然语言输入105和107中的关键元素进行了提取和存储、例如用户用餐状态(已用餐)、用户出发地(上海)、用户目的地(北京)、出发时间的偏好(上午)等等,关于提取和存储关键元素的过程,请参阅图3和图4及其相应描述。
用户103再次输入自然语言输入109、在此例如为用户查询。应当指出,在此用户查询仅仅是示意性的,在其它场景中,用户103在此仍然可以继续与语音助手104闲聊。
响应于用户103的自然语言输入109,语音助手104在所存储的关键元素中查找与自然语言输入109的上下文(如语义)相关联的一个或多个关键元素,并且根据自然语言输入109(即用户查询)在采用查找到的关键元素的情况下生成语音助手104的应答110,其中该应答110从所存储的关键元素中查找到与当前上下文、即机票查询上下文相关联的关键元素:用户出发地(上海)、用户目的地(北京)、出发时间的偏好(上午)。由此,语音助手104在无需再次向用户询问相同信息的情况下即可针对用户查询109生成合适的应答110、即查询结果。
图2示意性地示出了根据本发明的方案的另一应用场景,其中示意性地说明了根据本发明的上下文连续性。在此,图2是紧跟在图1之后的应用场景。
从图2中可以看出,用户103的自然语言输入111表示图1的机票查询上下文已经结束,并且用户103通过自然语言输入113使系统上下文从机票查询上下文切换到影片信息查询上下文。
语音助手104响应于用户103的查询影片信息的自然语言输入113提供了相应的应答114,其中应答114介绍了相应的影片信息。同时,如上所述,语音助手104还提取相应的关键元素、例如热映电影。
从用户103的自然语言输入115中可以看出,系统上下文又从影片信息查询上下文切换回机票查询上下文。
在此,如上所述,语音助手104从所存储的关键元素中查找到与当前上下文、即机票查询上下文相关联的关键元素:用户出发地(上海)、出发时间的偏好(上午)。然后,根据自然语言输入115(即用户查询)在采用查找到的关键元素的情况下生成语音助手104的应答116。在此可以看出,在根据本发明的方法中,即使用户的上下文中断,但由于存储了相应的关键元素,因此在上下文切换回时,仍然能够输出合适的应答、如查询结果,而无需再次向用户询问相同信息。
图3示出了根据本发明的方法200的流程。
在步骤202,从用户接收第一自然语言输入,其中所述第一自然语言输入包括用户非响应于提问所提供的自然语言输入。在此,“用户非响应于提问所提供的自然语言输入”是指,用户不是响应于应用本发明的方法200的系统所提供的自然语言输入、例如闲聊等等。
在步骤204,分析所述第一自然语言输入以便从所述第一自然语言输入中提取多个关键元素。在此,分析第一自然语言的过程例如可以包括:确定总体语义、利用总体语义缩减限定知识库的条目、机械分词、分词结果匹配、确定分词结果的语义、以及从语义中选择关键元素。具体的分词过程请参阅图4及其说明。其它分析自然语言以提取关键元素的方案也是可设想的。在此应当指出,本发明中所指的“关键元素”不是指关键词的文字本身,而是指关键词的语义。这是因为,关键词在不同语境或上下文中可能具有不同含义,从而可能将关键词的错误语义用于后续处理,而如果存储包括正确语义的关键元素,则能为用户提供更准确的自然语言输出(如响应于用户的闲聊或查询生成闲聊输出或查询结果)。此外,从分词结果的语义中筛选出关键元素的步骤可以按照一定的判断规则来进行,例如与当前上下文的关联性、语义本身的重要性等等。
在步骤206,存储所述关键元素。所存储的关键元素既可以一直被存储,也可以在一定时间以后被丢弃,例如在一天、一周或一月以后被丢弃。所存储的关键元素也可以按照关键元素的重要性来确定存储时长,例如重要的关键元素被存储较长时间、甚至持久存储,而重要性较低的关键元素被存储较短时间。
在步骤208,从用户接收第二自然语言输入。第二自然语言输入可以包括闲聊和用户查询。在第二自然语言输入为闲聊的情况下,系统提供的输出也可以为闲聊,而在第二自然语言输入为用户查询的情况下,提供系统的输出可以为查询结果。
在步骤210,根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入相关联的关键元素。在此,可以首先对第二语言输入进行分词和语义识别,并且根据所识别的语义确定当前上下文,并且从所存储的多个关键元素中选择与当前上下文相关联的关键元素。
在步骤212,根据所述第二自然语言输入和所述相关联的关键元素生成自然语言输出。在此,可以将所选出的关键元素用作属性值,所述属性值可以作为生成查询结果的基础,例如在图1的示例中,将如下三个关键元素用作属性值:用户出发地(上海)、用户目的地(北京)、出发时间的偏好(上午)。更多属性值也是可设想,例如5个至9个。
根据本发明的方法至少具有下列优点:(1)在本发明中,通过附加于提取用户回答中的关键元素、还提取用户其它输入、如闲聊中的关键元素,可以扩展机器人获取有用信息的方式,例如可以从非针对机器人所提问题的回答、例如闲聊或用户主动提供的信息等等中获取关键元素,所述关键元素可以用于针对用户之后的闲聊或查询生成输出,从而使机器人更加智能;(2)在本发明中,通过提取用户在先自然语言输入中的关键元素并将其用于为用户在后自然语言输入生成自然语言输出,可以保证情景交互的连续性,即情景中断或上下文变换以后,仍然可以向用户提供所期望的输出(如闲聊或查询结果),而无需用户重新提供已经在之前提供过(如通过闲聊或问答提供)的信息;(3)在本发明中,通过提取并保存包括关键词在当前上下文的正确语义的关键元素、而不是仅仅提取并保存关键词本身,可以大大地消除歧义,提高系统输出的正确性,这是因为关键词在不同上下文中具有不同含义、如语义,而通过保存正确的语义,可以在上下文切换时仍然使用关键词的正确语义,在保证情景交互连续性的同时还确保系统输出的正确性。
图4示出了根据本发明的用于确定针对知识点的所需语义的方法300的流程,其中虚线框表示可选步骤。
在步骤402,根据第二自然语言输入确定知识点。知识点例如可以通过如下方式来确定:首先,根据预设的上下文或者用户在先提供的多个自然语言输入确定知识点集合;然后,根据第二自然语言输入从所述知识点集合中确定知识点。知识点可以以一定数据格式存储在专门的知识点知识库中。
在步骤404,根据所述知识点确定生成自然语言输出所需的语义集合。例如,“证件”这个知识点可以包括三个所需语义:(1)“证件名称”,如准生证、身份证、驾驶证等等;(2)“办理事项”:如办理、注销、重新办理、挂失等等;(3)“询问事项”:地点(哪里)、费用(多少钱)、办理程序(怎么办理)等等。在此应当指出,根据不同知识点,可能需要不同数目、如2个或4个或更多的语义才能生成相应自然语言输出。
在步骤406,从第二自然语言输入中提取关键元素。该提取与方法200中从第一自然语言输入提取关键元素类似,在此就不加以赘述。
在步骤408,根据所述语义集合和所提取的关键元素确定所需的剩余语义。也就是说,剩余语义是所需的语义集合减去从第二自然语言输入中提取的相关关键元素的语义的结果,也就是说,为了生成自然语言输出,除了所提取的关键元素中的相关关键元素以外还需要哪些语义。
在步骤410,从所存储的多个关键元素中确定所需的剩余语义中的一个或多个第一剩余语义。该确定步骤可以按照关键元素的语义与知识点的关联程度来进行。例如,用户在第一自然语言输入中表达了关于身份证的询问,则所存储的关键元素“身份证”与知识点“证件”关联程度较高,则可被选择以填充剩余语义。
在可选步骤412,向用户提问以确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的一个或多个第二剩余语义。该提问步骤可以在所存储的关键元素不足以覆盖所需语义集合中的全部语义的情况下向用户提问已获得所需剩余语义,从而生成对用户更加有用的自然语言输出。该提问步骤可以以按关联性大小排序的方式、即首先提问剩余语义中与上一上下文关联性较大的语义,然后提问关联度较小的语义。这样一来,可以让机器更符合人类交谈方式,从而显得更加“智能”。
通过方法400,可以以低复杂度和成本实现智能交互,因为在方法400中,通过知识点即可确定为了生成相应自然语言输出(即系统输出)所需的语义集合,从而进一步从已存储的关键元素(在本发明中,关键元素包括关键词的正确语义)中查找所需的语义或者进一步向用户询问其余语义,由此即可生成符合用户本意的自然语言输出,让系统显得非常智能化,因此在本发明中完全不需要设置复杂的“逻辑分叉树森林”,这极大地减小了方案的复杂度和编程及运算成本。该方案基于发明人的如下独特洞察力:如果要清楚地描述一个具体问题(或事情),大多需要多个语义、例如三个语义;例如,为了清楚描述“哪里可以办理准生证?”这个问题以至于能够给出答案,就至少需要三个语义“哪里”、“办理”和“准生证”,又如为了清楚表达“重新办理身份证多少钱?”,需要至少三个语义:“多少钱”、“重新办理”、“身份证”等等,以此类推发现,“证件”这个知识点包括至少三个所需语义:(1)“证件名称”,如准生证、身份证、驾驶证等等;(2)“办理事项”:如办理、注销、重新办理、挂失等等;(3)“询问事项”:地点(哪里)、费用(多少钱)、办理程序(怎么办理)等等;因此,每个知识点都是所需语义的集合,而每个所需语义都可以用不同的具体语义来填充,这些具体语义可以在用户的自然语言输入中被查找,以最终确定用户所描述的具体问题或事情;因此,在确定知识点(既可以预设、也可以通过上下文确定)的情况下,就可以根据用户的当前和在先自然语言输入中的关键元素来确定所需语义或者进一步向用户询问其余所需语义。这样一来,完全没有必要采用复杂的“逻辑分叉树森林”,由此极大地降低了方案的复杂度,从而大大降低了编程(如分支的编程)和运算成本(如各分支的匹配)。
图5示出了根据本发明的用于提取关键元素的方法400的流程。
在步骤402,根据第一语义知识库对所述第一自然语言输入进行语义匹配以识别所述第一自然语言输入的总体语义。所述总体语义例如可以通过识别第一自然语言输入的句型来识别,例如“我要吃汉堡”这句话的句型为“我要吃…”,从而可以确定这句话的大致含义与“食物”相关联,从而可以除去限定知识库中与“食物”无关联的条目,从而削减限定知识库。所述匹配过程可以采用现有技术来进行、例如贪婪算法、退火算法或者经典二叉树算法。为了不模糊本发明,在此不对这些算法展开介绍。在匹配失败的情况下可以输出错误信息或者进入异常处理程序,例如神经网络进行进一步查找。
在步骤404,选择限定知识库。例如,限定知识库可以根据一个或多个第一自然语言输入的上下文或者根据预设来选择。
在步骤406,通过确定所述限定知识库中与所述总体语义相关联的条目并去除其余条目来缩减所述限定知识库。例如限定知识库中的每个条目均属于某类别,而通过总体语义可以确定相关联的一个或多个类别,并且其它类别被从该限定知识库中筛除。由此,减小了限定知识库中的数据条目,从而降低匹配的计算量。
在步骤408,对所述第一自然语言输入进行机械分词以生成所述第一自然语言输入的分词结果集合。机械分词是指穷举一句话所有可能的分词结果,因此具有精度高的特点,因为不会遗漏任何分词结果,但是在知识库巨大的情况下,容易产生计算量大的缺点,因为每个分词结果都需要与巨大知识库中的每个条目相匹配。机械分词是从现有技术中公知的技术,在此不加以赘述。
在步骤410,使用经缩减的限定知识库对所述分词结果进行匹配以从分词结果集合中确定分词结果。通过使用经缩减的限定知识库来对机械分词的分词结果集合进行匹配,可以进一步降低计算量。所述匹配过程可以采用现有技术来进行、例如贪婪算法、退火算法或者经典二叉树算法。在匹配失败的情况下可以输出错误信息或者进入异常处理程序,例如神经网络进行进一步查找。
在步骤412,使用第二语义知识库对分词结果中的词语进行匹配以确定所述词语的语义。其中第二语义知识库可以与第一语义知识库为相同的语义知识库,但是也可以为不同的语义知识库,例如第一语义知识库仅包含用于识别总体语义的条目、如句型,而第二语义知识库包含相应词语的语义。所述匹配过程可以采用现有技术来进行、例如贪婪算法、退火算法或者经典二叉树算法。在匹配失败的情况下可以输出错误信息或者进入异常处理程序,例如神经网络进行进一步查找。
在步骤414,从所述词语的语义中选择一个或多个用作关键元素。从分词结果的语义中筛选出关键元素的步骤可以按照一定的判断规则来进行,例如与当前上下文的关联性、语义本身的重要性等等,其中筛分规则越精细,则所需储存的关键元素的量就越少。但是在一个实施例中,也可以存储所有词语作为关键词。
根据本发明的用于提取关键元素的方法400可以极大地提高分词效率和分词正确率。这是因为,本发明人独创地采用了下列措施:(1)在现有技术中,一般使用专用分词工具(如中科院分词NLPIR、哈工大的LTP等等)来进行分词,但是这些分词工具的分词准确率不高、而且无法细分到具体领域,例如遇到“长春市里有家长春药店”之类易混淆表达方式时,容易分词错误;另一种方式是机械分词、即把用户自然语言输入的每一种文字的排列组合都罗列一遍以保证不会遗漏任何分词可能性,但是机械分词虽然准确率为100%,但是计算量巨大,因为所有分词结果集合均需要与涉及各领域的巨大知识库中的每个条目一一进行匹配,但只有一个结果是准确的,其它结果均为额外计算,这样会造成巨大的计算量、例如动辄几亿次计算量,在本发明中,为了消除上述缺点,将机械分词与较小限定知识库相结合、即采用较小的限定知识库来对机械分词的分词结果进行匹配,这样既结合了机械分词的高精度,同时又缩小了要进行匹配的库,从而大大降低了计算量;(2)在本发明中,通过提取用户自然语言输入的总体语义、即大致含义并筛除限定知识库中与总体语义不相关联的条目来缩减限定知识库,可以进一步降低将机械分词结果与限定知识库相匹配的计算量,从而进一步降低计算成本。
虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是对本领域技术人员显而易见的是,这些实施方式仅仅是作为示例示出的。本领域技术人员可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

Claims (11)

1.一种基于交互上下文处理自然语言方法,包括下列步骤:
从用户接收第一自然语言输入,其中所述第一自然语言输入包括用户非响应于提问所提供的自然语言输入;
分析所述第一自然语言输入以便从所述第一自然语言输入中提取多个关键元素,其中关键元素包括自然语言输入中的关键词在该自然语言输入的上下文中的语义,其中分析所述第一自然语言输入包括下列步骤:
根据第一语义知识库对所述第一自然语言输入进行语义匹配以识别所述第一自然语言输入的总体语义;
选择限定知识库;
通过确定所述限定知识库中与所述总体语义相关联的条目并去除其余条目来缩减所述限定知识库;
对所述第一自然语言输入进行机械分词以生成所述第一自然语言输入的分词结果集合;
使用经缩减的限定知识库对所述分词结果进行匹配以从分词结果集合中确定分词结果;
使用第二语义知识库对分词结果中的词语进行匹配以确定所述词语的语义;以及
从所述词语的语义中选择一个或多个用作关键元素;
存储所述关键元素;
从用户接收第二自然语言输入,其中第二自然语言输入不是紧跟在第一自然语言输入之后的自然语言输入,并且在第一自然语言与第二自然语言之间存在上下文变换;
确定第二自然语言输入的上下文;
根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入的上下文相关联的关键元素;以及
根据所述第二自然语言输入和所述相关联的关键元素生成自然语言输出。
2.根据权利要求1所述的方法,其中根据所述第二自然语言输入从所存储的多个关键元素中选择一个或多个与所述第二自然语言输入的上下文相关联的关键元素包括下列步骤:
根据第二自然语言输入确定知识点;
根据所述知识点确定生成自然语言输出所需的语义集合;
从第二自然语言输入中提取关键元素;
根据所述语义集合和所提取的关键元素确定所需的剩余语义;以及
从所存储的多个关键元素中确定所需的剩余语义中的一个或多个第一剩余语义。
3.根据权利要求2所述的方法,还包括下列步骤:
向用户提问以确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的一个或多个第二剩余语义。
4.根据权利要求3所述的方法,其中向用户提问以确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的一个或多个第二剩余语义包括下列步骤:
通过分析紧接在第二用户自然语言输入之前的一个或多个用户自然语言输入来确定上一个上下文;
确定所需的剩余语义中的除了所述一个或多个第一剩余语义以外的剩余语义中与上一个上下文最相关的剩余语义以作为第二剩余语义;以及
向用户提问以获取第二剩余语义。
5.根据权利要求2所述的方法,其中根据第二自然语言输入确定知识点包括:
根据预设的上下文或者用户的一个或多个自然语言输入确定知识点集合;以及
根据第二自然语言输入从所述知识点集合中确定知识点。
6.根据权利要求1至5之一所述的方法,其中第二自然语言输入包括闲聊和用户查询。
7.根据权利要求5所述的方法,其中根据一个或多个第一自然语言输入的上下文或者根据预设来选择限定知识库。
8.根据权利要求5所述的方法,其中根据第一语义知识库对所述第一自然语言输入进行语义匹配包括下列步骤:
将所述第一自然语言输入与第一语义知识库进行匹配以识别所述第一自然语言中的句型,其中所述第一语义知识库包括预先存储的句型模型;以及
根据所述句型确定所述第一自然语言输入的总体语义。
9.根据权利要求5所述的方法,其中使用语义知识库对分词结果中的词语进行匹配以确定所述词语的语义包括下列步骤:
使用语义知识库对分词结果中的第一词语进行匹配以确定第一词语的一个或多个语义;
使用语义知识库对分词结果中的第二词语进行匹配以确定第二词语的多个语义;
分别确定第二词语的多个语义中的每个与第一词语的一个或多个语义中的每个的关联性;
确定第二词语的语义和第一词语的语义中彼此具有最大关联性的语义;以及
将所述语义分别确定为第二词语的语义和第一词语的语义。
10.根据权利要求5所述的方法,其中在语义匹配和/或使用限定知识库对所述分词结果进行的匹配和/或使用语义知识库对分词结果中的词语进行的匹配失败时,执行异常处理程序,其中输出错误提示或者使用神经网络以在神经网络中寻找就近的匹配节点。
11.一种机器可读存储介质,其具有存储在其上的计算机程序,所述计算机程序被配置为执行根据权利要求1-10之一所述的方法。
CN201710407202.1A 2017-06-02 2017-06-02 基于交互上下文处理自然语言方法 Active CN107239450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710407202.1A CN107239450B (zh) 2017-06-02 2017-06-02 基于交互上下文处理自然语言方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710407202.1A CN107239450B (zh) 2017-06-02 2017-06-02 基于交互上下文处理自然语言方法

Publications (2)

Publication Number Publication Date
CN107239450A CN107239450A (zh) 2017-10-10
CN107239450B true CN107239450B (zh) 2021-11-23

Family

ID=59985241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710407202.1A Active CN107239450B (zh) 2017-06-02 2017-06-02 基于交互上下文处理自然语言方法

Country Status (1)

Country Link
CN (1) CN107239450B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020042074A (ja) * 2018-09-06 2020-03-19 トヨタ自動車株式会社 音声対話装置、音声対話方法および音声対話プログラム
CN109583750B (zh) * 2018-11-27 2023-06-16 创新先进技术有限公司 用户问句与知识点的匹配方法和装置
CN109726002B (zh) * 2018-12-30 2021-04-13 联想(北京)有限公司 一种处理流程调整方法及装置
CN110069600A (zh) * 2019-03-26 2019-07-30 上海拍拍贷金融信息服务有限公司 对话方法及装置、计算机可读存储介质
CN111460169B (zh) * 2020-03-27 2023-06-02 科大讯飞股份有限公司 语义表达式生成方法、装置及设备
CN112085090A (zh) * 2020-09-07 2020-12-15 百度在线网络技术(北京)有限公司 翻译方法、装置以及电子设备
CN112527980A (zh) * 2020-11-10 2021-03-19 联想(北京)有限公司 一种信息应答处理方法、智能设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503046A (zh) * 2016-09-21 2017-03-15 北京光年无限科技有限公司 基于智能机器人的交互方法及系统
CN106796787A (zh) * 2014-05-20 2017-05-31 亚马逊技术有限公司 在自然语言处理中使用先前对话行为进行的语境解释

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042115A2 (en) * 2011-09-19 2013-03-28 Personetics Technologies Ltd. Computerized data-aware agent systems for retrieving data to serve a dialog between human user and computerized system
CN102866990B (zh) * 2012-08-20 2016-08-03 北京搜狗信息服务有限公司 一种主题对话方法和装置
CN102968409B (zh) * 2012-11-23 2015-09-09 海信集团有限公司 智能人机交互语义分析方法及交互系统
CN103049433B (zh) * 2012-12-11 2015-10-28 微梦创科网络科技(中国)有限公司 自动问答方法、自动问答系统及构建问答实例库的方法
US10409875B2 (en) * 2014-10-31 2019-09-10 Marketmuse, Inc. Systems and methods for semantic keyword analysis
US20170068891A1 (en) * 2015-09-04 2017-03-09 Infotech Soft, Inc. System for rapid ingestion, semantic modeling and semantic querying over computer clusters
CN105224683A (zh) * 2015-10-28 2016-01-06 北京护航科技有限公司 一种自然语言分析智能交互方法及装置
CN105550168B (zh) * 2015-12-10 2019-01-15 百度在线网络技术(北京)有限公司 一种确定对象的概念词的方法和装置
CN105447207B (zh) * 2016-01-08 2018-07-31 北京光年无限科技有限公司 一种面向智能机器人的问答交互方法及系统
CN105701253B (zh) * 2016-03-04 2019-03-26 南京大学 中文自然语言问句语义化的知识库自动问答方法
CN105704013B (zh) * 2016-03-18 2019-04-19 北京光年无限科技有限公司 基于上下文的话题更新数据处理方法及装置
CN105930452A (zh) * 2016-04-21 2016-09-07 北京紫平方信息技术股份有限公司 一种识别自然语言的智能应答方法
CN106354835A (zh) * 2016-08-31 2017-01-25 上海交通大学 基于上下文语义理解的人工对话辅助系统
CN106485328B (zh) * 2016-10-31 2020-06-19 上海智臻智能网络科技股份有限公司 信息处理系统及方法
CN109753560B (zh) * 2016-11-04 2020-08-07 上海智臻智能网络科技股份有限公司 智能问答系统的信息处理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796787A (zh) * 2014-05-20 2017-05-31 亚马逊技术有限公司 在自然语言处理中使用先前对话行为进行的语境解释
CN106503046A (zh) * 2016-09-21 2017-03-15 北京光年无限科技有限公司 基于智能机器人的交互方法及系统

Also Published As

Publication number Publication date
CN107239450A (zh) 2017-10-10

Similar Documents

Publication Publication Date Title
CN107239450B (zh) 基于交互上下文处理自然语言方法
CN109918673B (zh) 语义仲裁方法、装置、电子设备和计算机可读存储介质
CN108334487B (zh) 缺失语意信息补全方法、装置、计算机设备和存储介质
US20200301954A1 (en) Reply information obtaining method and apparatus
CN107291783B (zh) 一种语义匹配方法及智能设备
CN111625635A (zh) 问答处理、语言模型的训练方法、装置、设备及存储介质
CN112487173B (zh) 人机对话方法、设备和存储介质
WO2018033030A1 (zh) 自然语言文句库的生成方法及装置
CN112035599B (zh) 基于垂直搜索的查询方法、装置、计算机设备及存储介质
CN111159363A (zh) 一种基于知识库的问题答案确定方法及装置
CN112417128B (zh) 话术推荐方法、装置、计算机设备及存储介质
CN107291775B (zh) 错误样本的修复语料生成方法和装置
CN107590124B (zh) 按场景对同义词替换并根据按场景归类的标准词组比对的方法
KR20180094664A (ko) 텍스트 데이터로부터 정보를 추출하기 위한 정보 추출 방법 및 장치
CN110874401A (zh) 信息处理方法、模型训练方法、装置、终端及计算设备
CN111428504A (zh) 一种事件抽取方法和装置
CN112256845A (zh) 意图识别方法、装置、电子设备和计算机可读存储介质
CN112149386A (zh) 一种事件抽取方法、存储介质及服务器
CN115470338B (zh) 一种基于多路召回的多场景智能问答方法和系统
CN114090755A (zh) 基于知识图谱的回复语句确定方法、装置及电子设备
CN112685550A (zh) 智能问答方法、装置、服务器及计算机可读存储介质
CN111966782A (zh) 多轮对话的检索方法、装置、存储介质及电子设备
CN111966781A (zh) 数据查询的交互方法及装置、电子设备和存储介质
CN113934834A (zh) 一种问句匹配的方法、装置、设备和存储介质
CN113705164A (zh) 一种文本处理方法、装置、计算机设备以及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant