CN109241239A - 考察文字排列顺序的文本相似度匹配方法 - Google Patents
考察文字排列顺序的文本相似度匹配方法 Download PDFInfo
- Publication number
- CN109241239A CN109241239A CN201810833315.2A CN201810833315A CN109241239A CN 109241239 A CN109241239 A CN 109241239A CN 201810833315 A CN201810833315 A CN 201810833315A CN 109241239 A CN109241239 A CN 109241239A
- Authority
- CN
- China
- Prior art keywords
- machine instruction
- password
- user
- text
- word
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种考察文字排列顺序的文本相似度匹配方法,涉及搜索引擎领域。本发明解决了目前单纯应用ES算法无法解决字符排列顺序的问题,其技术方案要点为:包括如下步骤:对用户输入口令和机器指令分别进行分词处理且建立字典向量,并依次将每条机器指令字典向量与用户输入口令字典向量计算夹角余弦,将计算结果作为第一次打分结果;提取第一次打分结果中得分最高的机器指令,并判断指令个数是否唯一,若是,则提取得分最高的机器指令并反馈给机器,否则对得分最高的各个机器指令及用户口令就文本排列顺序作比对并进行第二次打分,最后,提取得分最高的机器指令并反馈给机器。本发明的有益效果是,能够找出最佳机器指令。适用于搜索引擎。
Description
技术领域
本发明涉及搜索引擎技术,特别涉及根据用户输入口令匹配最佳的机器指令以进行搜索的技术。
背景技术
目前搜索引擎的主要算法是Elasticsearch(ES)算法,它的核心是一个称为TF/IDF的打分公式。简单地说,TF表征的是一个关键词在一篇文档中的重要程度,如果一个关键词在一篇文档中出现的次数越多,那么搜索这个关键词时这篇文档的得分就应该越高;IDF表征的是文档频度,它的意思是如果一个关键词在越多的文档中出现,那么这个关键词在搜索过程中就应显得越不重要,相应的得分也就该越低。因为如果一个关键词在越多的文档中出现,那么这个关键词就可能越不“关键”,搜索它的意义也就越小,因此赋予它的权重也应当越小。
那么如何表征一个关键词在一篇文档中的重要程度呢?这就要用到向量和夹角余弦的知识。ES算法提取索引中的关键词构建向量,同时以相应的关键词对文档也构建向量,而关键词在文档中的个数会影响文档向量的方向,只需设计让文档向量随着关键词在文档中出现的次数增多而向索引向量靠拢,则两向量的夹角就会越小而夹角余弦则越大,文档的得分自然就越高。
ES算法就不同的应用环境有许多不同的变种,这些变化基本大同小异,没有脱离其算法核心思想。而从上述的分析中也看到了ES算法存在的一个缺陷,那就是ES算法没有考虑关键词排列顺序的问题。可能在大文档的索引过程中关键词的排列顺序并不重要,检索出的文档只需包含索引中的关键词就已经足够了。
然而事实上,语言本身应该分两个层面看待——物理层面和信息层面,物理层面不仅包括语言包含有哪些文字、这些文字分别的个数还应包括这些文字的排列顺序,这是语言最基本的信息;信息层面则指语言背后的含义,也就是人类要表达的思想。不可否认文字的排列顺序会影响语言的含义。就汉语来说,尽管大多数词语或短语颠倒顺序后还是原来的意思,但也有很多意思发生变化的,比如京东和东京、蜜蜂和蜂蜜、海上和上海、火柴和柴火等等。也就是说汉字的排列顺序是表达语义的关键要素,这就要求我们在匹配的时候应当考虑汉字的排列顺序,特别是在给这些字赋予很大权重的时候。
参见申请号为201610302605.5的一篇专利申请,其公开了一种基于自然语言的机器人深度交互与推理方法与装置,并具体公开了如下内容:包括以下步骤:1)语音识别:接收用户语音输入,对输入信号进行处理,得到文本信息;2)获取案例属性:将步骤1)中获取的文本进行分词处理,然后将分词后的文本与案例库中的案例进行基于向量空间模型的文本相似度匹配提取案例的属性;所述案例库用于存储根据实际场景预先设计的案例,每一个案例有三个基本属性值,包括:案例的最初属性集合,案例的解决方案,经过和环境交互与推理后产生的最终属性集合;3)深度对话与三维情景交互:如果根据步骤2)提取案例的属性获得的用户意图不完整,则结合Kinect传感器获取的实时地图文件对用户进行多次引导,直至获取完整意图,然后针对用户完整意图的作业任务生成解决方案;语音合成:推理机将得到的解决方案以文本的形式表示出来,以语音的方式发送给用户。
可见,该专利申请中借用了向量空间的文本相似度匹配实现机器人与自然语言的深度交互,显然不能满足更加人性化的文本相似度匹配需求。
发明内容
本发明的目的是提供一种考察文字排列顺序的文本相似度匹配方法,解决目前单纯应用ES算法无法解决字符排列顺序的问题。
本发明解决其技术问题,采用的技术方案是:考察文字排列顺序的文本相似度匹配方法,包括如下步骤:
步骤1、用户输入口令;
步骤2、读取用户输入口令和机器指令;
步骤3、对读取的用户输入口令和机器指令分别进行分词处理且建立字典向量,并依次将每条机器指令字典向量与用户输入口令字典向量计算夹角余弦,将计算结果作为第一次打分结果保存在机器指令索引-分数的字典中;
步骤4、提取第一次打分结果中得分最高的机器指令,并判断指令个数是否唯一,若是,则进入步骤6,否则进入步骤5;
步骤5、对得分最高的各个机器指令及用户口令就文本排列顺序作比对并进行第二次打分,并将第二次打分结果以索引-分数的形式保存在字典中;
步骤6、提取得分最高的机器指令并反馈给机器。
具体地,步骤3中,所述对读取的用户输入口令和机器指令分别建立字典向量具体是指:以用户输入口令中的文字为键、以该口令中文字的个数为值建立用户输入口令向量,以用户输入口令中的文字为键、以该口令中的文字在机器指令中的个数为值建立机器指令向量。
进一步地,每条机器指令建立向量后均保存在同一个列表中。
具体地,步骤5中,所述第二次打分过程中,对于用户输入口令中的字数,其任意两个字之间都具有一个先后顺序关系,将这种顺序关系将作为给机器指令打分的依据。
再进一步地,所述一个顺序关系为一个关系对,假设用户输入口令字数为n,则这种关系对的个数为n(n+1)/2,如果一条机器指令也具有该关系对,则该机器指令就加一分,机器指令拥有的用户输入口令中的关系对越多则其得分也就越高。
具体地,通过两层循环将用户输入口令中所有的关系对提取出来,具体是指:第一层循环依次取用户输入口令中第一个字到倒数第二个字,第二层循环则依次取第一层循环中所取的字的后面的字,这样两层循环分别取两个字,并且第一个字排在第二个字前面,用户输入口令中所有的关系对也就都被提取出来了。
再进一步地,在机器指令中查找该关系对的方式包括如下步骤:
步骤501、检查关系对中的两个字是否在机器指令中出现,若存在其中一个字单未出现关系对则意味着机器指令不具备该关系对;
步骤502、若两个字均在机器指令中出现,则检查这两个字在机器指令列表中出现的位置,如果第一个字的位置在第二个字前面,则说明机器指令具备该关系对,则加分;如果第一个字排在第二个字后面则不加分;
步骤503、把机器指令拆分成列表后,文字的索引即可表征该文字出现的位置,这样两层循环遍历完成后,机器指令就会获得一个分数,得分最高的机器指令即为与用户输入口令在文本排列顺序方面最匹配的一条。
本发明的有益效果是,通过上述考察文字排列顺序的文本相似度匹配方法,结合向量与文本顺序两个方面实现文本相似度的匹配,对用户输入口令和机器指令分别进行分词处理并建立字典向量,字典向量都是以用户输入口令中的文字作为键所以具有相同的维度,在字典向量的基础上对用户口令和机器指令进行夹角余弦计算以实现对机器指令的第一次打分;第二次打分则是在第一次打分的基础上进行,因为如果当用户输入口令和机器指令在所包含文字上已经相似,则有必要对文字的排列顺序做一个考察,这里通过提取用户口令中文字的关系对并与机器指令相比较的方式对机器指令进行一个顺序打分,最终挑选出文字与排序都与用户口令最相似的机器指令。赋予文字顺序更大的权重,搜索结果更准确。
具体实施方式
下面结合实施例,详细描述本发明的技术方案。
本发明所述考察文字排列顺序的文本相似度匹配方法,由如下步骤组成:
步骤1、用户输入口令;
步骤2、读取用户输入口令和机器指令;
步骤3、对读取的用户输入口令和机器指令分别进行分词处理且建立字典向量,并依次将每条机器指令字典向量与用户输入口令字典向量计算夹角余弦,将计算结果作为第一次打分结果保存在机器指令索引-分数的字典中;
步骤4、提取第一次打分结果中得分最高的机器指令,并判断指令个数是否唯一,若是,则进入步骤6,否则进入步骤5;
步骤5、对得分最高的各个机器指令及用户口令就文本排列顺序作比对并进行第二次打分,并将第二次打分结果以索引-分数的形式保存在字典中;
步骤6、提取得分最高的机器指令并反馈给机器。
这里,在字典向量的基础上对用户口令和机器指令进行夹角余弦计算以实现对机器指令的第一次打分;第二次打分则是在第一次打分的基础上进行,因为如果当用户输入口令和机器指令在所包含文字上已经相似,则有必要对文字的排列顺序做一个考察,这里通过提取用户口令中文字的关系对并与机器指令相比较的方式对机器指令进行一个顺序打分,最终挑选出文字与排序都与用户口令最相似的机器指令。赋予文字顺序更大的权重,搜索结果更准确。
实施例
本发明实施例考察文字排列顺序的文本相似度匹配方法,包括如下步骤:
步骤1、用户输入口令。
步骤2、读取用户输入口令和机器指令。
步骤3、对读取的用户输入口令和机器指令分别进行分词处理且建立字典向量,并依次将每条机器指令字典向量与用户输入口令字典向量计算夹角余弦,将计算结果作为第一次打分结果保存在机器指令索引-分数的字典中;其中,对读取的用户输入口令和机器指令分别建立字典向量具体是指:以用户输入口令中的文字为键、以该口令中文字的个数为值建立用户输入口令向量,以用户输入口令中的文字为键、以该口令中的文字在机器指令中的个数为值建立机器指令向量;并且,每条机器指令建立向量后均保存在同一个列表中。
步骤4、提取第一次打分结果中得分最高的机器指令,并判断指令个数是否唯一,若是,则进入步骤6,否则进入步骤5;
步骤5、对得分最高的各个机器指令及用户口令就文本排列顺序作比对并进行第二次打分,并将第二次打分结果以索引-分数的形式保存在字典中;第二次打分过程中,对于用户输入口令中的字数,其任意两个字之间都具有一个先后顺序关系,将这种顺序关系将作为给机器指令打分的依据;一个顺序关系为一个关系对,假设用户输入口令字数为n,则这种关系对的个数为n(n+1)/2,如果一条机器指令也具有该关系对,则该机器指令就加一分,机器指令拥有的用户输入口令中的关系对越多则其得分也就越高。
优选地,通过两层循环将用户输入口令中所有的关系对提取出来,具体是指:第一层循环依次取用户输入口令中第一个字到倒数第二个字,第二层循环则依次取第一层循环中所取的字的后面的字,这样两层循环分别取两个字,并且第一个字排在第二个字前面,用户输入口令中所有的关系对也就都被提取出来了。
优选地,在机器指令中查找该关系对的方式包括如下步骤:
步骤501、检查关系对中的两个字是否在机器指令中出现,若存在其中一个字单未出现关系对则意味着机器指令不具备该关系对;
步骤502、若两个字均在机器指令中出现,则检查这两个字在机器指令列表中出现的位置,如果第一个字的位置在第二个字前面,则说明机器指令具备该关系对,则加分;如果第一个字排在第二个字后面则不加分;
步骤503、把机器指令拆分成列表后,文字的索引即可表征该文字出现的位置,这样两层循环遍历完成后,机器指令就会获得一个分数,得分最高的机器指令即为与用户输入口令在文本排列顺序方面最匹配的一条。
步骤6、提取得分最高的机器指令并反馈给机器。
实际应用中,比如一台电视机包含如下机器指令:调高音量、调高亮度、切换到10频道、频道切换、清理内存、打开内存清理工具。
用户输入口令:清理内存。
以下将本算法的整个过程描述出来:
user_list=[清,理,内,存]
user_set=set([清,理,内,存])
machine_list=[调高音量,调高亮度,切换到10频道,频道切换,清理内存,打开内存清理工具]
machine_list_list=[[调,高,音,量],[调,高,亮,度],[切,换,到,10,频,道],[频,道,切,换],[清,理,内,存],[打,开,内,存,清,理,工,具]]
user_vector={清:1,理:1,内:1,存:1}
machine_vector_list=[{调:0,高:0,音:0,量:0},{调:,高:0,亮:0,度:0},{切:0,换:0,到:0,10:0,频:0,道:0},{频:0,道:0,切:0,换:0},{清:1,理:1,内:1,存:1},{打:0,开:0,内:1,存:1,清:1,理:1,工:0,具:0}],通过夹角余弦公式为每一条机器指令打分,打分的结果保存在result_dict1中。
result_dict1={0:0,1:0,2:0,3:0,4:1.0,5:1.0}
第一步打分过程中,分数最高的是清理内存和打开内存清理工具,分数都是1.0分,所以接下来还要进行第二步打分。
第二步打分过程中:
totalscore_list_list=[[清,理,内,存],[打,开,内,存,清,理,工,具]]
result_dict2={0:6,1:2}
因此,第二步打分的结果是清理内存的机器指令分数最高,与理想匹配结果最相符。
Claims (7)
1.考察文字排列顺序的文本相似度匹配方法,其特征在于,包括如下步骤:
步骤1、用户输入口令;
步骤2、读取用户输入口令和机器指令;
步骤3、对读取的用户输入口令和机器指令分别进行分词处理且建立字典向量,并依次将每条机器指令字典向量与用户输入口令字典向量计算夹角余弦,将计算结果作为第一次打分结果保存在机器指令索引-分数的字典中;
步骤4、提取第一次打分结果中得分最高的机器指令,并判断指令个数是否唯一,若是,则进入步骤6,否则进入步骤5;
步骤5、对得分最高的各个机器指令及用户口令就文本排列顺序作比对并进行第二次打分,并将第二次打分结果以索引-分数的形式保存在字典中;
步骤6、提取得分最高的机器指令并反馈给机器。
2.根据权利要求1所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,步骤3中,所述对读取的用户输入口令和机器指令分别建立字典向量具体是指:以用户输入口令中的文字为键、以该口令中文字的个数为值建立用户输入口令向量,以用户输入口令中的文字为键、以该口令中的文字在机器指令中的个数为值建立机器指令向量。
3.根据权利要求2所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,每条机器指令建立向量后均保存在同一个列表中。
4.根据权利要求1所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,步骤5中,所述第二次打分过程中,对于用户输入口令中的字数,其任意两个字之间都具有一个先后顺序关系,将这种顺序关系将作为给机器指令打分的依据。
5.根据权利要求4所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,所述一个顺序关系为一个关系对,假设用户输入口令字数为n,则这种关系对的个数为n(n+1)/2,如果一条机器指令也具有该关系对,则该机器指令就加一分,机器指令拥有的用户输入口令中的关系对越多则其得分也就越高。
6.根据权利要求5所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,通过两层循环将用户输入口令中所有的关系对提取出来,具体是指:第一层循环依次取用户输入口令中第一个字到倒数第二个字,第二层循环则依次取第一层循环中所取的字的后面的字,这样两层循环分别取两个字,并且第一个字排在第二个字前面,用户输入口令中所有的关系对也就都被提取出来了。
7.根据权利要求5或6所述的考察文字排列顺序的文本相似度匹配方法,其特征在于,在机器指令中查找该关系对的方式包括如下步骤:
步骤501、检查关系对中的两个字是否在机器指令中出现,若存在其中一个字单未出现关系对则意味着机器指令不具备该关系对;
步骤502、若两个字均在机器指令中出现,则检查这两个字在机器指令列表中出现的位置,如果第一个字的位置在第二个字前面,则说明机器指令具备该关系对,则加分;如果第一个字排在第二个字后面则不加分;
步骤503、把机器指令拆分成列表后,文字的索引即可表征该文字出现的位置,这样两层循环遍历完成后,机器指令就会获得一个分数,得分最高的机器指令即为与用户输入口令在文本排列顺序方面最匹配的一条。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810833315.2A CN109241239A (zh) | 2018-07-26 | 2018-07-26 | 考察文字排列顺序的文本相似度匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810833315.2A CN109241239A (zh) | 2018-07-26 | 2018-07-26 | 考察文字排列顺序的文本相似度匹配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109241239A true CN109241239A (zh) | 2019-01-18 |
Family
ID=65072462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810833315.2A Pending CN109241239A (zh) | 2018-07-26 | 2018-07-26 | 考察文字排列顺序的文本相似度匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241239A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020230A (zh) * | 2012-12-14 | 2013-04-03 | 中国科学院声学研究所 | 一种语义模糊匹配方法 |
CN104216968A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 一种基于文件相似度的排重方法及系统 |
CN105279147A (zh) * | 2015-09-29 | 2016-01-27 | 武汉传神信息技术有限公司 | 一种译员稿件快速匹配方法 |
CN105608113A (zh) * | 2015-12-10 | 2016-05-25 | 北京奇虎科技有限公司 | 判断文本中poi数据的方法及装置 |
US20180060426A1 (en) * | 2016-08-30 | 2018-03-01 | Robert Francis Gluck | Systems and methods for issue management |
CN107943762A (zh) * | 2017-11-24 | 2018-04-20 | 四川长虹电器股份有限公司 | 一种基于es搜索的文本相似度排序方法 |
CN108197137A (zh) * | 2017-11-20 | 2018-06-22 | 广州视源电子科技股份有限公司 | 文本的处理方法、装置、存储介质、处理器和终端 |
-
2018
- 2018-07-26 CN CN201810833315.2A patent/CN109241239A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020230A (zh) * | 2012-12-14 | 2013-04-03 | 中国科学院声学研究所 | 一种语义模糊匹配方法 |
CN104216968A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 一种基于文件相似度的排重方法及系统 |
CN105279147A (zh) * | 2015-09-29 | 2016-01-27 | 武汉传神信息技术有限公司 | 一种译员稿件快速匹配方法 |
CN105608113A (zh) * | 2015-12-10 | 2016-05-25 | 北京奇虎科技有限公司 | 判断文本中poi数据的方法及装置 |
US20180060426A1 (en) * | 2016-08-30 | 2018-03-01 | Robert Francis Gluck | Systems and methods for issue management |
CN108197137A (zh) * | 2017-11-20 | 2018-06-22 | 广州视源电子科技股份有限公司 | 文本的处理方法、装置、存储介质、处理器和终端 |
CN107943762A (zh) * | 2017-11-24 | 2018-04-20 | 四川长虹电器股份有限公司 | 一种基于es搜索的文本相似度排序方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Neighbourhood watch: Referring expression comprehension via language-guided graph attention networks | |
CN104933152B (zh) | 命名实体识别方法及装置 | |
CN108491462B (zh) | 一种基于word2vec的语义查询扩展方法及装置 | |
CN105869634A (zh) | 一种基于领域的带反馈语音识别后文本纠错方法及系统 | |
CN102339294B (zh) | 一种对关键词进行预处理的搜索方法和系统 | |
CN112364150A (zh) | 一种结合检索与生成的智能问答方法和系统 | |
CN105608218A (zh) | 智能问答知识库的建立方法、建立装置及建立系统 | |
CN105975625A (zh) | 一种面向英文搜索引擎的中式英文查询纠错方法和系统 | |
CN107291783A (zh) | 一种语义匹配方法及智能设备 | |
CN106997341B (zh) | 一种创新方案匹配方法、装置、服务器及系统 | |
CN106502994A (zh) | 一种文本的关键词提取的方法和装置 | |
CN116881426B (zh) | 一种基于aigc的自解释问答系统 | |
CN102867512A (zh) | 自然语音识别方法和装置 | |
CN103646018A (zh) | 一种基于hash散列表词典结构的中文分词方法 | |
CN109492081A (zh) | 文本信息搜索和信息交互方法、装置、设备及存储介质 | |
CN107807910A (zh) | 一种基于hmm的词性标注方法 | |
CN106227719B (zh) | 中文分词歧义消除方法和系统 | |
Megala et al. | Enriching text summarization using fuzzy logic | |
CN105893626A (zh) | 一种用于核电工程的索引库创建方法及其采用其方法的索引系统 | |
CN114997181A (zh) | 一种基于用户反馈修正的智能问答方法及系统 | |
CN104778157A (zh) | 一种多文档摘要句的生成方法 | |
CN112527955A (zh) | 一种数据处理的方法和装置 | |
CN110347812B (zh) | 一种面向司法文本的搜索排序方法及系统 | |
CN105631032B (zh) | 基于抽象语义推荐的问答知识库建立方法、装置及系统 | |
CN109241239A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |
|
RJ01 | Rejection of invention patent application after publication |