python自然语言处理---jieba中文处理

来源:互联网 发布:淘宝充值送优酷会员 编辑:程序博客网 时间:2024/06/03 08:40
#关键词提取#基于 TF-IDF 算法的关键词抽取#sentence 为待提取的文本#topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20#withWeight 为是否一并返回关键词权重值,默认值为 False#allowPOS 仅包括指定词性的词,默认值为空,即不筛选import jieba.analyse as analyselines = open('NBA.txt').read()print("  ".join(analyse.extract_tags(lines, topK=20, withWeight=False, allowPOS=())))

韦少 杜兰特 全明星 全明星赛 MVP 威少 正赛 科尔 投篮 勇士 球员 斯布鲁克 更衣柜 张卫平 三连庄 NBA 西部 指导 雷霆 明星队

#词性标注#jieba.posseg.POSTokenizer(tokenizer=None) 新建自定义分词器,#tokenizer 参数可指定内部使用的 jieba.Tokenizer 分词器。#jieba.posseg.dt 为默认词性标注分词器。import jieba.posseg as psegwords = pseg.cut("我爱自然语言处理")for word, flag in words:    print('%s %s' % (word, flag))

我 r
爱 v
自然语言 l
处理 v

#并行分词#ieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数#jieba.disable_parallel() # 关闭并行分词模式import sysimport timeimport jiebajieba.enable_parallel()content = open(u'西游记.txt',"r").read()t1 = time.time()words = "/ ".join(jieba.cut(content))t2 = time.time()tm_cost = t2-t1print('并行分词速度为 %s bytes/second' % (len(content)/tm_cost))jieba.disable_parallel()content = open(u'西游记.txt',"r").read()t1 = time.time()words = "/ ".join(jieba.cut(content))t2 = time.time()tm_cost = t2-t1print('非并行分词速度为 %s bytes/second' % (len(content)/tm_cost))

并行分词速度为 830619.50933 bytes/second
非并行分词速度为 259941.448353 bytes/second

#Tokenize:返回词语在原文的起止位置print "这是默认模式的tokenize"result = jieba.tokenize(u'自然语言处理非常有用')for tk in result:    print("%s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))print "\n-----------我是神奇的分割线------------\n"print "这是搜索模式的tokenize"result = jieba.tokenize(u'自然语言处理非常有用', mode='search')for tk in result:    print("%s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

这是默认模式的tokenize
自然语言 start: 0 end:4
处理 start: 4 end:6
非常 start: 6 end:8
有用 start: 8 end:10

———–我是神奇的分割线————

这是搜索模式的tokenize
自然 start: 0 end:2
语言 start: 2 end:4
自然语言 start: 0 end:4
处理 start: 4 end:6
非常 start: 6 end:8
有用 start: 8 end:10

原创粉丝点击