发明内容
本发明实施方式提出一种基于语意识别的自然语言处理方法,以准确地向用户反馈所需要的信息。
本发明实施方式还提出一种基于语意识别的自然语言处理装置,以准确地向用户反馈所需要的信息。
本发明实施方式还提出一种基于语意识别的自然语言处理系统,以准确地向用户反馈所需要的信息。
本发明实施方式的技术方案是这样实现的:
一种基于语意识别的自然语言处理方法,该方法包括:
将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块;
分别对提取出的语言线性结构以及语块进行倒排;
创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引;
从用户的检索输入字符串中提取出该输入字符串的语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
所述将篇章级的词语利用符号切分为字符串包括:
根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和/或箭头号,将所述篇章级的词语切分为字符串。
所述将篇章级的词语利用符号切分为字符串包括:
使用基于篇章的局部子串统计表作为临时辅助词典,用基于多路径规划的切分路径树作为切分模型,将所述篇章级的词语字符编码统一转换为UTF-8编码格式;
对转换为UTF-8编码格式后的篇章级的词语利用符号切分为字符串。
所述向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息包括:
依据语言线性结构和语块的匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,所述匹配程度越高。
预先设置语言线性结构重复权重和语块重复权重;
基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;
当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
所述向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息包括:
在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;
向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
所述用户的检索输入字符串为用第一语言表述的检索输入字符串;
所述从用户的检索输入字符串中提取出该输入字符串的语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息包括:
从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;
确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;
根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。
所述第一语言为中文,第二语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文。
所述第一语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文,第二语言为中文。
一种基于语意识别的自然语言处理装置,该装置包括提取单元、倒排单元、索引单元和匹配信息反馈单元,其中:
提取单元,用于将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块;
倒排单元,用于分别对提取出的语言线性结构以及语块进行倒排;
索引单元,用于创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引;
匹配信息反馈单元,用于从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
提取单元,用于根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和/或箭头号,将所述篇章级的词语切分为字符串。
提取单元,用于使用基于篇章的局部子串统计表作为临时辅助词典,用基于多路径规划的切分路径树作为切分模型,将所述篇章级的词语字符编码统一转换为UTF-8编码格式;并对转换为UTF-8编码格式后的篇章级的词语利用符号切分为字符串。
匹配信息反馈单元,用于依据语言线性结构和语块的匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,所述匹配程度越高。
匹配信息反馈单元,进一步用于预先设置语言线性结构重复权重和语块重复权重;并基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;其中当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
匹配信息反馈单元,用于在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
所述用户的检索输入字符串为用第一语言表述的检索输入字符串;
匹配信息反馈单元,用于从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。
一种基于语意识别的自然语言处理系统,包括信息收集装置、资料存储装置、自然语言处理装置和检索服务装置,其中:
信息收集装置,用于对互联网进行扫描检测,爬取互联网上的信息;
资料存储装置,用于存储由信息收集装置爬取到的互联网信息;
自然语言处理装置,用于利用符号对存储于资料存储装置中的篇章级的词语,切分为字符串,并从切出的字符串中提取出语言线性结构和语块;并分别对提取出的语言线性结构以及语块进行倒排;以及创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引;
检索服务装置,用于从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
该系统进一步包括索引存储装置,用于存储由自然语言处理装置生成的整体索引。
资料存储装置,进一步用于提供互联网信息的快速定位查找。
信息收集装置进一步用于接受上传信息服务。
自然语言处理装置,用于根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和或箭头号,将所述篇章级的词语切分为字符串。
自然语言处理装置,用于使用基于篇章的局部子串统计表作为临时辅助词典,用基于多路径规划的切分路径树作为切分模型,将所述篇章级的词语字符编码统一转换为UTF-8编码格式;并对转换为UTF-8编码格式后的篇章级的词语利用符号切分为字符串。
检索服务装置,用于依据语言线性结构和语块的匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,所述匹配程度越高。
检索服务装置,进一步用于预先设置语言线性结构重复权重和语块重复权重;并基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;其中当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
检索服务装置,用于在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
所述用户的检索输入字符串为用第一语言表述的检索输入字符串;
检索服务装置,用于从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。
所述第一语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文,第二语言为中文。
所述第一语言为中文,第二语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文。
在本发明实施方式中,首先将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块,然后分别对提取出的语言线性结构以及语块进行倒排,以及创建语言线性结构子索引以及语块子索引,并形成整体索引,最后从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。由此可见,应用本发明实施方式以后,运用了分析语言结构+关键词的技术手段,从语言的线性结构和关键词中精确地提炼出信息的真正意图,并用排序的方式智能选择反馈结果,可以基于计算机语意识别能力的核心技术,能够更加智能地识别信息背后的准确含义,从而可以准确地向用户反馈所需要的信息。
而且,通过将信息进行深层、多层次分析,不但了解了其代码,还识别了信息所要表达的意图,使计算机更智能、更人性化地与人类沟通。
另外,相比较以传统的关键词过滤方法来屏蔽不良信息,只能识别到词(通称关键词)这一级别,无法更深地延展也不能识别全篇所要表达的内容的缺点,本发明实施方式可以将语意识别技术应用于网络监管,以可以发挥更高的效率,使监管变得更加智能。比如:在某篇新闻中经常出现“达赖喇嘛蛊惑人心”和“西藏独立对藏民无益”等语句反复出现。全篇文章实际表达的是正面的信息内容,但因为“达赖”和“藏独”等关键词出现频率太多却极易被屏蔽。这就是使用单一关键词监管的软肋。若使用语意识别技术监管,其不但识别关键词,还会通过分析语句结构来识别所要表达的意图,从而实现更智能的网络监管。使上述文章不会被屏蔽,达到“西藏应该独立”--屏蔽、“西藏独立对西藏有害”--不屏蔽的精准效果。
而且,通过对语句进行精细化分析可以大幅提高信息监控的识别精度,可精确到小数点。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施方式对本发明再作进一步详细的说明。
在本发明实施方式中,基于计算机语意识别能力的核心技术,能够帮助计算机更加智能地识别信息背后的准确含义。通过将信息进行深层、多层次分析,不但了解了其代码,还识别了信息所要表达的意图,使计算机更智能、更人性化地与人类沟通。
本发明实施方式主要运用了分析语言线性结构+关键词(即语块)的技术手段,从语言的线性结构和关键词中精确地提炼出信息的真正意图。
一个待分析的语句包括线性结构和关键词(即语块)。其中,语意识别的关键在于识别出语句的线性结构。语言的意义隐藏在语句的线性结构当中,语句的线性结构相当于语言的常量。语意乃至意义和思维都隐藏在语句的线性结构中的,通过分析语句的线性结构,可达到识别意图的目的。关键词相当于语言的变量。通过替换相应部分(即变量),其语意基本均可保留,能得到较为准确的检索或翻译结果。
而且,双语、单语均可利用结构分析来精确识别语意。
通过对浩如烟海的文献资料逐句进行线性结构+关键词分析,我们可以获得充分的语句线性结构和关键词(即语块)。
举例说明:
1、乡村旅游作为中国旅游业的重要组成部分和促进旅游业发展的重要支撑。(示例1)
2、中国经济作为世界经济的重要组成部分和促进全球金融稳定的重要支撑。(示例2)
通过分析上面两个例子,可以发现:
“乡村旅游”、“中国旅游业”和“旅游业发展”相当于示例1的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x作为x的重要组成部分和促进x的重要支撑”(其中x表示空白)相当于示例1的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
类似地,“中国经济”、“世界经济”、“全球金融稳定”相当于示例2的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x作为x的重要组成部分和促进x的重要支撑”(其中x表示空白)相当于示例2的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
可以发现,这两个示例的线性结构完全相同,区别仅仅在于变量不同。可以将“x作为x的重要组成部分和促进x的重要支撑”(其中x表示空白)定义为一种线性结构,而“乡村旅游”、“中国旅游业”、“旅游业发展”、“中国经济”、“世界经济”和“全球金融稳定”定义为关键词(即语块)。
其中,我们可以将一些常用的固有名词和/或动名词确定为常量,但是变量并不局限于固有名词和/或动名词。在某些情况下,变量也可以是一种常用的短语,甚至比较长的句子。
另外,在确定常量和线性结构时,划分方式可能并不是唯一的。对于变量最少的划分方式,其所对应的线性结构称为最小线性结构。一般地,变量越少,可以认为所对应的线性结构所表达的信息越充分,则对应搜索的信息越精确。
再举例说明:
1、阿凡达热潮席卷中国。(示例3)
2、炒股热潮席卷世界。(示例4)
通过分析上面两个例子,可以发现,“阿凡达”和“中国”相当于示例3的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x热潮席卷x”.(其中x表示空白)相当于示例3的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
类似地,“炒股”和“世界”相当于示例4的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x热潮席卷x”(其中x表示空白)相当于示例4的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
可以发现,这两个示例的线性结构相同,区别仅仅在于变量不同。可以将“x热潮席卷x”(其中x表示空白)定义为一种线性结构,而“阿凡达”、“中国”、“炒股”和“世界”定义为关键词(即语块)。
再次举例说明:
1、他们呼吁欧委会客观、公正地对待中国企业的市场经济待遇申请。(示例5)
2、国际足联呼吁爱尔兰客观、公正地对待世界杯预选赛与法国队的比赛结果。(示例6)
3、国际社会呼吁六方会谈客观、公正地对待朝鲜问题。(示例7)
4、中国呼吁日本政府客观、公正地对待二战历史问题。(示例8)
通过分析上面四个例子,可以发现:
“他们”、“欧委会”和“中国企业的市场经济待遇申请”相当于示例5的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x呼吁x客观、公正地对待x”(其中x表示空白)相当于示例5的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
类似地,“国际足联”、“爱尔兰”和“世界杯预选赛与法国队的比赛结果”相当于示例6的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x呼吁x客观、公正地对待x”(其中x表示空白)相当于示例6的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
类似地,“国际社会”、“六方会谈”和“朝鲜问题”相当于示例6的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x呼吁x客观、公正地对待x”(其中x表示空白)相当于示例6的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
类似地,“中国”、“日本政府”和“二战历史问题”相当于示例7的变量,因为通过替换相应部分(即变量),其语意基本均可保留。而“x呼吁x客观、公正地对待x”(其中x表示空白)相当于示例7的线性结构,也就是语言的常量,因为语言的意义隐藏在该线性结构当中。
可以发现,这四个示例的线性结构相同,区别仅仅在于变量不同。可以将“x呼吁x客观、公正地对待x”(其中x表示空白)”定义为一种线性结构,而“他们”、“欧委会”、“中国企业的市场经济待遇申请”、“国际足联”、“爱尔兰”、“世界杯预选赛与法国队的比赛结果”、“国际社会”、“六方会谈”、“朝鲜问题”、“中国”、“日本政府”和“二战历史问题”定义为关键词(即语块)。
基于上述分析,通过对大量文献(包括网络文章、博客、教科书、各种电子文档等)进行上述切分,我们就可以得到充分的线性结构库和关键词(即语块)库。
下面再详细描述本发明基于语意识别的自然语言处理方法。
图1为根据本发明实施方式的基于语意识别的自然语言处理方法流程图。
如图1所示,该方法包括:
步骤101:将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块。
在这里,首先将篇章级的词语(比如,一篇文章或者一篇社论)利用符号切分为若干个字符串,并从切出的字符串中依次提取出语言线性结构和语块(具体的提取步骤可以参照前述示例分析)。
此处“篇章级”并不意味着对词语的数目有任何特定的限定。实质上,只要有一些词汇,并且这些词汇之间所组成的语句具有意义,就可以认为这些词汇构成了“篇章级”。
更具体地,可以根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和/或箭头号等标点符号,将篇章级的词语切分为字符串。比如,可以将任意的两个标点符号之间的文字提取为字符串(对于文章的起始,只需要一个标点符号)。
在确定关键字(语块)时,我们可以使用一个基于篇章的局部子串统计表(hashtable)作为临时辅助词典。也就是说,如果出现在临时辅助词典中,我们就可以将其确定为语块。不过,某些没有出现在局部子串统计表中的,也可以将其确定为语块。还可以用基于多路径规划的切分路径树作为切分模型,首先将英文(ASCII)、简体中文(GBK/GB 18030)、繁体中文(台湾BIG5、香港BIG5-HKSCS)等字符编码统一转换为UTF-8编码格式之后再进行切分,并在多个正确切分结果的基础上提取语块。
提取完语块之后,剩余的部分就是线性结构。
步骤102:分别对提取出的语言线性结构以及语块进行倒排。
在这里,倒排具体包括:
对于每个合格的语块,将该语块所在的文档号、段落号、句子号、词序号、以及HTML信息等压缩为一个结构,放入该语块所在的动态文件中;其中语块可以为任意的字符串,主要包括如下类别:词典词条、专名、专名的内部词汇、各类词组/搭配关系、n-grams、连续的stopwords、词+数字、任意的ASCII串、邮编与电话号码等。
而对于每个合格的语言线性结构,可以将该语言线性结构所在的文档号、段落号、句子号、词序号、以及HTML信息等压缩为一个结构,放入该语块所在的动态文件中。
步骤103:创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引。
在这里,将内存中的全部语块索引项(index terms)写入语块词汇表(vocabulary)文件,将inverted hits合并后写入inv_lists文件,并将二者之间的关联信息写入词典(dictionary)文件。这三个文件构成一个完整、独立的索引段(index run),即语块子索引。
而且,将内存中的全部线性结构索引项(index terms)写入线性结构词汇表(vocabulary)文件,将inverted hits合并后写入inv_lists文件,并将二者之间的关联信息写入线性结构词典(dictionary)文件。这三个文件构成一个完整、独立的索引段(indexrun),即线性结构子索引。
最后,将语言线性结构子索引和语块子索引予以合并,以形成整体索引。
步骤104:从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
在这里,首先从用户的检索输入字符串中提取出线性结构和语块。比如,假如用户输入“我很喜欢吃烟台产的大苹果。”则提取出语块“我”、“烟台产的大苹果”,以及线性结构x很喜欢吃x(其中x为空白),然后在整体索引中检索出匹配线性结构“x很喜欢吃x”,以及语块“我”、“烟台产的大苹果”的信息,并且按照匹配程度由高到低的顺序向用户呈现。
在一个实施方式中,当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,可以认为这种匹配程度越高。
在一个实施方式中,还可以预先设置语言线性结构重复权重和语块重复权重;
基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;
当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
其中,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息具体可以包括:
在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;
向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
可以将本发明的流程应用于多种具体的实际应用中,比如信息检索以及多语言翻译。
当应用于多语言翻译时,假设用户的检索输入字符串为用第一语言表述的检索输入字符串。此时,从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;然后再确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;
根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。其中,第一语言可以为中文,第二语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文,等等。可选的,第一语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文,第二语言为中文等。
举例:用户期望将中文“我要去上海”翻译成英文。
此时,用户输入的检索输入字符串为“我要去上海”,并用中文表述。首先,从用户的检索输入字符串中提取出该输入字符串用中文表述的语言线性结构(即:x要去x,其中x为空白)和中文表述的语块(我,上海);然后再确定与该用中文表述的语言线性结构相对应的用英语表述的语言线性结构(即x want to go to),以及确定与该用中文表述的语块相对应的用英语表述的语块(即I,Shanghai)。最后,将语块和线性结构组合成翻译的语句Iwant to go to Shanghai,并呈现给用户。
进一步地,还可以再根据整体索引向用户反馈与线性结构(x want to go to)语块(I,Shanghai)相匹配且用第二语言表述的信息,从而便于用户检索与I want to go toShanghai相关的英文信息。
在上述过程中,示范性地应用了一种高性能的单遍内存倒排算法,而不生成任何临时磁盘文件。因此,在导出内存内容之前,除了MAP数据,系统没有任何文件I/O开销。同时,它也不需要对index terms编号,并且不对index term(编号或者内存字符串指针)做任何排序运算。另外,该方法使用所有可用的空闲物理内存进行倒排。这些性质保证了这个倒排方法可具有非凡的时空效率,可支持一系列高效的动态索引合并和索引更新的方法。同时,具备该特性的倒排索引还完全适用于分布式处理。
在上述过程中,另一个关键特征是其查找数据结构具备caching功能,这个特性可支持几乎任意大的索引词表(即vocabulary文件)。vocabulary文件本身是放在磁盘上,能够保存的索引项的数目不受限制(在64-bit文件系统上),可多达数亿条。通过caching功能,该算法可以在4~6GB内存的x64服务器上达到与包括多台同等或更高配置的服务器的集群查询系统相近的索引词表查询性能。
而且,index terms可以为任意的字符串,主要包括如下类别(term categories):词典词条、专名、专名的内部词汇、各类词组/搭配关系、n-grams、连续的stopwords、词+数字、任意的ASCII串、邮编与电话号码等。
基于上述分析,本发明实施方式还提出了一种基于语意识别的自然语言处理装置。
图2为根据本发明实施方式的基于语意识别的自然语言处理装置结构图。
如图2所示,该装置包括该装置包括提取单元201、倒排单元202、索引单元203和匹配信息反馈单元204,其中:
提取单元201,用于将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块;
具体地,提取单元201首先将篇章级的词语(比如,一篇文章或者一篇社论)利用符号切分为若干个字符串,并从切出的字符串中依次提取出语言线性结构和语块(具体的提取步骤可以参照前述示例分析)。
更具体地,可以根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和箭头号等标点符号,将篇章级的词语切分为字符串。比如,可以将任意的两个标点符号之间的文字提取为字符串(对于文章的起始,只需要一个标点符号)。
在确定关键字(语块)时,可以使用一个基于篇章的局部子串统计表(hash table)作为临时辅助词典。也就是说,如果出现在临时辅助词典中,就可以将其确定为语块。不过,某些没有出现在局部子串统计表中的,也可以将其确定为语块。还可以用基于多路径规划的切分路径树作为切分模型,首先将英文(ASCII)、简体中文(GBK/GB 18030)、繁体中文(台湾BIG5、香港BIG5-HKSCS)等字符编码统一转换为UTF-8编码格式之后再进行切分,并在多个正确切分结果的基础上提取语块。
提取完语块之后,剩余的部分就是线性结构。
倒排单元202,用于分别对提取出的语言线性结构以及语块进行倒排;
具体地,倒排单元202对于每个合格的语块,将该语块所在的文档号、段落号、句子号、词序号、以及HTML信息等压缩为一个结构,放入该语块所在的动态文件中;其中语块可以为任意的字符串,主要包括如下类别:词典词条、专名、专名的内部词汇、各类词组/搭配关系、n-grams、连续的stopwords、词+数字、任意的ASCII串、邮编与电话号码等。
而对于每个合格的语言线性结构,倒排单元202可以将该语言线性结构所在的文档号、段落号、句子号、词序号、以及HTML信息等压缩为一个结构,放入该语块所在的动态文件中。
索引单元203,用于创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引;
具体地,索引单元203将内存中的全部语块索引项(index terms)写入vocabulary文件,将inverted hits合并后写入inv_lists文件,并将二者之间的关联信息写入dictionary文件。这三个文件构成一个完整、独立的索引段(index run),即语块子索引。
而且,将内存中的全部线性结构索引项(index terms)写入vocabulary文件,将inverted hits合并后写入inv_lists文件,并将二者之间的关联信息写入dictionary文件。这三个文件构成一个完整、独立的索引段(index run),即线性结构子索引。
最后,索引单元203将语言线性结构子索引和语块子索引予以合并,以形成整体索引。
匹配信息反馈单元204,用于从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
在一个实施方式中,匹配信息反馈单元204,用于依据语言线性结构和语块的匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。而且,当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,所述匹配程度越高。
在一个实施方式中,匹配信息反馈单元204,进一步用于预先设置语言线性结构重复权重和语块重复权重;并基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;其中当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
在一个实施方式中,匹配信息反馈单元204,用于在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
在一个实施方式中,用户的检索输入字符串为用第一语言表述的检索输入字符串;
此时,匹配信息反馈单元204,用于从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。
基于上述详细说明,本发明实施方式还提出了一种基于语意识别的自然语言处理系统。
图3为根据本发明实施方式的基于语意识别的自然语言处理系统结构图。
如图3所示,该系统包括信息收集装置301、资料存储装置302、自然语言处理装置303、索引存储装置304和检索服务装置305。其中:
信息收集装置301,用于对互联网进行扫描检测,爬取互联网上的信息;
资料存储装置302,用于存储由信息收集装置爬取到的互联网信息,并优选提供互联网信息的快速定位查找;
自然语言处理装置303,用于利用符号对存储于资料存储装置302中的篇章级的词语,切分为字符串,并从切出的字符串中提取出语言线性结构和语块;并分别对提取出的语言线性结构以及语块进行倒排;以及用于创建语言线性结构子索引以及语块子索引,并将语言线性结构子索引和语块子索引予以合并,以形成整体索引;
索引存储装置304,用于存储由自然语言处理装置303生成的整体索引;
检索服务装置305,用于从用户的检索输入字符串中提取出语言线性结构和语块,并根据索引存储装置存储的所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
其中,信息收集装置301进一步可以接受报刊、广电和各个媒体会员等所提供的上传信息(比如新闻资源)服务。
而且,检索服务装置305可以针对普通用户免费查询新闻,以及针对专业用户注册并付费之后开通高端服务。
优选地,自然语言处理装置303,用于根据句号、问号、叹号、逗号、顿号、分号、冒号、引号、括号、破折号、省略号、着重号、连接号、间隔号、书名号、专名号、注释号、隐讳号、虚缺号、斜线号、标识号、代替号、连珠号和箭头号,将所述篇章级的词语切分为字符串。
优选地,自然语言处理装置303,用于使用基于篇章的局部子串统计表作为临时辅助词典,用基于多路径规划的切分路径树作为切分模型,将所述篇章级的词的等字符编码统一转换为UTF-8编码格式;并对转换为UTF-8编码格式后的篇章级的词语利用符号切分为字符串。
而且,检索服务装置305,可以用于依据匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。
在一个实施方式中,检索服务装置305,用于依据语言线性结构和语块的匹配程度由高到低的顺序,向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。其中,优选地,当从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的重复字数越多时,所述匹配程度越高。
在一个实施方式中,检索服务装置305,进一步用于预先设置语言线性结构重复权重和语块重复权重;并基于所述语言线性结构重复权重计算从所述用户的检索输入中提取出的语言线性结构与整体索引中的语言线性结构的第一重叠指数,并基于语块重复权重计算从所述用户的检索输入中提取出的语块与整体索引中的语块的第二重叠指数;其中当所述第一重叠指数与第二重叠指数的和越高,所述匹配程度越高。
在一个实施方式中,检索服务装置305,用于在所述整体索引中分别检索该输入字符串的语言线性结构和语块,以确定整体索引中与该输入字符串的语言线性结构相对应的语言线性结构,以及确定整体索引中与该输入字符串的语块相对应的语块;向用户反馈整体索引中该相对应的语言线性结构和该相对应的语块所涉及的信息。
在一个实施方式中,检索服务装置305,用于从用户的检索输入字符串中提取出该输入字符串用第一语言表述的语言线性结构和语块;确定与该用第一语言表述的语言线性结构和语块相对应的用第二语言表述的语言线性结构和语块;根据所述的整体索引向用户反馈与用第二语言表述的语言线性结构和语块相匹配且同样用第二语言表述的信息。
可选地,第一语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文等,第二语言为中文。第一语言还可以为中文,第二语言为英文、日文、韩文、阿拉伯文、西班牙文、葡萄牙文、法文或俄罗斯文,等。
综上所述,在本发明实施方式中,首先将篇章级的词语利用符号切分为字符串,并从切出的字符串中提取出语言线性结构和语块,然后分别对提取出的语言线性结构以及语块进行倒排,以及创建语言线性结构子索引以及语块子索引,并形成整体索引,最后从用户的检索输入字符串中提取出语言线性结构和语块,并根据所述的整体索引向用户反馈与从用户的检索输入中提取出的语言线性结构和语块相匹配的信息。由此可见,应用本发明实施方式以后,运用了分析语言结构+关键词的技术手段,从语言的线性结构和关键词中精确地提炼出信息的真正意图,并用排序的方式智能选择反馈结果,可以基于计算机语意识别能力的核心技术,能够更加智能地识别信息背后的准确含义,从而可以准确地向用户反馈所需要的信息。
而且,通过将信息进行深层、多层次分析,不但了解了其代码,还识别了信息所要表达的意图,使计算机更智能、更人性化地与人类沟通。
另外,相比较以传统的关键词过滤方法来屏蔽不良信息,只能识别到词(通称关键词)这一级别,无法更深地延展也不能识别全篇所要表达的内容的缺点,本发明实施方式可以将语意识别技术应用于网络监管,以可以发挥更高的效率,使监管变得更加智能。比如:在某篇新闻中经常出现“达赖喇嘛蛊惑人心”和“西藏独立对藏民无益”等语句反复出现。全篇文章实际表达的是正面的信息内容,但因为“达赖”和“藏独”等关键词出现频率太多却极易被屏蔽。这就是使用单一关键词监管的软肋。若使用语意识别技术监管,其不但识别关键词,还会通过分析语句结构来识别所要表达的意图,从而实现更智能的网络监管。使上述文章不会被屏蔽,达到“西藏应该独立”--屏蔽、“西藏独立对西藏有害”--不屏蔽的精准效果。
而且,通过对语句进行精细化分析可以大幅提高信息监控的识别精度,可精确到小数点。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。