中文分词工具安装教程及分词和词性标注应用(jieba、pyhanlp、pkuseg、foolnltk、thulac、snownlp、nlpir)

本文详细介绍了Python中多个常用的中文分词工具,包括jieba、thulac、foolNLTK、pyhanlp、nlpir、PKUseg和SnownLP。这些工具提供了分词、词性标注等功能,各有特点和适用场景,如jieba的便捷性和高效性,thulac的强大标注能力,foolNLTK的准确性,pyhanlp的全面性,nlpir的文本处理链,PKUseg的多领域分词,以及SnownLP的便利性。每个工具的安装、使用和简单应用都有详尽说明。
摘要由CSDN通过智能技术生成

2.1 jieba

2.1.1 jieba简介

Jieba中文含义结巴,jieba库是目前做的最好的python分词组件。首先它的安装十分便捷,只需要使用pip安装;其次,它不需要另外下载其它的数据包,在这一点上它比其余五款分词工具都要便捷。另外,jieba库支持的文本编码方式为utf-8。

Jieba库包含许多功能,如分词、词性标注、自定义词典、关键词提取。基于jieba的关键词提取有两种常用算法,一是TF-IDF算法;二是TextRank算法。基于jieba库的分词,包含三种分词模式:

  • 精准模式:试图将句子最精确地切开,适合文本分析);
  • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义);
  • 搜索引擎模式:搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

Jieba官方文档:https://pypi.org/project/jieba/

2.1.2 jieba安装

Jieba库安装比较便捷,只需要在命令框中输入:pip install jieba;或者在pycharm中,通过setting-project安装。

2.1.3 jieba分词和词性标注的简单应用

import jieba
import jieba.posseg as posseg
txt1 ='''
文本一:
人民网华盛顿3月28日电(记者郑琪)据美国约翰斯·霍普金斯大学疫情实时监测系统显示,截至美东时间3月28日下午6时,
美国已经至少有新冠病毒感染病例121117例,其中包括死亡病例2010例。
与大约24小时前相比,美国确诊病例至少增加了20400例,死亡病例至少增加了466例。
目前美国疫情最为严重的仍是纽约州,共有确诊病例至少52410例。此外,新泽西州有确诊病例11124例,加利福尼亚州有5065例,
密歇根州有4650例,马塞诸塞州有4257例,华盛顿州有4008例。
'''
# 精确模式
seg_list = jieba.cut(txt1,cut_all=False)
# seg_list = jieba.cut_for_search(txt1)
print("jieba分词:" + "/ ".join(seg_list)) # 精确模式
list = posseg.cut(txt1)
tag_list =[]
for tag in list :
    pos_word = {  }
    pos_word[1] = tag.word
    pos_word[2] = tag.flag
    tag_list.append(pos_word)
print('jieba词性标注:',tag_list)
结果展示:
jieba分词:
/ 文本/ 一/ :/ 
/ 人民网/ 华盛顿/ 3/ 月/ 28/ 日电/ (/ 记者/ 郑琪/ )/ 据/ 美国/ 约翰斯/ ·/ 霍普金斯大学/ 疫情/ 实时/ 监测/ 系统/ 显示/ ,/ 截至/ 美/ 东/ 时间/ 3/ 月/ 28/ 日/ 下午/ 6/ 时/ ,/ 
/ 美国/ 已经/ 至少/ 有/ 新冠/ 病毒感染/ 病例/ 121117/ 例/ ,/ 其中/ 包括/ 死亡/ 病例/ 2010/ 例/ 。/ 
/ 与/ 大约/ 24/ 小时/ 前/ 相比/ ,/ 美国/ 确诊/ 病例/ 至少/ 增加/ 了/ 20400/ 例/ ,/ 死亡/ 病例/ 至少/ 增加/ 了/ 466/ 例/ 。/ 
/ 目前/ 美国/ 疫情/ 最为/ 严重/ 的/ 仍/ 是/ 纽约州/ ,/ 共有/ 确诊/ 病例/ 至少/ 52410/ 例/ 。/ 此外/ ,/ 新泽西州/ 有/ 确诊/ 病例/ 11124/ 例/ ,/ 加利福尼亚州/ 有/ 5065/ 例/ ,/ 
/ 密歇根州/ 有/ 4650/ 例/ ,/ 马塞诸塞/ 州/ 有/ 4257/ 例/ ,/ 华盛顿州/ 有/ 4008/ 例/ 。/ 

