分词练习

一、实验目标

尝试使用jieba对《龙族》进行分词,并进行分词效果比较分析

二、使用工具

在线分词工具、jieba

三、分词步骤

1.代码演示:

# encoding:utf-8

from __future__import print_function, unicode_literals

import sys

sys.path.append("../")

import jieba

jieba.load_userdict("venv/userdict.txt")

import jieba.analyse

import jieba.possegas pseg

jieba.add_word('楚子航')

jieba.add_word('尼伯龙根')

jieba.del_word('废柴')

test_sent =open('venv/dragon.txt','r', encoding='utf8' ).read()

words = jieba.cut(test_sent)

print('/'.join(words))

print("="*40)

words = jieba.cut(test_sent, cut_all=True)

print('/'.join(words))

print("="*40)

result = pseg.cut(test_sent)

for win result:

print(w.word, "/", w.flag, ", ", end=' ')

print("\n" +"="*40)

list = jieba.analyse.extract_tags(test_sent, topK=20, withWeight=False, allowPOS=())

for keysin list:

print(keys)

2.分词效果:

初学阶段使用网络教程的示例代码:

# encoding=utf-8

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)

print("Full Mode: " +"/ ".join(seg_list))# 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)

print("Default Mode: " +"/ ".join(seg_list))# 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")# 默认是精确模式

print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")# 搜索引擎模式

print(", ".join(seg_list))

经尝试,得到类似结果,并将其运用到自己的分词中

四种不同模式的分词效果

3.自定义词典:(省略了词频和词性)


自定义词典词语表

使用add_word(word, freq=None, tag=None)和del_word(word)可在程序中动态修改词典

修改前

jieba.add_word('楚子航')

jieba.add_word('尼伯龙根')

jieba.del_word('我们')

jieba.del_word('没有')

jieba.del_word('什么')

jieba.del_word('自己')

jieba.del_word('一个')

jieba.del_word('他们')

jieba.del_word('知道')

jieba.del_word('像是')

修改后

4.关键词提取:

import jieba.analyse

list = jieba.analyse.extract_tags(test_sent, topK=20, withWeight=False, allowPOS=())

for keys in list:

print(keys)

test_sent 为待提取的文本;topK 为返回几个 TF/IDF 权重最大的关键词,选择默认值 20

withWeight 为是否一并返回关键词权重值,选择默认值False;allowPOS 仅包括指定词性的词,默认值为空,即不筛选


关键词提取(部分)

5.词性标注

jieba.posseg.POSTokenizer(tokenizer=None)新建自定义分词器,tokenizer参数可指定内部使用的jieba.Tokenizer分词器。jieba.posseg.dt为默认词性标注分词器

使用jieba.posseg来进行词性标注

import jieba.posseg as pseg

result = pseg.cut(test_sent)

for w in result:

print(w.word, "/", w.flag, ", ", end=' ')

print("\n" +"="*40)

运行部分结果:


部分结果展示

四、问题分析

部分关键词提取仍存在语气词等,因处理文档较大,需要自定义去除很多字段


结果存在欠缺

因为没有设置编码格式,调用外部文档出现问题。

import jieba

jieba.load_userdict("venv/userdict.txt")

test_sent =open('venv/dragon.txt','r', encoding='utf8' ).read()

五、分词工具包


来源百度


来源百度

六、分词工具对比

使用在线分词工具结果


在线分词工具

使用jieba自行编程来进行分词

运行结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、jieba分词1.在cmd中安装结巴分词 python setup.py install 并在python环境...
    hai_king阅读 331评论 0 1
  • 1.常用的分词工具包 perminusminusStanford 汉语分词工具哈工大语言云ICTCLAS——Ans...
    鸡肉卷福阅读 703评论 0 0
  • 在接下来的分词练习中将使用到四川大学公共管理学院的一篇新闻进行练习,文本如下: 为贯彻落实党的十九大精神,不断提升...
    nicokani阅读 1,294评论 0 4
  • 使用ICTCLAS(NLPIR)在线分词工具和jieba分词组件进行分词练习。 一. ICTCLAS 1.简介 汉...
    Carina_55阅读 762评论 0 1
  • 接分词练习1——分词工具包 分词效果尝试 接下来我将体验NLPIR和jieba分词的效果,其中,NLPIR使用在线...
    骆落啊阅读 734评论 0 1