大家好,又见面了,我是你们的朋友全栈君。
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)# 一词一行
代码语言:javascript复制ss = "你是想红寺湖但行好事时尚先生"
jieba.lcut(ss)
>>>['你', '是', '想', '红寺', '湖', '但行好事', '时尚', '先生']
代码语言:javascript复制jieba.load_userdict("F:\dict.txt")
代码语言:javascript复制jieba.lcut(ss)
>>>['你是想红寺湖', '但行好事', '时尚先生']
去除停用词(分词后去停用词)
代码语言:javascript复制sss = '成本价大白菜不饿厚度恶化打电话补偿金活动IC不能简单菜农ID那次军坡节噢紧凑级'
jieba.lcut(sss)
>>>['成本价',
'大白菜',
'不饿',
'厚度',
'恶化',
'打电话',
'补偿金',
'活动',
'IC',
'不能',
'简单',
'菜农',
'ID',
'那次',
'军坡节',
'噢',
'紧凑',
'级']
代码语言:javascript复制wordlist = jieba.lcut(sss)
newlist = [word for word in wordlist if word not in ['噢','级']]
代码语言:javascript复制print(newlist)
>>>['成本价', '大白菜', '不饿', '厚度', '恶化', '打电话', '补偿金', '活动', 'IC', '不能', '简单', '菜农', 'ID', '那次', '军坡节', '紧凑']
用extract_tags函数去除停用词
jieba.analyse.set_stop_words()
代码语言:javascript复制import jieba.analyse as ana
ana.set_stop_words('F:\停用词.txt')
代码语言:javascript复制sentence="湖北经济学院大数据专业的同学棒棒哒!"
ana.extract_tags(sentence)
>>>['棒棒', '同学', '湖北', '学院', '专业', '数据', '经济']
代码语言:javascript复制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')]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190932.html原文链接:https://javaforall.cn