中文分词
结巴的中文分词支持3种模式
- 精确模式:试图将句子最精确地切开,适合文本分析。
- **全模式:**把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义问题。
- **搜索引擎模式:**在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
例子:
import jieba
seg_list = jieba.cut(s)
print("Default Mode:",'/'.join(seg_list))
s = '我来到新华大学'
seg_list = jieba.cut(s,cut_all=True)
print("Full Mode:",'/'.join(seg_list))
seg_list = jieba.cut_for_search(s)
print("搜索引擎模式:",'/'.join(seg_list))
结果:
Full Mode: 我/来到/新华/华大/大学
Default Mode: 我/来到/新华/大学
搜索引擎模式: 我/来到/新华/大学
jieba.cut
- 第一个参数为需要分词的字符串。
cut_all 用来控制分词的模式
jieba.cut() 返回的是一个可以迭代的生成器,可以用for循环来获得分词得到得每一个词语,也可以用list(jieba.cut(...)) 转化为列表。
jieba 自定义词典
基本用法如下:
jieba.load_userdict(file_name)
词典格式是一个词占一行;每一行分三部分,一部分为词语,另一部分为词频,最后一部分为词性(可省略,jieba的词性标注方式和ICTCLAS的标注方式一样。ns 为地点名词,nz 为其他专用名词,a是形容词,v是动词,d是副词),三部分用空格隔开。例如下面自定义词典
云计算 5
太和宫 5 ns
李小福 2 nr
凯特琳 2 nz
文本分类的关键词提取
文本分类时,在构建VSM(向量空间模型)过程或者把文本转换成数学形式计算中,需要运用到关键词提取的技术.jieba可以简便地提取关键词。
基本用法如下:
jieba. analyse_extract_tag(sentence,topK=20, withweight=False, allow POS=()).
需要先import jibea. analyse ,其中sentence为待提取的文本,topK为返回几个TF.IDF权重最大的关键词,默认值为20。withWeight为是否一并返回关键词权重值,默认值为False。allowPOS仅包含指定词性的词,默认值为空,即不进行筛选。
例如:
import jieba,jieba.analyse
jieba.load_userdict("dict.txt")
text = "故宫的著名景点包括乾清宫、太和殿和午门等。其中乾清宫非常精美,午门是紫禁城得正门,午门居中向阳。"
seg_list = jieba.cut(text)
print("分词结果:","/".join(seg_list))
tags = jieba.analyse.extract_tags(text,topK=5)
print("关键词:","".join(tags))
tags = jieba.analyse.extract_tags(text,topK=5,withWeight= True)
print(tags)
结果:
|