专利名称:一种切分索引分词的方法及系统的制作方法
技术领域:
本发明涉及信息索引领域,特别涉及一种切分索引分词的方法及系统。
背景技术:
现有信息检索系统已经日益普及,大到网络搜索引擎,小到特定应用信息检索系统。当需要进行汉字信息的处理时,信息检索系统就会遇到如何分词的问题。
目前的分词算法有很多种,其中n元语法分词是一种不需要词典的机械分词方法,实现容易。但是该分词方法冗余度大,不能解决单字分词问题。
二元分词方法是将句子中任意出现的两个紧邻的字都分出来,建立倒排索引。例如句子“从上述实现步骤来看”会分出“从上、上述、述实、实现、现步、步骤、骤来、来看”等几个词。从上述分出来的分词可以看出,如“述实”、“现步”等分词并没有实际意义。而且该方法也不能解决单字分词的问题,不能对英文词进行划分。
最大匹配分词方法是一种按照最长词优先的原则匹配分词的方法。例如句子“从上述实现步骤来看”可能被分为“从、上述、实现步骤、来看”等几个词。这种方法分出的词比较少,但不一定是最短的,而且也不一定准确。由于这种分词方法没有一定量的冗余词,可能会导致查全率下降,在某些应用场合体验不好。
基于统计或语义分析的分词方法,需要解决歧义消解问题。这种分词方法得到的结果不一定是全面的,但比较准确。但由于这种分词方法实现起来比较麻烦,而且复杂的分析过程必然会从一定程度影响分词效率,这种分词方法不适用于小型特定应用信息检索系统。
发明内容
本发明的目的是提供一种切分索引分词的方法,该方法能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强用户体验。
本发明的目的还提供一种切分索引分词的系统,该系统能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强用户体验。
为解决上述技术问题,本发明实施例提供一种切分索引分词的方法,包括以下步骤读取字符流;识别所述字符流,确定汉字、英文字符或数字以及不可识别字符;将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词;将所述英文字符或数字进行ASCII码Wild match(通用模糊匹配),确定英文字符串或者数字串的分词;将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序;按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流。
优选地,所述词典树为预先建立的trie字符树数据结构。
优选地,所述词典树为预先建立的二进制流词典结构。
优选地,所述识别所述字符流后,将所述字符流存储在内部字符缓冲区。
优选地,在所述字符流存储在内部字符缓冲区之前,将所述字符流进行统一字符的处理。
优选地,所述确定汉字、英文字符或数字以及不可识别字符后,去掉所述字符流中的标点符号。
优选地,所述词典树在预先建立时去除无意义的单字。
优选地,按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流后进一步包括定期统计接收到的关键词的频率;将频率高于预定数值的关键词添加到所述词典树中。
本发明实施例提供一种切分索引分词的系统,该系统包括读取单元,用于读取字符流;
字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;词典树单元,预先存储词组和短语的词典树的数据结构单元;比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符按所述读取单元读取的字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;分词划分单元,将所述读取单元读取的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分。
本发明实施例还提供一种切分索引分词的系统,该系统包括读取单元,用于读取字符流;字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;内部字符缓冲区单元,用于存储所述字符流识别单元识别的字符流;词典树单元,预先存储词组和短语的词典树的数据结构单元;比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符按所述内部字符缓冲区单元存储的所述字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;
分词划分单元,将所述内部字符缓冲区单元存储的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分;词典自适应单元,由预先建立的统计模块统计关键词的出现频率,将所述出现频率高于预定数值的关键词添加到所述词典树单元。
本发明所述切分索引分词的方法能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强了用户的体验。
本发明实施例所述切分索引分词的方法,包括读取字符流;识别所述字符流中字符,确定汉字、英文字符或数字以及不可识别字符;将已经确定的汉字、英文字符或数字与预先建立的词典树相比较,确定匹配的分词;将英文字符或数字进行ASCII码Wild match,确定英文字符串或者数字串的分词;将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流中顺序进行排序;按所述分词和所述英文字符串或者数字串排序的顺序划分所述字符流。
由于在划分分词前,所有的汉字、英文字符或数字均与预先建立的词典树相比较,避免了无效词组或者短语的出现,而且保证了适当的冗余词。在单字可以作为一个词或者具有实际意义的时候,词典树中会按照正常的词组处理,所以可以实现单字作为一个分词的划分。并且本发明增加了ASCII码Wild match的过程,有效的确定英文字符串以及数字串的分词。
因此,本发明所述切分索引分词的方法能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强了用户的体验。
图1为本发明所述方法一种实施方式流程图;图2为本发明所述trie字符树结构示意图;图3本发明所述二进制流的词典树结构示意图;图4为本发明第一种切分索引分词系统结构图;图5为本发明第二种切分索引分词系统结构图。
具体实施例方式
本发明提供一种切分索引分词的方法,该方法能够同时解决分词准确、一定量的冗余词以及单字划分的问题,增强用户体验。
为了使本技术领域的技术人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。
参见图1,该图为本发明所述方法一种实施方式流程图。
S10、读取字符流。
读取的字符流中,可能包含汉字也可能包含英文字符、数字以及不可识别字符。
S20、识别所述字符流,确定汉字、英文字符或数字以及不可识别字符。
将步骤S10读取的字符流进行字符识别,确定所述字符流中字符具体为汉字或者英文字符或者数字或者不可识别字符。
由于对所述字符流中的字符进行识别,可以很容易实现对多种字符集的切分。
S30、将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词。
词典树可以是常用的汉语词或者短语的集合,也可以有英文字符和汉字的混合词。
将步骤S20确定的汉字、英文字符或数字与预先建立的词典树相比较,确定匹配的分词,并将该分词对应的字符串建立倒排索引。倒排索引为现有技术,在此不再详述。
对于一个字符流进行分词时,如下的字符串会被建立倒排索引。
1、该字符流中所有存在于所述词典树中的子串。
2、单个汉字建立倒排索引,实现了一元分词。
3、全英文字符组成的英文单词或者英文字符串。
4、全数字字符组成的数字字符串。
S40、将所述英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词。
ASCII码通用模糊匹配用于保证分词的完整性,当英文字符串或者数字串自成一词时,可以被标记为一个分词。
假如需要切分的字符流是“useU盘”,所述词典树中存在“U盘”这个词。Wild match扫描遇到第一个英文字符“u”时,一直向后扫描直至这个字符串中最后一个英文字符,查找得到字符流中完整的英文字符串“useU”,确定为一个英文字符串的分词。
S50、将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序。
在整个字符流分词排序过程中,汉字分词都是按照汉字字符在字符流中的位置有序排序的。但当遇到英文字符串或数字串时,产生的分词有可能出现无序甚至重复的现象,此时按所述字符流中字符的顺序进行排序。这样最终得到的分词都是按照各分词在原字符流中的顺序有序排列的,不需要专门调用排序模块进行处理。
S60、按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流。
步骤S50已经将上述各分词进行有序的排列,此时只需按所述各分词顺序以及所述各分词和上述不可识别字符的长度划分所述字符流即可。
由于在划分分词前,所有的汉字、英文字符串或数字均与预先建立的词典树相比较,避免了无效词组或者短语的出现,而且保证了适当的冗余词。在单字可以作为一个词或者具有实际意义的时候,所述词典树中会按照正常的词组处理,因此能够实现单字作为一个分词的划分。并且本发明增加了ASCII码通用模糊匹配的过程,有效的确定英文字符串以及数字串的分词。因此,本发明所述切分索引分词的方法能够同时解决分词准确、一定量的冗余词以及单字划分的问题,增强了用户的体验。
现有二元分词、三元分词等分词方法虽然不需要词典树,但是生成的词比较多,很多词是没有意义的,而且无法对中英文混合词的划分。本发明实施例所述方法应用了词典树,由于分词的划分是以词典树为依据,有效的避免了无意义词的划分。
本发明实施例所述方法根据实际数据,最终产生的索引比二元分词多一倍,但实际上是由于单个汉字被进行分词,能够实现一元分词。本发明优选方案,在建立词典树时将无意义的单字或者不需要搜索的单字去掉。
从效率上看,本发明实施例所述方法比n元语法分词要稍慢,因为增加了词典树查找匹配的过程。但本发明实施例所述方法在搜索的时候,词典树中的词将会以最短路径的形式进行分词,从而大大减少了检索索引的次数,对搜索性能有很大改善。
本发明实施例所述方法与最大匹配比较,由于采用的是全切分,查全率就可以达到100%,比最大匹配更全面。这在小型信息检索中能够满足要求。
本发明实施例所述方法的分词效率是比较快的。经过粗略测试,在linux下,语料为一般网页,词典树为海量分词词典树,大约有20多万个单词,占用内存80M左右。通过本发明实施例所述方法进行分词,一秒钟能处理3至4M的数据。
建立索引有很多过程,分词只是第一步,相对于其他过程来说,一秒能处理3至4M的数据已经很快。因为其他过程例如合并索引等需要硬盘I/O,速度相对较慢。因此,在整个索引过程中本发明所述分词方法不会造成瓶颈现象。
我们以“useU盘”这个字符流为例,具体说明分词过程。
由于每个字符都会被查找,上述第一个英文字符被标记为这个英文字符串分词的开始,并且标记“u”是这个英文字符串的一个分词的开始。
“u”的下一个位置字符为“s”,词典中查不到“us”,不是分词的结束,不输出任何分词。
依此类推,当遇到第二个“U”时,发现字典里面有词“U盘”,说明这个位置也是一个分词的开始。
同时回溯,把前面标记过的分词开始位置第一个“u”和当前位置组成一个分词“use”输出。并标记当前位置是分词的开始,接下来依次进行扫描。
最终输出的分词为“use”“useU”“U盘”。
数字串的通用模糊匹配过程与上述英文字符串的过程形似,具体数字串的通用模糊匹配过程在此不再详述。
本发明所述方法的优选实施方式,包括以下步骤S10、读取字符流。
S20、识别所述字符流,确定汉字、英文字符或数字以及不可识别字符。
S21、将识别后的字符流存储在内部字符缓冲区。
所述字符流存储在内部字符缓冲区之前,还可以将所述字符流进行统一字符的处理。
S30、将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词。
S40、将英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词。
S50、将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序。
S60、将所述内部字符缓冲区存储的字符流按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流。
所述步骤S60后还可以包括S61、定期统计接收到的关键词的频率。
定期统计接收到的关键词的频率可以由预先建立的统计模块进行统计。统计模块用于统计关键词频率,这种统计模块可以采用现有的用户统计关键词的通用统计模块。具体统计模块的工作原理为公知常识在此不再详述。
S62、将频率高于预定数值的关键词添加到所述词典树中。
用户可以根据自身行业或者具体需求,定期统计用户的输入关键字,将频率高于预定数值的关键词添加到所述词典树中。预定数值可以根据实际需要进行设定。
用户可以将统计后的高频关键词加入到所述词典树中,然后再重新建立索引。这样所述词典树就可以具有自适应性,对检索速度将是一个很大的提升。
本发明实施例所述词典树可以为预先建立的map映射表或者hash_map(哈希表)的数据结构。所述词典树采用map映射表或者hash_map数据结构时,需要查找两次数据,而且无法得知分词在哪个字符终止,需要遍历整个句子才能查找到分词。
本发明所述词典树优选情况,采用预先建立的trie字符树数据结构。采用trie字符树能够比较好的满足要求。所述词典树采用trie字符树可以在一次查找过程中查找到多个词,而且容易找到分词的终止位置。关于trie字符树目前已经有很多成熟的模型,本文不再赘述。
参见图2,该图为本发明所述trie字符树结构示意图。
图2中每个方框代表一个节点,对应表示一个汉字或字符。带“*”标记的方框,表示从根节点到该节点的路径所组成的汉字集或者字符串对应于词典树中的一个词或短语。方框中的数字是对该节点的编号。
例如识别的字符流是“中华人是伟大的”。从“中”开始遍历,直至“是”失配时,就得到两个词“中华”和“中华人”。由于以“中”字开头的词,到达“人”字后没有具体分词对应,因此就不需要再向后扫描。因此采用trie字符树的词典树查找过程是比较高效的。
字符串“中华人是伟大的”,由前向后扫描,查找以第一个位置开始在词典树中的所有词,过程如下A、第一个字是“中”,在trie字符树中匹配到节点1。
B、继续查看第二个字是“华”,在节点1中找“中”的子节点,匹配到节点2。
C、继续查看第三个字是“人”,在节点2中找“华”的子节点,匹配到节点3。
D、继续查看第四个字是“是”,在节点3中“人”的子节点,没有表示“是”的,于是退出。
这样从“中”开始,查找到“中华”,“中华人”这样两个分词。因为在词典中节点2(华)和节点3(人)被标记了词尾“*”。从根节点1到2和3的两条路径,就可以分别用1-2和1-2-3表示“中华”和“中华人”这两个具体分词。
由上述查找的过程可以看出,最大匹配的次数在最糟的情况下等于词典树中最长词的长度。但实际上这个长度的平均值很小,不可能有很长的词。因此该算法可以看作常数级的算法,用复杂度函数O(1)表示。
复杂度函数O(1)从算法过程来看,主要是一个顺序扫描识别字符和在词典树中查找的过程。在前面介绍的词典树中查找一个字符串,查找的次数等于该位置处的最长词的长度。由于实际词典树中的词长度都是有限的,因此平均查找次数可以是一个常数c。一般常数c<5。当遇到英文字符或数字字符时需要回溯找分词,但实际上英文字符串开头的分词都是一些很特殊的词,出现几率很小。这部分的影响对整个分词的复杂度影响可以忽略不计。
识别字符的过程也是常数复杂度的,对于一个长度为n的字符流,整个算法复杂度为O(k×n)。其中k为一常数因子,是线性复杂度。k一般平均为10左右。
本发明优选方式,保存两个字符缓冲区,分别用于存储输入字符流和处理后的输出字符流以及分出的分词的位置、长度信息。实际应用中,很少存在无分界符的长句子,所以可以将上述字符缓冲区容量设定为定值。当上述字符缓冲区装不下时,先返回该字符缓冲区中的分词集合,再填充该分词缓冲区的容量,最后重新进行分词。我们用空间复杂度表示程序需要使用的内存与输入数据规模即句子长度的函数关系,该函数是定值,不会随句子长度而增加。因此空间复杂度是常数,与字符流长度无关。
字符缓冲区容量优选方式采用1024bit,当然可以根据具体需要设定其它数值。
本发明所述词典树还可以采用二进制流的词典树,这样可以保证每个节点的子节点数量较少。二进制流的词典树是直接以数组下标定位的。并且英文字符串也可以放入二进制流的词典树中,从而实现了中英文混合词的划分。
参见图3,该图为本发明所述二进制流的词典树结构示意图。
本发明所述二进制流的词典树结构的每个节点不是一个汉字,而是根据二进制数据拆成的几个bit。
假设是4个bit,一个汉字包括两个字节,这样就需要4个节点。一个ASCII码字符需要2个节点。
例如“中”的二进制表示为0xd0d6,那么按照bit位,从低位到高位拆分成为6d0d四个数据块,则“中”字的树可以表示为图3所示形式。
“6”对应第一节点31;第一个“d”对应第二节点32;“0”对应第三节点33;第二个“d”对应第四节点34。
本发明所述方法采用二进制流的词典树时,读取的字符串被看成二进制流。
例如查找“中华人”,它们的二进制格式为0xd0d6 0xaabb 0xcbc8,转成4bit表示的数字流为6d0dbbaacbc8。当进行查找时,依次进行匹配。6匹配第一节点31,第一个d匹配第二节点32,0匹配第三节点33,第二个d匹配第四节点34。第四节点34是词尾的标记,则该次查找过程中6d0d合起来是一个词,再还原成二进制格式0xd0d6即得到词“中”。这样每个节点的子节点最多有16个,由于4bit只能表示16种不同的数字,从而大大节省了空间。二进制流的词典树是对tries树的一种改进实现方式。
当进行索引分词时,从前到后扫描该字符串,可以滤掉标点符号,在词典树中查找包含于该字符串中的所有词并输出。全英文字符组成的串或者全数字组成的串被认为是一个单词,也作为一个分词输出。在索引分词的时候具有一定量的冗余词。
本发明还提供一种切分索引分词的系统,该系统能够同时解决分词准确、一定量的冗余词以及单字的分词问题,增强用户体验。
参见图4,该图为本发明第一种切分索引分词系统结构图。
本发明第一种切分索引分词系统,该系统包括读取单元41,用于读取字符流。
字符流识别单元42,用于将所述读取单元41读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符。
由于读取单元41读取的字符流可能包含汉字、英文字符或数字以及不可识别字符,为了便于进行分词的划分,需要对其进行识别。
词典树单元43,预先存储词组和短语的词典树的数据结构单元。
词典树单元43是很重要的一个单元,可以有效的减少多余的冗余词。
比较单元44,用于将所述字符流识别单元42确定的汉字、英文字符或数字与所述词典树单元43预先建立的词典树比较,确定匹配的分词。
通用模糊匹配单元45,用于将所述比较单元44比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词。
分词管理单元46,将所述比较单元44和所述通用模糊匹配单元45确定的分词以及所述字符流识别单元42确定的不可识别字符按所述读取单元41读取的字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度。
分词划分单元47,将所述读取单元41读取的字符流,按照所述分词管理单元46记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分。
由于本发明实施例所述系统的比较单元44将所述字符流识别单元42确定的汉字、英文字符或数字与所述词典树单元43预先建立的词典树比较,确定匹配的分词。这样可以有效避免无效词组或者短语的出现,保证一定量的冗余词。在单字可以作为一个词或者具有实际意义的时候,词典树单元43中会按照正常的词组处理,所以可以实现单字作为一个分词的分词。并且本发明实施例所述系统增加了通用模糊匹配单元45,对所述比较单元44比较后的英文或数字进行ASCII码通用模糊匹配,有效的确定英文字符串以及数字串的分词。因此,本发明第一种切分索引分词系统能够同时解决分词准确、一定量的冗余词以及单字的分词问题,增强了用户的体验。
参见图5,该图为本发明第二种切分索引分词系统结构图。
本发明第二种切分索引分词系统相对于第一种切分索引分词系统增加了内部字符缓冲区单元48和词典自适应单元49。
读取单元41,用于读取字符流。
字符流识别单元42,用于将所述读取单元41读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符。
所述内部字符缓冲区单元48用于存储所述字符流识别单元42识别的字符流,为分词划分单元47提供分词文本。
当然字符流识别单元42还可以将识别的字符流进行字符统一后,才发送到所述内部字符缓冲区单元48中保存。
词典树单元43,预先存储词组和短语的词典树的数据结构单元。
比较单元44,用于将所述字符流识别单元42确定的汉字、英文字符或数字与所述词典树单元43预先建立的词典树比较,确定匹配的分词。
通用模糊匹配单元45,用于将所述比较单元44比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词。
分词管理单元46,将所述比较单元44和所述通用模糊匹配单元45确定的分词以及所述字符流识别单元42确定的不可识别字符按所述内部字符缓冲区单元48存储的所述字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度。
所述分词划分单元47,将所述内部字符缓冲区单元48存储的字符流,按照所述分词管理单元46记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分。
词典自适应单元49,由预先建立的统计模块50统计关键词的出现频率,将所述出现频率高于预定数值的关键词添加到所述词典树单元43。
预先建立的统计模块50用于统计关键词频率。统计模块50可以采用现有的用户统计关键词的通用统计模块。具体统计模块的工作原理为公知常识在此不再详述。
词典自适应单元49根据所述统计模块50统计的关键词频率进行自适应操作。当所述统计模块50统计的关键词频率大于预定数值时,所述词典自适应单元49将该关键词添加到所述词典树单元43中。
由于本发明实施例所述第二种切分索引分词系统,比较单元44将所述字符流识别单元42确定的汉字、英文字符或数字与所述词典树单元43预先建立的词典树比较,确定匹配的分词。这样有效避免了无效词组或者短语的出现,而且保证了一定量的冗余词。在单字可以作为一个词或者具有实际意义时,词典树单元43可以按照正常的词组处理,所以可以实现单字作为一个分词的划分。并且本发明实施例所述第二种切分索引分词系统具有通用模糊匹配单元45,对所述比较单元44比较后的英文字符或数字进行ASCII码通用模糊匹配,有效的确定英文字符串以及数字串的分词。因此,本发明第二种切分索引分词系统能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强了用户的体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种切分索引分词的方法,其特征在于,包括以下步骤读取字符流;识别所述字符流,确定汉字、英文字符或数字以及不可识别字符;将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词;将所述英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序;按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流。
2.根据权利要求1所述的切分索引分词的方法,其特征在于,所述词典树为预先建立的trie字符树数据结构。
3.根据权利要求1所述的切分索引分词的方法,其特征在于,所述词典树为预先建立的二进制流词典结构。
4.根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,所述识别所述字符流后,将所述字符流存储在内部字符缓冲区。
5.根据权利要求4所述的切分索引分词的方法,其特征在于,所述字符流存储在内部字符缓冲区之前,将所述字符流进行统一字符的处理。
6.根据权利要求5所述的切分索引分词的方法,其特征在于,所述确定汉字、英文字符或数字以及不可识别字符后,去掉所述字符流中的标点符号。
7.根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,所述词典树在预先建立时去除无意义的单字。
8.根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流后进一步包括定期统计接收到的关键词的频率;将频率高于预定数值的关键词添加到所述词典树中。
9.一种切分索引分词的系统,其特征在于,该系统包括读取单元,用于读取字符流;字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;词典树单元,预先存储词组和短语的词典树的数据结构单元;比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符,按所述读取单元读取的字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;分词划分单元,将所述读取单元读取的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分。
10.一种切分索引分词的系统,其特征在于,该系统包括读取单元,用于读取字符流;字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;内部字符缓冲区单元,用于存储所述字符流识别单元识别的字符流;词典树单元,预先存储词组和短语的词典树的数据结构单元;比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符,按所述内部字符缓冲区单元存储的所述字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;分词划分单元,将所述内部字符缓冲区单元存储的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分;词典自适应单元,由预先建立的统计模块统计关键词的出现频率,将所述出现频率高于预定数值的关键词添加到所述词典树单元。
全文摘要
本发明公开了一种切分索引分词的方法,包括以下步骤读取字符流;识别所述字符流,确定汉字、英文字符或数字以及不可识别字符;将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词;将英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序;按所述分词和所述英文字符串或者数字串排序的顺序划分所述字符流。本发明还公开切分索引分词的系统。本发明提供一种切分索引分词的方法及系统,能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强用户体验。
文档编号G06F17/30GK101071420SQ20071012305
公开日2007年11月14日 申请日期2007年6月22日 优先权日2007年6月22日
发明者王启明 申请人:腾讯科技(深圳)有限公司