word分词器?1、 首先不做任何操作,打开测试文档,点击“统计每段词语数”看看结果。不保存关闭文档。2、 运行Word自造词.exe,点击修改按钮。3、 再次打开测试文档,点击“统计每段词语数”看看结果。两次结果是否相同。那么,word分词器?一起来了解一下吧。
Elasticsearch 中文搜索时遇到几个问题:
接下来从以下几点讲一下怎么ES中文分词
索引时,为了提供索引的覆盖范围,通常会采用ik_max_word分析器,会以最细粒度分词索引,搜索时为了提高搜索准确度,会采用ik_smart分析器,会以粗粒度分词
字段mapping设置如下:
analysis索引分析模块充当analyzer分析器的可配置注册表,通过analyzer对文档索引阶段的字段和搜索String进行处理,自定义analyzer时,通常需要character filter tokenizer token filters来完成
首先字符串经过过滤器(character filter),他们的工作是在分词前处理字符串。字符过滤器能够去除HTML标记,例如把“”变成“a
英文分词可以根据空格将单词分开,中文分词比较复杂,可以采用机器学习算法来分词
最后,每个词都通过所有表征过滤(token filters),他可以修改词(例如将“Quick”转为小写),去掉词(例如停用词像“a”、“and”、“the”等等)灶猜,或者增加词(例如同义词像“a”、“and”、“the”等等)或者增加词(例如同义词像“jump”和“leap”)。
word分词是一个Java实现的分布式的中文分词组庆迅件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。
如果需要安装word分词器可以参考下面的步骤:
1、确保电脑上已经安装了JDK和Eclispe,没有安装的可以到对应的安装:
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse:http://www.eclipse.org
2、word分词器的相关jar包:
打开word分词器的github主页:https://github.com/ysc/word
下拉找到ReadME部分盯亏,点击“编译好的jar”:
页面将会跳转到到盘的页面,按照需求指定的版本即可。
注意:word1.3需要JDK1.8。
完成之后解压到指定目录。
3、誉则此创建Java项目,导入word分词器的相关jar包:
打开Eclipse,右键创建Java project项目:
然后右键项目选择Build path打开导入页面,导入刚才的jar包到项目中:
导入成功之后就可以在自己的项目中使用word分词器了。
假如数据在A1单腊差橡轮旁元格,在B1单元格输入公式=MID($A1,(COLUMN(A:A)*2-1)+ABS(1000-COLUMN(ALL:ALL)),3)
右拉公式。 如图:(每庆腔3个拆分)
说到分词大家肯定一般认为是很高深的技术,但是雹穗今天作者用短短几十行代码就搞定了,感叹python很强大啊!作者也很强大。不过这个只是正向最大匹配,没有机器学习能力
注意:使用前先要搜狗词库
# -*- coding:utf-8 -*-
#写了一个简单的支持中文的正向最大匹配的机械分词,其它不用解释了,就几十行代码
#附:搜狗词库地址:http://vdisk.weibo.com/s/7RlE5
import string
__dict = {}
def load_dict(dict_file='words.dic'):
#加载词库,把词库加载成一个key为首字符,高茄value为相关词的列表的字典
words = [unicode(line, 'utf-8').split() for line in open(dict_file)]
for word_len, word in words:
first_char = word[0]
__dict.setdefault(first_char, [])
__dict[first_char].append(word)
#按词的长度倒序排列
for first_char, words in __dict.items():
__dict[first_char] = sorted(words, key=lambda x:len(x), reverse=True)
def __match_ascii(i, input):
#返回连续源念卜的英文字母,数字,符号
result = ''
for i in range(i, len(input)):
if not input[i] in string.ascii_letters: break
result += input[i]
return result
def __match_word(first_char, i , input):
#根据当前位置进行分词,ascii的直接读取连续字符,中文的读取词库
if not __dict.has_key(first_char):
if first_char in string.ascii_letters:
return __match_ascii(i, input)
return first_char
words = __dict[first_char]
for word in words:
if input[i:i+len(word)] == word:
return word
return first_char
def tokenize(input):
#对input进行分词,input必须是uncode编码
if not input: return []
tokens = []
i = 0
while i < len(input):
first_char = input[i]
matched_word = __match_word(first_char, i, input)
tokens.append(matched_word)
i += len(matched_word)
return tokens
if __name__ == '__main__':
def get_test_text():
import urllib2
url = "http://news.baidu.com/n?cmd=4&class=rolling&pn=1&from=tab⊂=0"
text = urllib2.urlopen(url).read()
return unicode(text, 'gbk')
def load_dict_test():
load_dict()
for first_char, words in __dict.items():
print '%s:%s' % (first_char, ' '.join(words))
def tokenize_test(text):
load_dict()
tokens = tokenize(text)
for token in tokens:
print token
tokenize_test(unicode(u'美丽的花园里有各种各样的小动物'))
tokenize_test(get_test_text())
word英[wɜ:d]美[wɜ:rd]
n.单词; 话语; 诺言明携配; 消息;
vt.措辞激指,用词; 用言语表达隐旁;
vi.讲话;
以上就是word分词器的全部内容,1、word分词器 2、Ansj分词器 3、Stanford分词器 4、FudanNLP分词器 5、Jieba分词器 6、Jcseg分词器 7、MMSeg4j分词器 8、IKAnalyzer分词器 9、Paoding分词器 10、。