CN107451122B - 一种基于Lucene的动态n元分词方法 - Google Patents

一种基于Lucene的动态n元分词方法 Download PDF

Info

Publication number
CN107451122B
CN107451122B CN201710674957.8A CN201710674957A CN107451122B CN 107451122 B CN107451122 B CN 107451122B CN 201710674957 A CN201710674957 A CN 201710674957A CN 107451122 B CN107451122 B CN 107451122B
Authority
CN
China
Prior art keywords
word
character
word segmentation
stop
read
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.)
Active
Application number
CN201710674957.8A
Other languages
English (en)
Other versions
CN107451122A (zh
Inventor
赵万亮
姜思远
王月铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Huafei Data Technology Co ltd
Original Assignee
Nanjing Huafei Data Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Huafei Data Technology Co ltd filed Critical Nanjing Huafei Data Technology Co ltd
Priority to CN201710674957.8A priority Critical patent/CN107451122B/zh
Publication of CN107451122A publication Critical patent/CN107451122A/zh
Application granted granted Critical
Publication of CN107451122B publication Critical patent/CN107451122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及互联网大数据领域,尤其涉及一种基于Lucene的动态n元分词方法。包括1)设置停用词;2)指定不同字符集;3)预处理;4)指定不同字符集的分词颗粒度n;5)分词。本发明通过一种基于Lucene的动态n元分词方法,可将拥有不同字符集的机器数据,动态设置n的值。当词表过于庞大时,可将n的值变大。由于本发明可以设置不同的字符集,例如中文字符集,字母字符集,数字字符集,韩文字符集,日文字符集等,那么可以兼容多种不同国家的语言的分词,解决了Lucene自带分词器和第三方中文分词器中语言不够兼容的缺陷。

Description

