CN101071420A - 一种切分索引分词的方法及系统 - Google Patents
一种切分索引分词的方法及系统 Download PDFInfo
- Publication number
- CN101071420A CN101071420A CN 200710123051 CN200710123051A CN101071420A CN 101071420 A CN101071420 A CN 101071420A CN 200710123051 CN200710123051 CN 200710123051 CN 200710123051 A CN200710123051 A CN 200710123051A CN 101071420 A CN101071420 A CN 101071420A
- Authority
- CN
- China
- Prior art keywords
- character
- participle
- unit
- stream
- english
- 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.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种切分索引分词的方法,包括以下步骤:读取字符流;识别所述字符流,确定汉字、英文字符或数字以及不可识别字符;将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词;将英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序;按所述分词和所述英文字符串或者数字串排序的顺序划分所述字符流。本发明还公开切分索引分词的系统。本发明提供一种切分索引分词的方法及系统,能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强用户体验。
Description
技术领域
本发明涉及信息索引领域,特别涉及一种切分索引分词的方法及系统。
背景技术
现有信息检索系统已经日益普及,大到网络搜索引擎,小到特定应用信息检索系统。当需要进行汉字信息的处理时,信息检索系统就会遇到如何分词的问题。
目前的分词算法有很多种,其中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码通用模糊匹配,有效的确定英文字符串以及数字串的分词。因此,本发明第二种切分索引分词系统能够同时解决分词准确、一定量的冗余词以及单字分词的问题,增强了用户的体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1、一种切分索引分词的方法,其特征在于,包括以下步骤:
读取字符流;
识别所述字符流,确定汉字、英文字符或数字以及不可识别字符;
将已经确定的汉字、英文字符或数字与预先建立的词典树比较,确定匹配的分词;
将所述英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;
将上述匹配的分词和所述英文字符串或者数字串的分词以及不可识别字符,按所述字符流顺序进行排序;
按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流。
2、根据权利要求1所述的切分索引分词的方法,其特征在于,所述词典树为预先建立的trie字符树数据结构。
3、根据权利要求1所述的切分索引分词的方法,其特征在于,所述词典树为预先建立的二进制流词典结构。
4、根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,所述识别所述字符流后,将所述字符流存储在内部字符缓冲区。
5、根据权利要求4所述的切分索引分词的方法,其特征在于,所述字符流存储在内部字符缓冲区之前,将所述字符流进行统一字符的处理。
6、根据权利要求5所述的切分索引分词的方法,其特征在于,所述确定汉字、英文字符或数字以及不可识别字符后,去掉所述字符流中的标点符号。
7、根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,所述词典树在预先建立时去除无意义的单字。
8、根据权利要求1至3任一所述的切分索引分词的方法,其特征在于,按所述分词顺序以及所述每个分词和上述不可识别字符的长度划分所述字符流后进一步包括:
定期统计接收到的关键词的频率;
将频率高于预定数值的关键词添加到所述词典树中。
9、一种切分索引分词的系统,其特征在于,该系统包括:
读取单元,用于读取字符流;
字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;
词典树单元,预先存储词组和短语的词典树的数据结构单元;
比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;
通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;
分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符,按所述读取单元读取的字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;
分词划分单元,将所述读取单元读取的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分。
10、一种切分索引分词的系统,其特征在于,该系统包括:
读取单元,用于读取字符流;
字符流识别单元,用于将所述读取单元读取的字符流进行识别,确定汉字、英文字符或数字以及不可识别字符;
内部字符缓冲区单元,用于存储所述字符流识别单元识别的字符流;
词典树单元,预先存储词组和短语的词典树的数据结构单元;
比较单元,用于将所述字符流识别单元确定的汉字、英文字符或数字与所述词典树单元预先建立的词典树比较,确定匹配的分词;
通用模糊匹配单元,用于将所述比较单元比较后的英文字符或数字进行ASCII码通用模糊匹配,确定英文字符串或者数字串的分词;
分词管理单元,将所述比较单元和所述通用模糊匹配单元确定的分词以及所述字符流识别单元确定的不可识别字符,按所述内部字符缓冲区单元存储的所述字符流顺序进行排序,并记录每个上述分词和上述不可识别字符的长度;
分词划分单元,将所述内部字符缓冲区单元存储的字符流,按照所述分词管理单元记录的分词顺序以及所述每个分词和上述不可识别字符的长度进行划分;
词典自适应单元,由预先建立的统计模块统计关键词的出现频率,将所述出现频率高于预定数值的关键词添加到所述词典树单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101230513A CN100476800C (zh) | 2007-06-22 | 2007-06-22 | 一种切分索引分词的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101230513A CN100476800C (zh) | 2007-06-22 | 2007-06-22 | 一种切分索引分词的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101071420A true CN101071420A (zh) | 2007-11-14 |
CN100476800C CN100476800C (zh) | 2009-04-08 |
Family
ID=38898647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101230513A Active CN100476800C (zh) | 2007-06-22 | 2007-06-22 | 一种切分索引分词的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100476800C (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770478A (zh) * | 2008-12-26 | 2010-07-07 | 高德信息技术有限公司 | 数据检索方法、数据检索引擎及嵌入式终端 |
CN102331999A (zh) * | 2011-07-22 | 2012-01-25 | 大连亿创天地科技发展有限公司 | 一种用于医疗行业搜索框检索方法及系统 |
CN102455845A (zh) * | 2010-10-14 | 2012-05-16 | 北京搜狗科技发展有限公司 | 一种文字输入方法和装置 |
WO2012071922A1 (zh) * | 2010-12-02 | 2012-06-07 | 无敌科技(西安)有限公司 | 一种实现高命中率的逐词比对方法 |
CN102779163A (zh) * | 2012-06-18 | 2012-11-14 | 青岛禧泰房产数据技术有限公司 | 量化检索方法及量化检索系统 |
CN103201737A (zh) * | 2010-11-10 | 2013-07-10 | 乐天株式会社 | 关联词登记装置、信息处理装置、关联词登记方法、关联词登记装置用程序以及记录介质 |
CN103198146A (zh) * | 2013-04-19 | 2013-07-10 | 中国科学院计算技术研究所 | 面向网络流式数据的事件实时过滤方法和系统 |
WO2015014156A1 (zh) * | 2013-07-31 | 2015-02-05 | 深圳市华傲数据技术有限公司 | 一种药品名称数据匹配方法和系统 |
WO2015035821A1 (en) * | 2013-09-16 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for query segmentation in a search |
CN104881503A (zh) * | 2015-06-24 | 2015-09-02 | 郑州悉知信息技术有限公司 | 一种数据处理方法和装置 |
CN105095665A (zh) * | 2015-08-13 | 2015-11-25 | 易保互联医疗信息科技(北京)有限公司 | 一种中文疾病诊断信息的自然语言处理方法及系统 |
CN105184053A (zh) * | 2015-08-13 | 2015-12-23 | 易保互联医疗信息科技(北京)有限公司 | 一种中文医疗服务项目信息的自动编码方法及系统 |
CN106202464A (zh) * | 2016-07-18 | 2016-12-07 | 上海轻维软件有限公司 | 一种基于变异回溯算法的数据识别方法 |
CN106227661A (zh) * | 2016-07-22 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN106294371A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 字符串值域切分方法及装置 |
CN103870537B (zh) * | 2013-12-03 | 2017-02-01 | 山东金质信息技术有限公司 | 一种标准检索智能分词方法 |
CN103778200B (zh) * | 2014-01-09 | 2017-08-08 | 中国科学院计算技术研究所 | 一种报文信息源抽取方法及其系统 |
CN108009153A (zh) * | 2017-12-08 | 2018-05-08 | 北京明朝万达科技股份有限公司 | 一种基于搜索语句切词结果的搜索方法及系统 |
CN108197313A (zh) * | 2018-02-01 | 2018-06-22 | 中国计量大学 | 通过16位Trie树实现空间优化的词典索引方法 |
CN108388635A (zh) * | 2018-02-24 | 2018-08-10 | 杭州朗和科技有限公司 | 数据搜索方法、装置、介质和计算设备 |
CN108664468A (zh) * | 2018-05-02 | 2018-10-16 | 武汉烽火普天信息技术有限公司 | 一种基于词典和语义消歧的人名识别方法和装置 |
CN109582972A (zh) * | 2018-12-27 | 2019-04-05 | 信雅达系统工程股份有限公司 | 一种基于自然语言识别的光学字符识别纠错方法 |
CN109657738A (zh) * | 2018-10-25 | 2019-04-19 | 平安科技(深圳)有限公司 | 字符识别方法、装置、设备及存储介质 |
CN110362650A (zh) * | 2018-04-09 | 2019-10-22 | 深圳企业云科技股份有限公司 | 精准分词实现文件全文搜索的检索方法 |
CN112765318A (zh) * | 2021-01-20 | 2021-05-07 | 阅尔基因技术(苏州)有限公司 | 一种用于不孕不育症临床表型信息的自然语言处理方法及系统 |
CN113033193A (zh) * | 2021-01-20 | 2021-06-25 | 山谷网安科技股份有限公司 | 一种基于c++语言的混合型中文文本分词方法 |
CN113627722A (zh) * | 2021-07-02 | 2021-11-09 | 湖北美和易思教育科技有限公司 | 基于关键字分词的简答题评分方法、终端及可读存储介质 |
CN113836917A (zh) * | 2021-09-28 | 2021-12-24 | 广州华多网络科技有限公司 | 文本分词处理方法及其装置、设备与介质 |
CN114021564A (zh) * | 2022-01-06 | 2022-02-08 | 成都无糖信息技术有限公司 | 一种针对社交文本的切分取词方法及系统 |
CN114398880A (zh) * | 2021-12-06 | 2022-04-26 | 北京思特奇信息技术股份有限公司 | 一种用于优化中文分词的系统及方法 |
CN115391495A (zh) * | 2022-10-28 | 2022-11-25 | 强企宝典(山东)信息科技有限公司 | 在中文语境中检索关键词的方法、装置及设备 |
CN116226362A (zh) * | 2023-05-06 | 2023-06-06 | 湖南德雅曼达科技有限公司 | 一种提升搜索医院名称准确度的分词方法 |
-
2007
- 2007-06-22 CN CNB2007101230513A patent/CN100476800C/zh active Active
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770478B (zh) * | 2008-12-26 | 2013-04-24 | 高德信息技术有限公司 | 数据检索方法、数据检索装置及嵌入式终端 |
CN101770478A (zh) * | 2008-12-26 | 2010-07-07 | 高德信息技术有限公司 | 数据检索方法、数据检索引擎及嵌入式终端 |
CN102455845A (zh) * | 2010-10-14 | 2012-05-16 | 北京搜狗科技发展有限公司 | 一种文字输入方法和装置 |
CN102455845B (zh) * | 2010-10-14 | 2015-02-18 | 北京搜狗科技发展有限公司 | 一种文字输入方法和装置 |
CN103201737B (zh) * | 2010-11-10 | 2016-06-29 | 乐天株式会社 | 关联词登记装置、信息处理装置、关联词登记方法、关联词登记装置用程序以及记录介质 |
CN103201737A (zh) * | 2010-11-10 | 2013-07-10 | 乐天株式会社 | 关联词登记装置、信息处理装置、关联词登记方法、关联词登记装置用程序以及记录介质 |
WO2012071922A1 (zh) * | 2010-12-02 | 2012-06-07 | 无敌科技(西安)有限公司 | 一种实现高命中率的逐词比对方法 |
CN102331999A (zh) * | 2011-07-22 | 2012-01-25 | 大连亿创天地科技发展有限公司 | 一种用于医疗行业搜索框检索方法及系统 |
CN102779163A (zh) * | 2012-06-18 | 2012-11-14 | 青岛禧泰房产数据技术有限公司 | 量化检索方法及量化检索系统 |
CN103198146A (zh) * | 2013-04-19 | 2013-07-10 | 中国科学院计算技术研究所 | 面向网络流式数据的事件实时过滤方法和系统 |
CN103198146B (zh) * | 2013-04-19 | 2015-05-27 | 中国科学院计算技术研究所 | 面向网络流式数据的事件实时过滤方法和系统 |
WO2015014156A1 (zh) * | 2013-07-31 | 2015-02-05 | 深圳市华傲数据技术有限公司 | 一种药品名称数据匹配方法和系统 |
US11003700B2 (en) | 2013-09-16 | 2021-05-11 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for query segmentation in a search |
WO2015035821A1 (en) * | 2013-09-16 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for query segmentation in a search |
US10061844B2 (en) | 2013-09-16 | 2018-08-28 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for query segmentation in a search |
CN103870537B (zh) * | 2013-12-03 | 2017-02-01 | 山东金质信息技术有限公司 | 一种标准检索智能分词方法 |
CN103778200B (zh) * | 2014-01-09 | 2017-08-08 | 中国科学院计算技术研究所 | 一种报文信息源抽取方法及其系统 |
US10552441B2 (en) | 2015-05-15 | 2020-02-04 | Alibaba Group Holding Limited | Method and apparatus for multithreading extraction of data from a database |
CN106294371B (zh) * | 2015-05-15 | 2019-08-16 | 阿里巴巴集团控股有限公司 | 字符串值域切分方法及装置 |
CN106294371A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 字符串值域切分方法及装置 |
CN104881503A (zh) * | 2015-06-24 | 2015-09-02 | 郑州悉知信息技术有限公司 | 一种数据处理方法和装置 |
CN105095665B (zh) * | 2015-08-13 | 2018-07-06 | 易保互联医疗信息科技(北京)有限公司 | 一种中文疾病诊断信息的自然语言处理方法及系统 |
CN105184053A (zh) * | 2015-08-13 | 2015-12-23 | 易保互联医疗信息科技(北京)有限公司 | 一种中文医疗服务项目信息的自动编码方法及系统 |
CN105095665A (zh) * | 2015-08-13 | 2015-11-25 | 易保互联医疗信息科技(北京)有限公司 | 一种中文疾病诊断信息的自然语言处理方法及系统 |
CN105184053B (zh) * | 2015-08-13 | 2018-09-07 | 易保互联医疗信息科技(北京)有限公司 | 一种中文医疗服务项目信息的自动编码方法及系统 |
CN106202464A (zh) * | 2016-07-18 | 2016-12-07 | 上海轻维软件有限公司 | 一种基于变异回溯算法的数据识别方法 |
CN106202464B (zh) * | 2016-07-18 | 2019-12-17 | 上海轻维软件有限公司 | 一种基于变异回溯算法的数据识别方法 |
CN106227661A (zh) * | 2016-07-22 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN106227661B (zh) * | 2016-07-22 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN108009153A (zh) * | 2017-12-08 | 2018-05-08 | 北京明朝万达科技股份有限公司 | 一种基于搜索语句切词结果的搜索方法及系统 |
CN108197313A (zh) * | 2018-02-01 | 2018-06-22 | 中国计量大学 | 通过16位Trie树实现空间优化的词典索引方法 |
CN108388635A (zh) * | 2018-02-24 | 2018-08-10 | 杭州朗和科技有限公司 | 数据搜索方法、装置、介质和计算设备 |
CN110362650A (zh) * | 2018-04-09 | 2019-10-22 | 深圳企业云科技股份有限公司 | 精准分词实现文件全文搜索的检索方法 |
CN108664468A (zh) * | 2018-05-02 | 2018-10-16 | 武汉烽火普天信息技术有限公司 | 一种基于词典和语义消歧的人名识别方法和装置 |
CN109657738A (zh) * | 2018-10-25 | 2019-04-19 | 平安科技(深圳)有限公司 | 字符识别方法、装置、设备及存储介质 |
CN109657738B (zh) * | 2018-10-25 | 2024-04-30 | 平安科技(深圳)有限公司 | 字符识别方法、装置、设备及存储介质 |
CN109582972A (zh) * | 2018-12-27 | 2019-04-05 | 信雅达系统工程股份有限公司 | 一种基于自然语言识别的光学字符识别纠错方法 |
CN109582972B (zh) * | 2018-12-27 | 2023-05-16 | 信雅达科技股份有限公司 | 一种基于自然语言识别的光学字符识别纠错方法 |
CN113033193A (zh) * | 2021-01-20 | 2021-06-25 | 山谷网安科技股份有限公司 | 一种基于c++语言的混合型中文文本分词方法 |
CN112765318A (zh) * | 2021-01-20 | 2021-05-07 | 阅尔基因技术(苏州)有限公司 | 一种用于不孕不育症临床表型信息的自然语言处理方法及系统 |
CN113033193B (zh) * | 2021-01-20 | 2024-04-16 | 山谷网安科技股份有限公司 | 一种基于c++语言的混合型中文文本分词方法 |
CN113627722B (zh) * | 2021-07-02 | 2024-04-02 | 湖北美和易思教育科技有限公司 | 基于关键字分词的简答题评分方法、终端及可读存储介质 |
CN113627722A (zh) * | 2021-07-02 | 2021-11-09 | 湖北美和易思教育科技有限公司 | 基于关键字分词的简答题评分方法、终端及可读存储介质 |
CN113836917A (zh) * | 2021-09-28 | 2021-12-24 | 广州华多网络科技有限公司 | 文本分词处理方法及其装置、设备与介质 |
CN114398880A (zh) * | 2021-12-06 | 2022-04-26 | 北京思特奇信息技术股份有限公司 | 一种用于优化中文分词的系统及方法 |
CN114021564A (zh) * | 2022-01-06 | 2022-02-08 | 成都无糖信息技术有限公司 | 一种针对社交文本的切分取词方法及系统 |
CN114021564B (zh) * | 2022-01-06 | 2022-04-01 | 成都无糖信息技术有限公司 | 一种针对社交文本的切分取词方法及系统 |
CN115391495A (zh) * | 2022-10-28 | 2022-11-25 | 强企宝典(山东)信息科技有限公司 | 在中文语境中检索关键词的方法、装置及设备 |
CN115391495B (zh) * | 2022-10-28 | 2023-01-24 | 强企宝典(山东)信息科技有限公司 | 在中文语境中检索关键词的方法、装置及设备 |
CN116226362B (zh) * | 2023-05-06 | 2023-07-18 | 湖南德雅曼达科技有限公司 | 一种提升搜索医院名称准确度的分词方法 |
CN116226362A (zh) * | 2023-05-06 | 2023-06-06 | 湖南德雅曼达科技有限公司 | 一种提升搜索医院名称准确度的分词方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100476800C (zh) | 2009-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100476800C (zh) | 一种切分索引分词的方法及系统 | |
JP3143079B2 (ja) | 辞書索引作成装置と文書検索装置 | |
CN102142038B (zh) | 用于记号空间资料库的多级查询处理系统与方法 | |
US7031910B2 (en) | Method and system for encoding and accessing linguistic frequency data | |
JP3889762B2 (ja) | データ圧縮方法、プログラム及び装置 | |
CN107153647B (zh) | 进行数据压缩的方法、装置、系统和计算机程序产品 | |
Baeza-Yates | Introduction to Data Structures and Algorithms Related to Information Retrieval. | |
US6754650B2 (en) | System and method for regular expression matching using index | |
CN111737977B (zh) | 数据字典生成方法、数据查询方法、装置、设备及介质 | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN102103416B (zh) | 一种汉字输入方法和装置 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
US9720976B2 (en) | Extracting method, computer product, extracting system, information generating method, and information contents | |
Navarro | Document listing on repetitive collections with guaranteed performance | |
US20220005546A1 (en) | Non-redundant gene set clustering method and system, and electronic device | |
Sirén | Burrows-Wheeler transform for terabases | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
US8682900B2 (en) | System, method and computer program product for documents retrieval | |
CN105426490A (zh) | 一种基于树形结构的索引方法 | |
CN102521418A (zh) | 用于存储拼音的存储结构及拼音输入方法 | |
CN101576877A (zh) | 一种快速分词的实现方法 | |
JP4208326B2 (ja) | 情報索引装置 | |
KR101174184B1 (ko) | 통계에 의한 시소러스 데이터베이스 구축 방법 및 시소러스 데이터 구축 시스템 | |
CN113111655B (zh) | 分离词典的构建方法、基于分离词典的分词方法及设备 | |
Kanlayanawat et al. | Automatic indexing for Thai text with unknown words using trie structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151222 Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone Patentee after: Shenzhen Tencent Computer System Co., Ltd. Address before: 2, 518044, East 410 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |