jieba分词的基本用法和词性标注

2024-01-12 21:08

本文主要是介绍jieba分词的基本用法和词性标注,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • jieba分词的基本用法和词性标注
    • 一、jieba 分词基本概述
    • 二、添加自定义词典
    • 3、关键词提取
    • 四、词性标注 *
    • 五、并行分词
    • 六、Tokenize:返回词语在原文的起始位置

jieba分词的基本用法和词性标注

一、jieba 分词基本概述

  • 它号称“做最好的Python中文分词组件”的jieba分词是python语言的一个中文分词包。
  • 它有如下三种模式:
    • 精确模式,试图将句子最精确地切开,适合文本分析;
    • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • 支持繁体分词
  • 支持自定义词典,接下来看一个小 demo 如下:
import jieba seg_list = jieba.cut('我来到北京清华大学',cut_all=True) 
print('Full Mode:', '/ '.join(seg_list))  # 全模式seg_list = jieba.cut("我来到北京清华大学",cut_all=False)
print ("\nDefault Mode:", "/ ".join(seg_list)) #精确模式seg_list = jieba.cut("他来到了网易杭研大厦") #默认是精确模式
print ('\n新词识别:(如,杭研)',", ".join(seg_list))seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") #搜索引擎模式
print ("\n搜索引擎模式:",", ".join(seg_list))
Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学Default Mode: 我/ 来到/ 北京/ 清华大学新词识别:(如,杭研) 他, 来到, 了, 网易, 杭研, 大厦搜索引擎模式: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, ,, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

二、添加自定义词典

1、开发者可以指定自己自定义的词典,以便包含jieba词库里没有的词。虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率。


2、用法:jieba.load_userdict(file_name) # file_name为自定义词典的路径


3、词典格式和dict.txt一样,一个词占一行;每一行分三部分,一部分为词语,另一部分为词频,最后为词性(可省略),用空格隔开


4、范例:

  • 之前: 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /

  • 加载自定义词库后: 李小福 / 是 / (创新办) / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /

  • 可以参见jieba 官方提供的自定义词典,以及程序:https://github.com/fxsjy/jieba/blob/master/test/userdict.txt

  • 用法示例:https://github.com/fxsjy/jieba/blob/master/test/test_userdict.py
    5、故可以 “通过用户自定义词典来增强歧义纠错能力”

3、关键词提取

1、首先,通过如下代码导入下面的库

import jieba.analyse

其次:便可以使用,

jieba.analyse.extract_tags(sentence,topK) 
  • 其中,sentence 为待提取的文本
  • topK 为返回的几个 TF/IDF 权重最大的关键词,默认值为20

代码可以参见:
https://github.com/fxsjy/jieba/blob/master/test/extract_tags.py

四、词性标注 *

  • 标注句子分词后每个词的词性,采用和ictclas兼容的标记法
  • 用法示例:
>>> import jieba.posseg as pseg
>>> words =pseg.cut("我爱北京天安门")
>>> for w in words:
...    print w.word,w.flag
... 输出如下 : 我 r
爱 v
北京 ns
天安门 ns

五、并行分词

  • 原理:将目标文本按行分隔后,把各行文本分配到多个python进程并行分词,然后归并结果,从而获得分词速度的可观提升
  • 基于python自带的multiprocessing模块,
  • 用法:
    • jieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数
    • jieba.disable_parallel() # 关闭并行分词模式

例子,参见如下:
https://github.com/fxsjy/jieba/blob/master/test/parallel/test_file.py

六、Tokenize:返回词语在原文的起始位置

  • 注意,输入参数只接受unicode
  • 默认模式