一种基于Lucene的动态n元分词方法
技术领域
本发明涉及互联网大数据领域,尤其涉及一种基于Lucene的动态n元分词方法。
背景技术
现在大数据领域中增长最快,内容最复杂,也最具有价值的一类数据是机器数据,该数据已将占据大数据领域中的90%。目前的分词器对该类数据的处理存在较多问题,如分词后词表太长,查询时间长。
目前Lucene自带的分词器,例如Standard Analyzer标准分词器,根据空格和符号来完成分词;Whitespace Analyzer空格分词器,使用空格作为间隔符的词汇分割分词器;Simple Analyzer简单分词器,具备基本西方字符词汇的分词器等其他分词器,对英文来说是非常适合的,把单词切分成一个一个词根,但是对于中文来说只是简单把中文分成一个一个汉字,那么以上Lucene自带分词器的技术,相对于中文分词来说就显得相形见绌了,因为它无法满足中文,当然也包括一些其他国家的语言,如日文,韩文等分词需求。
现在也出现一些第三方中文分器,例如:IK Analyzer IK分词器以词典为基础的正反向全切分,以及正反向最大匹配切分的两种方法,是一个很好的中文分词器,但是由于其具有庞大的词典库,导致分词的速度变慢。再比如MMSeg4J分词器,使用Chih-Hao Tsai的MMSeg算法(基于正向最大匹配切分方法),对于内存的消耗较大,分词速度也不近人意。其他的第三方分词器,如Binary Analyzer 二元分词器,将词汇进行交叉双字分割,以实现分词效果,但是无法根据不同语言(不同字符集)动态改变分割词的个数,即无法动态改变n的值。
综上所述,Lucene自带的分词器无法兼顾中文的分词,而第三方的中文分词器,分词速度慢,也无法兼顾其他语言(韩文,日文等)的分词。
另一方面,对于机器数据(目前大数据领域中增长最快,内容最复杂,也最具有价值的一类数据)的分词效果也差强人意,分词后的词表非常庞大,导致查询速度慢。
可见,现有技术中对于词汇的分词受限于语言(多种字符集),分词速度,查询速度和数据类型(机器数据)。
发明内容
本发明的目的是针对上述不足之处提供一种基于Lucene的动态n元分词方法,采用基于Lucene的动态n元分词的方法,在多语言(多字符集),多种数据类型(机器数据)的情况下,可以实现多种语言多种数据类型词汇的动态n元分词,达到分词速度快,查询速度快,可动态修改n值,支持模糊查询,词表短的效果。
本发明是采取以下技术方案实现的:
一种基于Lucene的动态n元分词方法,包括以下步骤:
1)设置停用词,
所述停用词的含义为,不进行分词的词,读到该词直接跳过忽略,即不建立索引的词;
2)指定不同字符集,
所述不同字符集是需要进行分词的词,即要建立索引的词,也即用户将查询的词;该字符集根据用户需求来指定;
3)预处理,
将需要进行分词的文档内容,进行以下处理,即将所有的英文大写字母转换成小写字母进行存储,建立索引;将所有全角的字符转换为半角字符进行存储,建立索引;将所有的中文繁体字转化为中文简体进行存储,建立索引;
4)指定不同字符集的分词颗粒度n,
对步骤2)中指定的字符集指定不同的分词方式,即设置分词的颗粒度n;
5)分词,
5-1)逐字读取文件内容,判断读取内容是否为空;如果读取内容为空就直接结束本步骤;不为空,进入下一步;
5-2)判断是否是停用词,如果是停用词,直接跳过,从该停用词后面的内容开始,进入步骤5-1)读取文件内容;如果不是停用词,进入下一步;
5-3)判断步骤5-2)中读取字符的字符类型,根据字符类型和步骤4)中预设的颗粒度进行循环读取词汇,直到下一个字符的字符类型不为步骤5-2)中读取字符的字符类型或者是停用词;
5-4)将步骤5-3)中读取到的字符串根据相应的颗粒度进行分词,建立索引;
5-5)回到步骤5-1),直到读取字符为空,即文件内容读完,结束分词。
步骤1)中所述的停用词包括但不限于常见标点符号、空格或换行符等,常见标点符号包括逗号、冒号、句号等;当需要对标点符号进行分词,建立索引时,停用词不能为标点符号;停用词能够根据需求设定。
步骤2)所述的字符集包括但不限于中文字符集、日文字符集、英文字符集和数字字符集,没有被指定的字符和特殊的图形符号作为特殊字符集,没指定的字符包括印度语的字符集。
步骤2)中指定的字符集的数量没有限制,用户可以任意指定多个字符集。
步骤4)中每种字符集的分词颗粒度n根据字符集的特性进行设置,例如:中文字符集的颗粒度n设置为2,即中文的词汇进行二元分词;英文字符集的颗粒度n设置为5,即每5个字母进行切分,即五元分词。
步骤5)中假设该读取字符的字符类型是英文,颗粒度n为5,那么继续逐字读取文件内容,直到下一个字符的字符类型不为英文字符;将目前读取的字符串,例如“abcdefg”,根据颗粒度5进行分词,建立索引;然后继续逐字读取文件内容,判读字符类型,不断循环往复,直到读取字符为空,也就是文件内容读完为止,结束程序。
本发明通过一种基于Lucene的动态n元分词方法,可将拥有不同字符集的机器数据,动态设置n的值。当词表过于庞大时,可将n的值变大。由于本发明可以设置不同的字符集,例如中文字符集,字母字符集,数字字符集,韩文字符集,日文字符集等,那么可以兼容多种不同国家的语言的分词,解决了Lucene自带分词器和第三方中文分词器中语言不够兼容的缺陷。
本发明的优点主要有:
1)可以设置不同字符集,兼容多种语言的分词;因此不仅限于中文,韩文,日文,甚至可以指定特殊符号字符集进行切词,建立索引;
2)可以对每种字符集设置不同的颗粒度(n),动态的颗粒度n使得每个字符集的切词颗粒度都可以不一样的,实现多种字符集不同的切分方式,因此比较适合机器数据;
3)现有的分词方法大多具有庞大的辞典,因此分词速度很慢,本发明没有大量的词库,不需要依赖词典进行分词,能很好地提升分词速度;
4)本发明方法针对互联网大数据领域,大数据百分之90是机器数据,没有那么多中文语句需要进行语义分析,中文只是非常非常少的一部分,所以那种带词库的中文分词器并不合适大数据领域使用,本发明尤为适合机器数据的处理;
5)经过本发明方法分词后的词表短,因此查询速度快;
6)由于实现n元分词,支持模糊查询;
7)本发明可以指定字符集,即对于多种语言,甚至小语种都可以通用。
附图说明
以下将结合附图对本发明作进一步说明:
图1是本发明方法的流程框图;
图2是图1中本发明方法步骤4)的方法示意图;
图3是图1中本发明方法步骤5)的流程示意图。
图1中S1表示步骤1),S2表示步骤2),S3表示步骤3),S4表示步骤4),S5表示步骤5)。
具体实施方式
参照附图1~3,本发明一种基于Lucene的动态n元分词方法,应用于互联网大数据领域。目前机器数据是大数据领域中增长最快,内容最复杂,也最具有价值的一类数据,占据90%的比重。机器数据是由服务器,存储,互联网及物联网中的设备或程序生成的大量结构化,非结构化的数据。例如当你来到公司,掏出员工卡,通过门禁刷卡的方式,十分方便地完成了你的上班考勤。那么一系列数据将会保存,这些数据就是机器数据。
下面将通过一部分机器数据作为样例,来说明本发明分词方法,本样例的字符如下:
"sum_doc_freq":14939557,"sum_total_term_freq":15375890,"searchable":true,"aggregatable":false,"min_value":"\n38","max_value":"黑风雨"●●◇▽♥♥♥。
一种基于Lucene的动态n元分词方法,包括如下步骤:
S1、设置停用词
停用词指的是不进行分词的词,读到该词直接跳过忽略,即不建立索引的词,本实施例采用的停用词设置为:‘"’,‘:’,‘_’,‘ ’,‘\n’,‘,’;
S2、指定不同字符集
本实施例中设置4种字符集,中文字符集,英文字符集,数字字符集,除上述三种剩下的所有字符属于特殊字符集;
S3、预处理
在预处理阶段,本发明将会需要进行分词的文档内容,进行一定的处理,将所有的英文大写字母转换成小写字母进行存储,建立索引;将所有全角的字符转换为半角字符进行存储,建立索引;将所有的中文繁体字转化为中文简体进行存储,建立索引等;
S4、指定不同字符集的分词颗粒度n
在步骤S2时,指定了多种字符集,那么在步骤S4将要对这些字符集指定不同的分词方式,即设置分词的颗粒度n;中文字符集的颗粒度设置为2,英文字符集的颗粒度设置为6,数字字符集的颗粒度设置为4,特殊字符集不进行分词,直接建立索引;
S5、分词
在步骤S5中,详细图形说明见图3;首先读取文件内容逐字读取,判断读取内容是否为空;读取内容为空的话,就会结束程序;不为空,判断是否是停用词,如果是停用词,直接跳过,继续读取文件内容;如果不是停用词,那么判断读取字符的字符类型,获取该字符集的颗粒度n,然后继续逐字读取文件内容,直到下一个字符的字符类型不为该字符集。将目前读取的字符串,根据颗粒度进行分词,建立索引。然后继续逐字读取文件内容,判读字符类型,不断循环往复,直到读取字符为空,也就是文件内容读完为止,结束程序。
根据上述机器数据,使用本发明方法,最后分词的结果为:
Figure 655071DEST_PATH_IMAGE002
最后将上述词表,使用Lucene建立索引;如果觉得词表过于庞大,可以将颗粒度n变大,使词表减少。
当用户进行查询时,只要出现上述词表中的任意一个词,即可找到该词在文档中的具体位置。即实现了模糊查询的功能。

