一种基于句模进行模糊匹配与剪枝的方法
技术领域
本发明涉及自然语言处理领域,具体涉及一种基于句模进行模糊匹配与剪枝的方法。
背景技术
在处理初等数学的语义理解的过程中,经常会有一些无用的信息来干扰系统对语义的理解;由于系统采用的是模板匹配与实体组合的策略来理解语句,所以大量的干扰信息不仅没有任何意义,而且妨碍了系统利用句模和实体组合进行理解。
目前在初等数学的语义理解过程中主流的方法都是采用模板匹配的方式进行,而模板匹配采用的是基于正则表达式的方法进行匹配的;正则表达式则要求被匹配的句子与所写的模板完全匹配的时候才能匹配成功,虽然多句话可以同时匹配上一个正则表达式,但是一旦句式稍加变化就不能匹配成功,这在一定的程度的限制了模板的作用,也浪费了大量的数据。
针对此种情况,如果采用枚举的方法对所有的情况进行穷举,将会耗费大量的人力和时间,并且取得效果也不理想,一旦有新的干扰成分出现则匹配就会失败。
发明内容
基于此,针对上述问题,有必要提出一种基于句模进行模糊匹配与剪枝的方法,利用系统所匹配到的大量数据进行训练,从而推荐出最相似的语句,此外在利用实体组合进行语义理解时,会产生大量的关系;同样,可利用句模对其进行剪枝,从而减少候选项的个数,使得对语句的理解更为准确;本发明使题意的理解可以达到百分之七十到百分之八十的准确率,特别是加上基于句模的模糊匹配与剪枝后,使系统更健壮,容错率更高,尤其表现在对新语料的识别率上。
本发明的技术方案是:
一种基于句模进行模糊匹配与剪枝的方法,包括以下步骤:
a、输入待理解语句,编写句模;
b、建立数据库和与句模一一对应的转关系类,将句模存入数据库中;
c、将该待理解语句与句模进行匹配,如果匹配成功,则传递相应的数据到转关系类中,输出对应的数学关系;如果匹配失败,则进入步骤d;
d、进行基于句模的模糊匹配,未匹配语句在已经匹配上句模的语句中寻找一个最相似的语句,并输出对应的数学关系。
本发明是针对初等数学的语意理解的,因此在系统中已经我们已经事先写好了大量的句模,并且每个句模都对应一个相应的转关系类,利用一种名为GSON的语言将句模中包含的数据传递到相应的转关系类中,然后在转关系类中转换出系统所需的关系;在进行初等数学语义理解的过程中,很多简单常见的语句已经能够很好的匹配上系统中的句模,从而根据匹配的句模,传递相应的数据到转关系类,便能够转换出系统需要的关系,所以这些已经匹配上句模的语句能够作为很好的训练集,对于未匹配的语句,则进行基于句模的模糊匹配,在已经匹配上句模的语句中找到一个最相似的语句,使得对语句的理解更为准确,可以达到百分之七十到百分之八十的准确率,使系统更健壮,容错率更高。
作为上述方案的进一步优化,所述步骤b具体包括以下步骤:
利用句模运行一次全量测试,统计出所有的能够匹配上句模的语句以及与之匹配的句模和向转关系类中传递的数据,保存在一个XML文件中,并导入数据库。
将数据库中的所有题目利用系统中的句模运行一次全量测试,统计出所有的能够匹配上句模的语句,以及它们匹配上的句模,和向转关系类中传递的数据,当数据库中的所有题目测试完毕时,所需的训练数据便准备完毕了,并保存在一个XML文件中,随后导入数据库;其中,可扩展标记语言(eXtensible Markup Language,XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等;如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性,XML是从标准通用标记语言(SGML)中简化修改出来的,它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
作为上述方案的进一步优化,所述步骤b还包括以下步骤:
对于已经匹配上句模的语句,将其训练成词向量表,同时根据TF-IDF给每个词语以相应的权值,加权得到每个语句的向量。有了每个语句的向量便可以根据向量的运算来得到语句之间的相似度。
作为上述方案的进一步优化,所述步骤b中进行词向量训练的具体步骤如下:
对于数据库中的题目,利用训练好的CRF分词模型进行分词,将分词后所得的词语进行去停用词操作,随后利用word2vec训练出词向量。
word2vec是一款将词表示为实数值向量的高效工具,主要的模型有CBOW和skip-Gram两种;word2vec通过训练,可以将语句转换为多维空间中的一个向量,因此对语句的处理就转换为对向量的处理了,而向量空间上的相似度可以用来表示语句语义上的相似度;因此,word2vec输出的词向量可以被用来做大量的NLP相关的工作,比如聚类,找同义词,词性分析。将数据库中的题目利用训练好的CRF分词模型进行分词,将所有分词后的词语保存在一个文本中;CRF(条件随机场)结合了最大熵模型和隐马尔科夫模型的特点,是一种无向图模型,在分词、词性标注和实体命名识别等序列标注任务中取得了很好的效果,本发明采用基于CRF的分词系统,将分词后所得的词语进行去停用词操作,减小对后续利用word2vec进行训练词向量结果的影响;将去停用词后的词语保存在一个文件中,随后利用word2vec训练出与其对应的词向量;对于语句之间的相似度计算,采用训练词向量更方便,为后续对未匹配语句进行相似度对比提供了比较的基础,使相似度更精确,容错率更高。
作为上述方案的更进一步优化,所述步骤c还包括以下步骤:
在进行待理解语句与句模匹配的同时,进行实体组合,组合后基于句模进行剪枝,得到输出关系候选语句。
作为上述方案的更进一步优化,所述步骤c中的实体组合具体包括以下步骤:
当输入待理解的语句后,若当前语句需要实体组合,则利用CRF抽取当前语句中的所有实体,并对所抽取的实体进行实体组合,然后对组合出的关系按照余弦相似度进行剪枝,留下一个或者多个候选。
在初等数学的语义理解中,本发明还利用了一种实体组合的技术,需要理解的语句进入系统中后,会给相应的实体进行实体命名;例如:线段AB,经过实体命名后便会标记为线段AB&&line,点P便会标记为点P&&point;实体组合便是根据语句中的实体进行组合,组合出所有可能的关系;例如上述例子中的点point和线段line,便可以组合出点在线上,点是线段的中点,点不在线段上等各种关系;但是一旦语句中的实体数量增多,能够组合出的关系就会呈现出指数级的增长,并且其中不乏存在一些互相矛盾的关系,因此本发明在利用实体组合的时候在对组合出的关系后面加入了后处理操作,即对组合出的关系进行剪枝操作;而剪枝操作同样是基于句模完成的,和模糊匹配不同的是剪枝策略最后得到的可能是一个或者多个候选,基于句模的剪枝策略和模糊匹配大致相同,不同的是剪枝策略会挑选出数据库中最相似的多个语句,然后得到这些语句转换出的每个关系的个数进行排序,数量由多到少,选择出数量最多的几个关系,然后以这几个关系作为这个语句的候选关系。
作为上述方案的更进一步优化,所述步骤d具体包括以下步骤:
将未匹配语句转换为对应的向量后,与数据库中每个匹配上句模的语句对应的向量进行余弦相似度计算,确定余弦值最大的语句为最相似语句,并根据该语句得到其匹配上的模板和转关系类,将未匹配语句中的参数传递给转关系类,得到相应的关系。
本发明利用向量之间的余弦值大小来表示两句子之间的相似度大小,句子的相似度在0-1之间,1代表完全相同,0代表完全不相同,余弦值越大表示句子之间的相似度越大,基于句模的模糊匹配便是基于向量之间的余弦相似度完成的;当需要理解的语句进入系统时,如此时没有能够匹配上的句模时,此时的语句被定义为未匹配的语句,模糊匹配便是为未匹配语句在已经匹配上句模的语句中找到一个最相似的语句;具体为将未匹配语句转换为对应的向量与数据库中每个语句对应的向量进行余弦相似度计算,将余弦值最大的语句作为最为相似的语句,然后根据这个语句得到它匹配上的模板和转关系类,然后将未匹配的句子中的参数传递给转关系类,从而得到相应的关系。语句匹配相对更精确,尤其表现在对新语料的识别率上,使系统更健壮,容错率更高。
本发明的有益效果是:
1、本发明针对初等数学的语意理解,提供基于句模的模糊匹配,在已经匹配上句模的语句中找到一个最相似的语句,使得语句匹配相对更精确,可以达到百分之七十到百分之八十的准确率,系统更健壮,容错率更高。
2、本发明利用句模对语句进行剪枝,从而减少候选项的个数,使得对语句的理解更为准确。
3、本发明采用基于CRF的分词系统,将分词后所得的词语进行去停用词操作,减小对后续利用word2vec进行训练词向量结果的影响;将去停用词后的词语保存在一个文件中,随后利用word2vec训练出与其对应的词向量;有了每个语句的向量便可以根据向量的运算来得到语句之间的相似度,为后续对未匹配语句进行余弦值相似度对比提供了比较的基础,使相似度更精确,容错率更高。
4、本发明利用向量之间的余弦值大小来表示两句子之间的相似度大小,将未匹配语句转换为对应的向量与数据库中每个语句对应的向量进行余弦相似度计算,将余弦值最大的语句作为最为相似的语句,然后根据这个语句得到它匹配上的模板和转关系类,然后将未匹配的句子中的参数传递给转关系类,从而得到相应的关系;使语句匹配相对更精确,尤其表现在对新语料的识别率上,使系统更健壮,容错率更高。
附图说明
图1是本发明实施例所述基于句模进行模糊匹配与剪枝的方法的流程图;
图2是本发明实施例所述向量训练流程图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
如图1所示,一种基于句模进行模糊匹配与剪枝的方法,包括以下步骤:
a、输入待理解语句,编写句模;
b、建立数据库和与句模一一对应的转关系类,将句模存入数据库中;
c、将该待理解语句与句模进行匹配,如果匹配成功,则传递相应的数据到转关系类中,输出对应的数学关系;如果匹配失败,则进入步骤d;
d、进行基于句模的模糊匹配,未匹配语句在已经匹配上句模的语句中寻找一个最相似的语句,并输出对应的数学关系。
本系统是针对初等数学的语意理解的,因此在系统中已经我们已经事先写好了大量的句模,并且每个句模都对应一个相应的转关系类,利用一种名为GSON的语言将句模中包含的数据传递到相应的转关系类中,然后在转关系类中转换出系统所需的关系;在进行初等数学语义理解的过程中,很多简单常见的语句已经能够很好的匹配上系统中的句模,从而根据匹配的句模,传递相应的数据到转关系类,便能够转换出系统需要的关系,所以这些已经匹配上句模的语句能够作为很好的训练集,对于未匹配的语句,则进行基于句模的模糊匹配,在已经匹配上句模的语句中找到一个最相似的语句,使得对语句的理解更为准确,可以达到百分之七十到百分之八十的准确率,使系统更健壮,容错率更高。
在其中一个实施例中,所述步骤b具体包括以下步骤:
利用句模运行一次全量测试,统计出所有的能够匹配上句模的语句以及与之匹配的句模和向转关系类中传递的数据,保存在一个XML文件中,并导入数据库。
将数据库中的所有题目利用系统中的句模运行一次全量测试,统计出所有的能够匹配上句模的语句,以及它们匹配上的句模,和向转关系类中传递的数据,当数据库中的所有题目测试完毕时,所需的训练数据便准备完毕了,并保存在一个XML文件中,随后导入数据库;其中,可扩展标记语言(eXtensible Markup Language,XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等;如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性,XML是从标准通用标记语言(SGML)中简化修改出来的,它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
如下例子:
该信息为一条完整的语料信息,其中<String>中的内容为已经匹配上句模的语句,<templateID>为句模的ID,可以通过句模得到其对应的转关系类,系统中每个句模都有一个唯一的ID;而<Data>中的内容为向转关系类中传递的数据,以此分别为侧棱AE,底面ABCD,所成角Pi/3,当句模利用GSON将这些数据传递到相应的转关系类时,这个转关系类便会根据预先设计好的程序将这些数据转化为一个LinePlaneAngleRelation关系,构造这个关系所需的参数便是句模传递过来的数据,当数据库中的所有题目测试完毕时,所需的训练数据便准备完毕了,并且保存在一个文本中,将其导入到数据库中。在另一个实施例中,所述步骤b还包括以下步骤:
对于已经匹配上句模的语句,将其训练成词向量表,同时根据TF-IDF给每个词语以相应的权值,加权得到每个语句的向量。有了每个语句的向量便可以根据向量的运算来得到语句之间的相似度。
在另一个实施例中,如图2所示,所述步骤b中进行词向量训练的具体步骤如下:
对于数据库中的题目,利用训练好的CRF分词模型进行分词,将分词后所得的词语进行去停用词操作,随后利用word2vec训练出词向量。
word2vec是一款将词表示为实数值向量的高效工具,主要的模型有CBOW和skip-Gram两种;word2vec通过训练,可以将语句转换为多维空间中的一个向量,因此对语句的处理就转换为对向量的处理了,而向量空间上的相似度可以用来表示语句语义上的相似度;因此,word2vec输出的词向量可以被用来做大量的NLP相关的工作,比如聚类,找同义词,词性分析。将数据库中的题目利用训练好的CRF分词模型进行分词,将所有分词后的词语保存在一个文本中;CRF(条件随机场)结合了最大熵模型和隐马尔科夫模型的特点,是一种无向图模型,在分词、词性标注和实体命名识别等序列标注任务中取得了很好的效果,本发明采用基于CRF的分词系统,将分词后所得的词语进行去停用词操作,减小对后续利用word2vec进行训练词向量结果的影响;将去停用词后的词语保存在一个文件中,随后利用word2vec训练出其对用的词向量;对于语句之间的相似度计较,采用训练词向量更方便,为后续对未匹配语句进行相似度对比提供了比较的基础,使相似度更精确,容错率更高。
在另一个实施例中,所述步骤c还包括以下步骤:
在进行待理解语句与句模匹配的同时,进行实体组合,组合后基于句模进行剪枝,得到输出关系候选语句。
在另一个实施例中,所述步骤c中的实体组合具体包括以下步骤:
当输入待理解的语句后,若当前语句需要实体组合,则利用CRF抽取当前语句中的所有实体,并对所抽取的实体进行实体组合,然后对组合出的关系按照余弦相似度进行剪枝,留下一个或者多个候选。
在初等数学的语义理解中,本发明还利用了一种实体组合的技术,需要理解的语句进入系统中后,会给相应的实体进行实体命名;例如:线段AB,经过实体命名后便会标记为线段AB&&line,点P便会标记为点P&&point;实体组合便是根据语句中的实体进行组合,组合出所有可能的关系;例如上述例子中的点point和线段line,便可以组合出点在线上,点是线段的中点,点不在线段上等各种关系;但是一旦语句中的实体数量增多,能够组合出的关系就会呈现出指数级的增长,并且其中不乏存在一些互相矛盾的关系,因此本发明在利用实体组合的时候在对组合出的关系后面加入了后处理操作,即对组合出的关系进行剪枝操作;而剪枝操作同样是基于句模完成的,和模糊匹配不同的是剪枝策略最后得到的可能是一个或者多个候选,基于句模的剪枝策略和模糊匹配大致相同,不同的是剪枝策略会挑选出数据库中最相似的多个语句,然后得到这些语句转换出的每个关系的个数进行排序,数量由多到少,选择出数量最多的几个关系,然后以这几个关系作为这个语句的候选关系。
在另一个实施例中,所述步骤d具体包括以下步骤:
将未匹配语句转换为对应的向量后,与数据库中每个匹配上句模的语句对应的向量进行余弦相似度计算,确定余弦值最大的语句为最相似语句,并根据该语句得到其匹配上的模板和转关系类,将未匹配语句中的参数传递给转关系类,得到相应的关系。
本发明利用向量之间的余弦值大小来表示两句子之间的相似度大小,句子的相似度在0-1之间,1代表完全相同,0代表完全不相同,余弦值越大表示句子之间的相似度越大,基于句模的模糊匹配便是基于向量之间的余弦相似度完成的;当需要理解的语句进入系统时,如此时没有能够匹配上的句模时,此时的语句被定义为未匹配的语句,模糊匹配便是为未匹配语句在已经匹配上句模的语句中找到一个最相似的语句;具体为将未匹配语句转换为对应的向量与数据库中每个语句对应的向量进行余弦相似度计算,将余弦值最大的语句作为最为相似的语句,然后根据这个语句得到它匹配上的模板和转关系类,然后将未匹配的句子中的参数传递给转关系类,从而得到相应的关系。语句匹配相对更精确,尤其表现在对新语料的识别率上,使系统更健壮,容错率更高。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。