result = jieba.tokenize(u'永和服装饰品有限公司')
for tk in result:print ("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
word 永和      start: 0        end:2
word 服装      start: 2        end:4
word 饰品      start: 4        end:6
word 有限公司        start: 6        end:10
  • 搜索模式
result = jieba.tokenize(u'永和服装饰品有限公司',mode='search')
for tk in result:print ("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
word 永和      start: 0        end:2
word 服装      start: 2        end:4
word 饰品      start: 4        end:6
word 有限      start: 6        end:8
word 公司      start: 8        end:10
word 有限公司        start: 6        end:10
  • 这里附上词性标注表,如下:
  • 名词 (1个一类,7个二类,5个三类)

  • 名词分为以下子类:

    • n 名词
    • nr 人名
    • nr1 汉语姓氏
    • nr2 汉语名字
    • nrj 日语人名
    • nrf 音译人名
    • ns 地名
    • nsf 音译地名
    • nt 机构团体名
    • nz 其它专名
    • nl 名词性惯用语
    • ng 名词性语素
  • 时间词(1个一类,1个二类)

    • t 时间词
    • tg 时间词性语素
  • 处所词(1个一类)

    • s 处所词
  • 方位词(1个一类)

    • f 方位词
  • 动词(1个一类,9个二类)

    • v 动词
    • vd 副动词
    • vn 名动词
    • vshi 动词“是”
    • vyou 动词“有”
    • vf 趋向动词
    • vx 形式动词
    • vi 不及物动词(内动词)
    • vl 动词性惯用语
    • vg 动词性语素
  • 形容词(1个一类,4个二类)

    • a 形容词
    • ad 副形词
    • an 名形词
    • ag 形容词性语素
    • al 形容词性惯用语
  • 区别词(1个一类,2个二类)

    • b 区别词
    • bl 区别词性惯用语
  • 状态词(1个一类)

    • z 状态词
  • 代词(1个一类,4个二类,6个三类)

    • r 代词
    • rr 人称代词
    • rz 指示代词
    • rzt 时间指示代词
    • rzs 处所指示代词
    • rzv 谓词性指示代词
    • ry 疑问代词
    • ryt 时间疑问代词
    • rys 处所疑问代词
    • ryv 谓词性疑问代词
    • rg 代词性语素
  • 数词(1个一类,1个二类)

    • m 数词
    • mq 数量词
  • 量词(1个一类,2个二类)

    • q 量词
    • qv 动量词
    • qt 时量词
  • 副词(1个一类)

    • d 副词
  • 介词(1个一类,2个二类)

    • p 介词
    • pba 介词“把”
    • pbei 介词“被”
  • 连词(1个一类,1个二类)

    • c 连词
    • cc 并列连词
  • 助词(1个一类,15个二类)

    • u 助词
    • uzhe 着
    • ule 了 喽
    • uguo 过
    • ude1 的 底
    • ude2 地
    • ude3 得
    • usuo 所
    • udeng 等 等等 云云
    • uyy 一样 一般 似的 般
    • udh 的话
    • uls 来讲 来说 而言 说来
    • uzhi 之
    • ulian 连 (“连小学生都会”)
  • 叹词(1个一类)

    • e 叹词
  • 语气词(1个一类)

    • y 语气词(delete yg)
  • 拟声词(1个一类)

    • o 拟声词
  • 前缀(1个一类)

    • h 前缀
  • 后缀(1个一类)

    • k 后缀
  • 字符串(1个一类,2个二类)

    • x 字符串
    • xx 非语素字
    • xu 网址URL
  • 标点符号(1个一类,16个二类)

    • w 标点符号
    • wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <
    • wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
    • wyz 左引号,全角:“ ‘ 『
    • wyy 右引号,全角:” ’ 』
    • wj 句号,全角:。
    • ww 问号,全角:? 半角:?
    • wt 叹号,全角:! 半角:!
    • wd 逗号,全角:, 半角:,
    • wf 分号,全角:; 半角: ;
      wn 顿号,全角:、
    • wm 冒号,全角:: 半角: :
    • ws 省略号,全角:…… …
    • wp 破折号,全角:—— -- ——- 半角:—
    • wb 百分号千分号,全角:% ‰ 半角:%
    • wh 单位符号,全角:¥ $ £ ° ℃ 半角 $

转载自: https://blog.csdn.net/li_31415/article/details/48660073

这篇关于jieba分词的基本用法和词性标注的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599163

相关文章

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