Claims (4)

1.一种基于Lucene的动态n元分词方法,其特征在于,包括以下步骤:
1)设置停用词,
所述停用词的含义为,不进行分词的词,读到该词直接跳过忽略,即不建立索引的词;
2)指定不同字符集,
所述不同字符集是需要进行分词的词,即要建立索引的词,也即用户将查询的词;该字符集根据用户需求来指定;
3)预处理,
将需要进行分词的文档内容,进行以下处理,即将所有的英文大写字母转换成小写字母进行存储,建立索引;将所有全角的字符转换为半角字符进行存储,建立索引;将所有的中文繁体字转化为中文简体进行存储,建立索引;
4)指定不同字符集的分词颗粒度n,
对步骤2)中指定的字符集指定不同的分词方式,即设置分词的颗粒度n;特殊字符集不进行分词,直接建立索引;
5)分词,
5-1)逐字读取文件内容,判断读取内容是否为空;如果读取内容为空就直接结束本步骤;不为空,进入下一步;
5-2)判断是否是停用词,如果是停用词,直接跳过,从该停用词后面的内容开始,进入步骤5-1)读取文件内容;如果不是停用词,进入下一步;
5-3)判断步骤5-2)中读取字符的字符类型,根据字符类型和步骤4)中预设的颗粒度进行循环读取词汇,直到下一个字符的字符类型不为步骤5-2)中读取字符的字符类型或者是停用词;
5-4)将步骤5-3)中读取到的字符串根据相应的颗粒度进行分词,建立索引;
5-5)回到步骤5-1),直到读取字符为空,即文件内容读完,结束分词;
步骤1)中所述的停用词包括常见标点符号、空格或换行符;当需要对标点符号进行分词,建立索引时,停用词不能为标点符号;停用词能够根据需求设定;
步骤2)所述的字符集包括中文字符集、日文字符集、英文字符集和数字字符集,没有被指定的字符和特殊的图形符号作为特殊字符集。
2.根据权利要求1所述的基于Lucene的动态n元分词方法,其特征在于,没指定的字符包括印度语的字符集。
3.根据权利要求1所述的基于Lucene的动态n元分词方法,其特征在于,步骤2)中指定的字符集的数量不受限制。
4.根据权利要求1所述的基于Lucene的动态n元分词方法,其特征在于,步骤4)中每种字符集的分词颗粒度n根据字符集的特性进行设置。
CN201710674957.8A 2017-08-09 2017-08-09 一种基于Lucene的动态n元分词方法 Active CN107451122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710674957.8A CN107451122B (zh) 2017-08-09 2017-08-09 一种基于Lucene的动态n元分词方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710674957.8A CN107451122B (zh) 2017-08-09 2017-08-09 一种基于Lucene的动态n元分词方法

