目录
[2.1 jieba的基本特点](#2.1 jieba的基本特点)
[2.2 jieba的功能](#2.2 jieba的功能)
[2.3 jieba的安装及使用](#2.3 jieba的安装及使用)
学习目标
🍀 了解什么是分词, 词性标注, 命名实体识别及其它们的作用.
🍀 掌握如何使用分词工具jieba
🍀 掌握分词, 词性标注, 命名实体识别流行工具的使用方法.
🍔什么是分词
-
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
-
举个例子:
无线电法国别研究
['无线电法', '国别', '研究']
-
分词的作用:
- 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
-
流行中文分词工具jieba:
- 愿景: "结巴"中文分词, 做最好的 Python 中文分词组件.
🍔中文分词工具jieba
jieba是一个流行的中文分词工具,它能够将一段中文文本切分成有意义的词语。jieba是目前Python中最常用的中文分词库之一,具有简单易用、高效准确的特点。
2.1 jieba的基本特点
高效性:jieba分词基于词典和概率模型,通过对文本进行扫描和统计,实现词汇的切分和标注,具有较高的分词效率。
准确性:jieba分词通过建立词典,为每个词语分配一个概率值,并通过计算相邻词语的联合概率来确定最可能的分词结果。同时,它还采用了隐马尔可夫模型(HMM)来处理一些特殊情况,如新词、未登录词等,提高了分词的准确性。
2.2 jieba的功能
分词:jieba提供了基本的分词功能,可以将中文文本切分成有意义的词语。
词性标注:jieba还提供了词性标注功能,可以对分词结果进行词性标注,帮助用户更好地理解文本内容。
关键词提取:jieba能够从一段文本中提取出最重要的关键词,这对于文本摘要、情感分析等任务非常有用。
实体识别:jieba还可以从文本中识别出人名、地名、组织机构等实体,这对于信息抽取等任务非常有帮助。
灵活性:jieba分词支持多种分词模式,包括精确模式、全模式和搜索引擎模式,以满足不同场景下的需求。此外,用户还可以通过添加自定义词典来指导分词器更好地处理特定词汇,提高分词的准确性。
2.3 jieba的安装及使用
jieba的安装:
pip install jieba
- 精确模式分词:
- 试图将句子最精确地切开,适合文本分析.
python
import jieba
content = "无线电法国别研究"
jieba.cut(content, cut_all=False) # cut_all默认为False
# 将返回一个生成器对象
<generator object Tokenizer.cut at 0x7f065c19e318>
# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=False)
['无线电', '法国', '别', '研究']
- 全模式分词:
- 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能消除歧义。
python
# 若需直接返回列表内容, 使用jieba.lcut即可
jieba.lcut(content, cut_all=True)
['无线', '无线电', '法国', '国别', '研究']
- 搜索引擎模式分词:
- 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
python
import jieba
content = "无线电法国别研究"
jieba.cut_for_search(content)
# 将返回一个生成器对象
<generator object Tokenizer.cut at 0x7f065c19e318>
# 若需直接返回列表内容, 使用jieba.lcut_for_search即可
jieba.lcut_for_search(content)
['无线', '无线电', '法国', '别', '研究']
# 对'无线电'等较长词汇都进行了再次分词.
- 中文繁体分词:
- 针对中国香港, 台湾地区的繁体文本进行分词。
python
import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)
['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']
- 使用用户自定义词典:
- 添加自定义词典后, jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
- 词典格式: 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
- 词典样式如下, 具体词性含义请参照7 jieba词性对照表, 将该词典存为userdict.txt, 方便之后加载使用。
python
云计算 5 n
李小福 2 nr
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
python
import jieba
jieba.lcut("八一双鹿更名为八一南昌篮球队!")
# 没有使用用户自定义词典前的结果:
['八', '一双', '鹿', '更名', '为', '八一', '南昌', '篮球队', '!']
jieba.load_userdict("./userdict.txt")
# 使用了用户自定义词典后的结果:
['八一双鹿', '更名', '为', '八一', '南昌', '篮球队', '!']
🍔什么是命名实体识别
-
命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
-
顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
-
举个例子:
鲁迅, 浙江绍兴人, 五四新文化运动的重要参与者, 代表作朝花夕拾.
==>
鲁迅(人名) / 浙江绍兴(地名)人 / 五四新文化运动(专有名词) / 重要参与者 / 代表作 / 朝花夕拾(专有名词)
- 命名实体识别的作用:
- 同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
🍔什么是词性标注
-
词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
-
顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.
-
举个例子:
我爱自然语言处理
==>
我/rr, 爱/v, 自然语言/n, 处理/vn
rr: 人称代词
v: 动词
n: 名词
vn: 动名词
-
词性标注的作用:
- 词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
-
使用jieba进行中文词性标注:
python
import jieba.posseg as pseg
pseg.lcut("我爱北京天安门")
[pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]
# 结果返回一个装有pair元组的列表, 每个pair元组中分别是词汇及其对应的词性, 具体词性含义请参照[附录: jieba词性对照表]()
🍔小结
-
学习了什么是分词:
- 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
-
学习了分词的作用:
- 词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
-
学习了流行中文分词工具jieba:
- 支持多种分词模式: 精确模式, 全模式, 搜索引擎模式
- 支持中文繁体分词
- 支持用户自定义词典
-
学习了jieba工具的安装和分词使用.
-
学习了什么是命名实体识别:
- 命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
- 顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
-
命名实体识别的作用:
- 同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
-
学习了什么是词性标注:
- 词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
- 顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.
-
学习了词性标注的作用:
- 词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
-
学习了使用jieba进行词性标注.
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=25w2kbscybb44