jieba库基本介绍(中文分词)

jieba库概述(jieba是优秀的中文分词第三分库)

  • 中文文本需要通过分词获得单个的词语
  • jieba是优秀的中文分词第三方库,需要额外安装
  • jieba库提供三种分词模式,最简单只需要掌握一个函数

jieba库的安装

  • (cmd命令行)pip install jieba
  • (导入)import jieba
  • (查看版本)jieba.__version__

jieba分词的原理(jieba分词依靠中文词库)

  • 利用一个中文词库,确定汉字之间的关联概率
  • 汉字间概率大的组成词组,形成分词结果
  • 除了分词,用户还可以添加自定义的词组

jieba分词的三种模式

  • 精确模式:把文本精确的切分开,不存在冗余单词
  • 全模式:把文本中所有可能的词语都扫描出来,有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分
函数 描述
jieba.cut(s) 精确模式,返回一个可迭代的数据类型
jieba.cut(s,cut_all=True) 全模式,输出文本s中所有可能单词
jieba.cut_for_search(s) 搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s) 精确模式,返回一个 列表类型,建议使用
jieba.lcut(s,cut_all=True) 全模式,返回一个列表类型,建议使用
jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型,建议使用
jieba.add_word(w) 向分词词典中增加新词W
jieba.del_word(w) 从分词词典中删除词汇W

使用自定义词典(按照自己定义的分词保存)

load_uaerdict(file_name)# 一词一行

ss = "你是想红寺湖但行好事时尚先生"
jieba.lcut(ss)
>>>['你', '是', '想', '红寺', '湖', '但行好事', '时尚', '先生']
jieba.load_userdict("F:\\dict.txt")

jieba库基本介绍(中文分词)_第1张图片

jieba.lcut(ss)
>>>['你是想红寺湖', '但行好事', '时尚先生']

去除停用词(分词后去停用词)

sss = '成本价大白菜不饿厚度恶化打电话补偿金活动IC不能简单菜农ID那次军坡节噢紧凑级'
jieba.lcut(sss)
>>>['成本价',
 '大白菜',
 '不饿',
 '厚度',
 '恶化',
 '打电话',
 '补偿金',
 '活动',
 'IC',
 '不能',
 '简单',
 '菜农',
 'ID',
 '那次',
 '军坡节',
 '噢',
 '紧凑',
 '级']
wordlist = jieba.lcut(sss)
newlist = [word for word in wordlist if word not in ['噢','级']]
print(newlist)
>>>['成本价', '大白菜', '不饿', '厚度', '恶化', '打电话', '补偿金', '活动', 'IC', '不能', '简单', '菜农', 'ID', '那次', '军坡节', '紧凑']

用extract_tags函数去除停用词

jieba.analyse.set_stop_words()

import jieba.analyse as ana
ana.set_stop_words('F:\\停用词.txt')
sentence="湖北经济学院大数据专业的同学棒棒哒!"
ana.extract_tags(sentence)
>>>['棒棒', '同学', '湖北', '学院', '专业', '数据', '经济']
sentence="必须is彼此的hi哦好的次哦红血丝红寺湖细搜呼吸声"
ana.extract_tags(sentence)
>>>['红血丝', '红寺', '湖细', '呼吸声']

词性标注

标识 种类
Ag 形语素
a 形容词
ad 副形词
Dg 副语素
d 副词
m 数词
Ng 名语素
n 名词
nr 人名
Vg 动语素
v 动词
vn 名动词
nce="必须is彼此的hi哦好的次哦红血丝红寺湖细搜呼吸声"
psg.lcut(sentence)
>>>[pair('必须', 'd'),
 pair('is', 'eng'),
 pair('彼此', 'r'),
 pair('的', 'uj'),
 pair('hi', 'eng'),
 pair('哦', 'e'),
 pair('好', 'a'),
 pair('的', 'uj'),
 pair('次', 'q'),
 pair('哦', 'e'),
 pair('红血丝', 'n'),
 pair('红寺湖', 'nr'),
 pair('细', 'a'),
 pair('搜', 'v'),
 pair('呼吸声', 'n')]

你可能感兴趣的:(技术博客)