Publications (2)

Publication Number Publication Date
CN107451122A CN107451122A (zh) 2017-12-08
CN107451122B true CN107451122B (zh) 2020-11-13

Family

ID=60491721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710674957.8A Active CN107451122B (zh) 2017-08-09 2017-08-09 一种基于Lucene的动态n元分词方法

Country Status (1)

Country Link
CN (1) CN107451122B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963965A (zh) * 2009-07-23 2011-02-02 阿里巴巴集团控股有限公司 基于搜索引擎的文档索引方法、数据查询方法及服务器
CN104699724A (zh) * 2013-12-10 2015-06-10 北京先进数通信息技术股份公司 一种基于Lucene的数据搜索方法及装置
CN105426539A (zh) * 2015-12-23 2016-03-23 成都电科心通捷信科技有限公司 一种基于词典的lucene中文分词方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462558B (zh) * 2014-12-26 2017-12-08 浙江宇视科技有限公司 一种修改Lucene索引文件中词的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963965A (zh) * 2009-07-23 2011-02-02 阿里巴巴集团控股有限公司 基于搜索引擎的文档索引方法、数据查询方法及服务器
CN104699724A (zh) * 2013-12-10 2015-06-10 北京先进数通信息技术股份公司 一种基于Lucene的数据搜索方法及装置
CN105426539A (zh) * 2015-12-23 2016-03-23 成都电科心通捷信科技有限公司 一种基于词典的lucene中文分词方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多元分词技术和全文检索技术在GIS地址定位中的应用;朱擎量等;《测绘与空间地理信息》;20111031;第34卷(第5期);第2页最后一段-第3页第8-13段 *

Also Published As

Publication number Publication date
CN107451122A (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
US10949709B2 (en) Method for determining sentence similarity
US20180190270A1 (en) System and method for semantic analysis of speech
Almeman et al. Automatic building of arabic multi dialect text corpora by bootstrapping dialect words
CN104408078A (zh) 一种基于关键词的中英双语平行语料库构建方法
CN107341143B (zh) 一种句子连贯性判断方法及装置和电子设备
CN103077164A (zh) 文本分析方法及文本分析器
CN105760359B (zh) 问句处理系统及其方法
CN102479191A (zh) 提供多粒度分词结果的方法及其装置
Scheible et al. A gold standard corpus of Early Modern German
CN110853625B (zh) 语音识别模型分词训练方法、系统、移动终端及存储介质
CN111178061B (zh) 一种基于编码转换的多国语分词方法
CN103324621A (zh) 一种泰语文本拼写纠正方法及装置
CN110413972B (zh) 一种基于nlp技术的表名字段名智能补全方法
CN104252542A (zh) 一种基于词库的动态规划中文分词方法
JP6427466B2 (ja) 同義語ペア獲得装置、方法、及びプログラム
CN103559181A (zh) 一种双语语义关系分类模型的建立方法和系统
GB2575580A (en) Supporting interactive text mining process with natural language dialog
CN105095196A (zh) 文本中新词发现的方法和装置
CN113806483A (zh) 数据处理方法、装置、电子设备及计算机程序产品
CN110705285B (zh) 一种政务文本主题词库构建方法、装置、服务器及可读存储介质
CN107451122B (zh) 一种基于Lucene的动态n元分词方法
CN107480128A (zh) 中文文本的分词方法及装置
CN101770478B (zh) 数据检索方法、数据检索装置及嵌入式终端
CN109344389B (zh) 一种汉盲对照双语语料库的构建方法和系统
CN112989839A (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
GR01 Patent grant
GR01 Patent grant