·精确模式分词:
·试图将句子最精确地切开,适合文本分析。
import jieba
content = "工信部女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
jieba.cut(content, cut_all=False)# cut_all默认值为False
#将返回一个生成器对象
·输出结果
<generator object Tokenizer.cut at 0x000002999E9BD740>
#若需直接返回列表内容,使用jieba.luct即可
jieba.lcut(content, cut_all=False)
·输出结果
['工信部',
'女干事',
'每月',
'经过',
'下属',
'科室',
'都',
'要',
'亲口',
'交代',
'24',
'口',
'交换机',
'等',
'技术性',
'器件',
'的',
'安装',
'工作']
·全模式分词
·把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能消除歧义
import jieba
content = "工信部女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
jieba.cut(content, cut_all=True)# cut_all默认值为False
#将返回一个生成器对象
·输出结果
<generator object Tokenizer.cut at 0x00000299A032D9E0>
#若需直接返回列表内容,使用jieba.luct即可
jieba.lcut(content, cut_all=True)
·输出结果
['工',
'信',
'部',
'女干事',
'干事',
'每月',
'月经',
'经过',
'下属',
'科室',
'都',
'要',
'亲口',
'口交',
'交代',
'24',
'口交',
'交换',
'交换机',
'换机',
'等',
'技术',
'技术性',
'性器',
'器件',
'的',
'安装',
'安装工',
'装工',
'工作']
·搜索引擎模式分词
·在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jieba
content = "工信部女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"
jieba.cut_for_search(content)
·输出结果
<generator object Tokenizer.cut_for_search at 0x00000299A032DC80>
#若需直接返回列表内容,使用jieba.luct_for_search即可
jieba.lcut_for_search(content)
·输出结果
['工信部',
'干事',
'女干事',
'每月',
'经过',
'下属',
'科室',
'都',
'要',
'亲口',
'交代',
'24',
'口',
'交换',
'换机',
'交换机',
'等',
'技术',
'技术性',
'器件',
'的',
'安装',
'工作']
·使用用户自定义词典:
·添加自定义词典后,jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
·词典格式:每一行分三部分:词语,词频(可省略),词性(可省略),用空格隔开,顺序不可颠倒
·流行中英文分词工具hanlp:
·中英文NLP处理工具包,基于tensorflow2.0,使用在学术界和行业中推广最先进的深度学习技术
·hanlp的安装:
# 使用pip进行安装
pip install hanlp
·使用hanlp进行中文分词:
#加载CTB_CONVSEG预训练模型进行分词任务
tokenizer = hanlp.load('CTB6_CONVSEG')
tokenizer("工信部女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作")
·什么是命名实体识别:
·命名实体:通常我们将人名,地名,机构名等专有名词统称命名实体。如:周杰伦,黑山县,孔子学院,24辊方钢矫直机
·顾名思义,命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体
·命名实体识别的作用:
·同词汇一样,命名实体也是人类理解文本的基础单元,因此也是AI解决领域高阶任务的重要基础环节。
使用hanlp进行中文命名实体识别:
import hanlp
# 加载中文命名实体识别的预训练模型MSRA_NER_BERT_BASE_ZH
recognizer = hanlp.load(hanlp.pretrained.ner.MSRA_NER_BERT_ZH)
# 这里注意它的输入是对句子进行字符分割的列表,因此在句子前加入了list()
list('上海华安工业(集团)公司董事长谭旭光和秘书张晚霞来到美国纽约现代艺术博物馆参观。')
recognizer(list('上海华安工业(集团)公司董事长谭旭光和秘书张晚霞来到美国纽约现代艺术博物馆参观。'))
# 返回结果是一个装有n个元组的列表,每个元组代表一个命名实体,元组中的每一项分别代表具体的命名实体,如:'上海华安工业(集团)公司';命名实体的类型,如:'NT'-机构名;命名实体的开始索引和结束索引,如:0,12
·使用hanlp进行英文命名实体识别:
import hanlp
# 加载英文命名实体的预训练模型CONLL03_NER_BERT_BASE_UNCASED_EN
recognizer = hanlp.load(hanlp.pretrained.ner.CONLL03_NER_BERT_BASE_UNCASED_EN)
# 注意它的输入是对句子进行分词后的结果,是列表形式
recognizer(["President", "Obama","is","speaking","at","the","White","House"])
# 返回结果是一个装有n个元组的列表,每个元组代表一个命名实体,元组中的每一项分别代表具体的命名实体
词性标注
·词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果,常见的词性有14种,如:名词,动词,形容词......
·顾名思义,词性标注(Part-Of-Speech tagging,简称POS)就是标注出一段文本中每个词汇的词性。
·举个栗子:
我爱自然语言处理
==>
我//rr,爱/v,自然语言/n,处理/vn
rr:人称代词
v:动词
n:名词
vn:动名词
·词性标注的作用:
·词性标注以分词为基础,是对文本语言的另一个角度的理解,因此也常常成为AI解决NLP领域的高阶任务的重要基础环节
·使用jieba进行中文词性标注
import jieba.posseg as pseg
print(pseg.lcut("我爱北京天安门"))
# 结果返回一个装有pair元组的列表,每个pair元组中分别是词汇及对应的词性
·输出结果
[pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]
·使用hanlp进行中文词性标注
import hanlp
# 加载中文命名实体识别的训练模型CTB5_POS_RNN_FASTTEXT_ZH
tagger = hanlp.load(hanlp.pertrained.pos.CTB5_POS_RNN_FASTTEXT_ZH)
# 输入是分词结果列表
tagger(['我','的','希望','是','希望','和平'])
# 结果返回对应的词性
·输出结果
['PN', 'DEG', 'NN', 'VC', 'VV', 'NN']
·使用hanlp进行英文词性标注
import hanlp
# 加载英文命名实体识别的预训练模型CTB5_POS_RNN_FASTTEXT_EN
tagger = hanlp.load(hanlp.pretrained.pos.CTB5_POS_RNN_FASTTEXT_EN)
# 输入是分词结果列表
tagger(['I', 'banked', '2', 'dollars', 'in', 'a', 'bank', '.'])
·输出结果
['PRP', 'VBD', 'CD', 'NNS', 'IN', 'DT', 'NN', '.']
总结
·什么是分词
·分词就是你将连续的字符序列按照一定的规范重新组合成词序列的过程。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字,句和段就能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,分词过程就是找到这样分界符的过程。
·分词的作用:
·词作为语言语义理解的最小单元,是人类理解文本语言的基础。因此也是AI解决NLP领域高阶任务,如自动问答,机器翻译,文本翻译生成的重要基础环节。
·流行中文分词工具jieba:
·支持多种分词模式:精确模式,全模式,搜索引擎模式
·支持中文繁体分词
·支持用户自定义字典
·流行中英文分词工具hanlp的使用
·命名实体识别:
·命名实体:通常我们将人名,地名机构名等专有名词统称为命名实体顾名思义,命名实体识别就是识别出一段文本中可能存在的命名实体。
·命名实体识别的作用:
·同词汇一样,命名实体也是人类理解文本的基础单元因此也是AI解决NLP领域高阶任务的重要基础环节。
·使用hanlp进行命名实体识别
·词性标注:
词性:语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果,常见的词性有14种,如:名词、动词、形容词等。
顾名思义,词性标注就是标注出一段文本中每个词汇的词性。
·词性标注的作用:
·词性标注以分词为基础,是对文本语言的另一个角度的理解,因此也常常成为AI解决NLP领域高阶任务的重要环节。
·使用jieba和hanlp进行词性标注