赞
踩
做最好的 Python 中文分词组件
jieba.cut:
接受三个输参数:需要分词的字符串;cut_all
参数来控制是否采用全模式(默认精确模式);HMM
参数用来控制是否使用 HMM
模型。jieba.cut_for_search:
接受两个参数:需要分词的字符串;使用使用 HMM
模型,该方法适合用于搜索引擎的构建倒排索引的分词,粒度比较细。注意:
unicode
、 UTF8
、GBK字符串
。jieba.cut
和 jieba.cut_for_search
返回的结构都是一个可迭代的 generator
,用for
循环来获取分词后的词语(unicode)。jieba.lcut
和 jieba.lcut_for_search
直接返回list
。import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print(", ".join(seg_list))
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print(", ".join(seg_list))
jieba
词库里没有的词。file_name
文件对象或路径file_name
若为路径或二进制打开,文件必须为UTF-8
编码。# userdict.text文件
云计算 5
李小福 2 nr
import jieba
jieba.load_userdict("userdict.txt") # 加载字典
jieba.add_word('八一双鹿') # 加载单词
demo = '李小福是创新办主任也是云计算方面的专家; 什么是八一双鹿'
words = jieba.cut(demo)
print('/'.join(words))
add_word
和 del_word
可以动态修改词典。jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
sentence
:待提取的文本topK
:为返回几个TF-IDF
权重的关键词withWeight
:是否一并返回关键词权重allowPOS
:仅包括指定词性的词jieba.analyse.TFIDF(idf_path=None)
新建TF-IDF
实例,为IDF
频率文件原理:将目标文件按行分隔后,把各行文本分配到多个
Python
进程,然后归并结果,从而获得分词速度提升
基于Python
自带的multiprocessing
模块
jieba.enable_parallel(4)
开启并行分词模式,参数为并行进程数jieba.disable_parallel()
关闭并行分词模式**注意:**并行分词仅支持默认分词器 jieba.dt
和 jieba.posseg.dt
。
import time
import jieba
jieba.enable_parallel(1) # 创建1个线程
content = open('./1.txt',"rb").read()
t1 = time.time()
words = "/ ".join(jieba.cut(content))
t2 = time.time()
log_f = open("1.log","wb")
log_f.write(words.encode('utf-8'))
print('speed %s bytes/second' % (len(content)/t2-t1))
# 默认模式
result = jieba.tokenize(u'永和服装饰品有限公司')
for tk in result:
print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
# 搜索模式
result = jieba.tokenize(u'永和服装饰品有限公司', mode='search')
for tk in result:
print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
jieba 加载采用延迟加载,
import jieba
和jieba.Tokenizer()
不会立即触发词典的加载,一旦有必要才开始加载词典构建前缀字典。如果你想手工初始 jieba,也可以手动初始化。
import jieba
jieba.initialize() # 手动初始化(可选)
python -m jieba news.txt > cut_result.txt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。