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

#关键词提取
#基于 TF-IDF 算法的关键词抽取
#sentence 为待提取的文本
#topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
#withWeight 为是否一并返回关键词权重值,默认值为 False
#allowPOS 仅包括指定词性的词,默认值为空,即不筛选

import jieba.analyse as analyse
lines = 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 pseg
words = pseg.cut("我爱自然语言处理")
for word, flag in words:
    print('%s %s' % (word, flag))

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

#并行分词
#ieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数
#jieba.disable_parallel() # 关闭并行分词模式
import sys
import time
import jieba

jieba.enable_parallel()
content = open(u'西游记.txt',"r").read()
t1 = time.time()
words = "/ ".join(jieba.cut(content))
t2 = time.time()
tm_cost = t2-t1
print('并行分词速度为 %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-t1
print('非并行分词速度为 %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

你可能感兴趣的:(python自然语言处理)