jieba词性标注: [{1: '\n', 2: 'x'}, {1: '文本', 2: 'n'}, {1: '一', 2: 'm'}, {1: ':', 2: 'x'}, {1: '\n', 2: 'x'}, {1: '人民网', 2: 'n'}, {1: '华盛顿', 2: 'ns'}, {1: '3', 2: 'm'}, {1: '月', 2: 'm'}, {1: '28', 2: 'm'}, {1: '日电', 2: 'j'}, {1: '(', 2: 'x'}, {1: '记者', 2: 'n'}, {1: '郑琪', 2: 'nr'}, {1: ')', 2: 'x'}, {1: '据', 2: 'p'}, {1: '美国', 2: 'ns'}, {1: '约翰斯', 2: 'nrt'}, {1: '·', 2: 'x'}, {1: '霍普金斯大学', 2: 'nt'}, {1: '疫情', 2: 'n'}, {1: '实时', 2: 'd'}, {1: '监测', 2: 'vn'}, {1: '系统', 2: 'n'}, {1: '显示', 2: 'v'}, {1: ',', 2: 'x'}, {1: '截至', 2: 'v'}, {1: '美', 2: 'ns'}, {1: '东', 2: 'ns'}, {1: '时间', 2: 'n'}, {1: '3', 2: 'm'}, {1: '月', 2: 'm'}, {1: '28', 2: 'm'}, {1: '日', 2: 'm'}, {1: '下午', 2: 't'}, {1: '6', 2: 'm'}, {1: '时', 2: 'n'}, {1: ',', 2: 'x'}, {1: '\n', 2: 'x'}, {1: '美国', 2: 'ns'}, {1: '已经', 2: 'd'}, {1: '至少', 2: 'd'}, {1: '有', 2: 'v'}, {1: '新', 2: 'a'}, {1: '冠', 2: 'n'}, {1: '病毒感染', 2: 'n'}, {1: '病例', 2: 'n'}, {1: '121117', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '其中', 2: 'r'}, {1: '包括', 2: 'v'}, {1: '死亡', 2: 'v'}, {1: '病例', 2: 'n'}, {1: '2010', 2: 'm'}, {1: '例', 2: 'v'}, {1: '。', 2: 'x'}, {1: '\n', 2: 'x'}, {1: '与', 2: 'p'}, {1: '大约', 2: 'd'}, {1: '24', 2: 'm'}, {1: '小时', 2: 'n'}, {1: '前', 2: 'f'}, {1: '相比', 2: 'v'}, {1: ',', 2: 'x'}, {1: '美国', 2: 'ns'}, {1: '确诊', 2: 'v'}, {1: '病例', 2: 'n'}, {1: '至少', 2: 'd'}, {1: '增加', 2: 'v'}, {1: '了', 2: 'ul'}, {1: '20400', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '死亡', 2: 'v'}, {1: '病例', 2: 'n'}, {1: '至少', 2: 'd'}, {1: '增加', 2: 'v'}, {1: '了', 2: 'ul'}, {1: '466', 2: 'm'}, {1: '例', 2: 'v'}, {1: '。', 2: 'x'}, {1: '\n', 2: 'x'}, {1: '目前', 2: 't'}, {1: '美国', 2: 'ns'}, {1: '疫情', 2: 'n'}, {1: '最为', 2: 'd'}, {1: '严重', 2: 'a'}, {1: '的', 2: 'uj'}, {1: '仍', 2: 'd'}, {1: '是', 2: 'v'}, {1: '纽约州', 2: 'ns'}, {1: ',', 2: 'x'}, {1: '共有', 2: 'v'}, {1: '确诊', 2: 'v'}, {1: '病例', 2: 'n'}, {1: '至少', 2: 'd'}, {1: '52410', 2: 'm'}, {1: '例', 2: 'v'}, {1: '。', 2: 'x'}, {1: '此外', 2: 'c'}, {1: ',', 2: 'x'}, {1: '新泽西州', 2: 'ns'}, {1: '有', 2: 'v'}, {1: '确诊', 2: 'v'}, {1: '病例', 2: 'n'}, {1: '11124', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '加利福尼亚州', 2: 'ns'}, {1: '有', 2: 'v'}, {1: '5065', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '\n', 2: 'x'}, {1: '密歇根州', 2: 'ns'}, {1: '有', 2: 'v'}, {1: '4650', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '马塞诸塞', 2: 'nr'}, {1: '州', 2: 'n'}, {1: '有', 2: 'v'}, {1: '4257', 2: 'm'}, {1: '例', 2: 'v'}, {1: ',', 2: 'x'}, {1: '华盛顿州', 2: 'ns'}, {1: '有', 2: 'v'}, {1: '4008', 2: 'm'}, {1: '例', 2: 'v'}, {1: '。', 2: 'x'}, {1: '\n', 2: 'x'}]

2.2 thulac

2.2.1 thulac简介

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC集成了目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字),模型标注能力强大。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。总的来说,可以理解为thulac训练的分词、词性标注语料库很大,性能优良。

Thulac的简单分词,可以通过python程序import thulac,新建thulac.thulac(args)类,其中args为程序的参数,之后可以通过调用thulac.cut()进行单句分词。

Thulac使用参考文档:http://thulac.thunlp.org/

2.2.2 thulac安装

Thulac库的安装也较为简单,不需要下载特别的数据包,安装方法:pip install thulac。

2.2.3 thulac分词和词性标注的简单应用

# -*- coding: utf-8 -*-
import thulac
txt1 ='''
文本一:
人民网华盛顿3月28日电(记者郑琪)据美国约翰斯·霍普金斯大学疫情实时监测系统显示,截至美东时间3月28日下午6时,
美国已经至少有新冠病毒感染病例121117例,其中包括死亡病例2010例。
与大约24小时前相比,美国确诊病例至少增加了20400例,死亡病例至少增加了466例。
目前美国疫情最为严重的仍是纽约州,共有确诊病例至少52410例。此外,新泽西州有确诊病例11124例,加利福尼亚州有5065例,
密歇根州有4650例,马塞诸塞州有4257例,华盛顿州有4008例。
'''
#seg_only设置词性标注与否,deli设置分词以后以什么分隔
thu1 = thulac.thulac(seg_only=Fal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值