NLP文本预处理-学习笔记(1)

1.概要

学习大纲

2.文本预处理作用及其主要环节

  • 作用:
    文本语料在输送给模型前一般需要一系列的预处理工作,才能符合模型输入的要求,例如:将文本转化为模型所需要的张量,规范张量的尺寸,而且科学的文本预处理环节将会有效的知道模型超参数的选择,提升模型的评估指标.
  • 环节:
    • 文本处理的基本方法
    • 文本张量的表示方法
    • 文本语料的数据分析
    • 文本特征处理
    • 数据增强方法

2.1文本处理的基本方法:

2.1.1分词

  • jieba的使用
    • 精确模式分词
    • 适合将句子最为精确的切开,适合文本分析
import jieba
content = "工信部女干事每月经过下属科室都要亲口交待24口交换机等技术性器件的安装工作"

#将返回一个生成器对象
jieba.cut(content,cut_all=False)

<generator object Tokenizer.cut at 0x000001DE14573660>

#直接返回列表内容,使用jieba.lcut即可
jieba.lcut(content,cut_all=False)

[‘工信部’,
‘女干事’,
‘每月’,
‘经过’,
‘下属’,
‘科室’,
‘都’,
‘要’,
‘亲口’,
‘交待’,
‘24’,
‘口’,
‘交换机’,
‘等’,
‘技术性’,
‘器件’,
‘的’,
‘安装’,
‘工作’]

  • 全模式分词
    • 把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能消除歧义
jieba.lcut(content,cut_all=True)#cut_all默认为False

[‘工’,
‘信’,
‘部’,
‘女干事’,
‘干事’,
‘每月’,
‘月经’,
‘经过’,
‘下属’,
‘科室’,
‘都’,
‘要’,
‘亲口’,
‘口交’,
‘交待’,
‘24’,
‘口交’,
‘交换’,
‘交换机’,
‘换机’,
‘等’,
‘技术’,
‘技术性’,
‘性器’,
‘器件’,
‘的’,
‘安装’,
‘安装工’,
‘装工’,
‘工作’]

  • 搜索引擎模式分词
    • 在精确模式的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词
jieba.lcut_for_search(content)

[‘工信部’,
‘干事’,
‘女干事’,
‘每月’,
‘经过’,
‘下属’,
‘科室’,
‘都’,
‘要’,
‘亲口’,
‘交待’,
‘24’,
‘口’,
‘交换’,
‘换机’,
‘交换机’,
‘等’,
‘技术’,
‘技术性’,
‘器件’,
‘的’,
‘安装’,
‘工作’]
#对"女干事","交换机"等长词汇都进行了再次分词

  • 中文繁体分词
    • 针对中国香港.'台湾地区的繁体文本进行分词
import jieba
content2="煩惱即是菩提,我暫且不提"
jieba.lcut(content)

[‘工信部’,
‘干事’,
‘女干事’,
‘每月’,
‘经过’,
‘下属’,
‘科室’,
‘都’,
‘要’,
‘亲口’,
‘交待’,
‘24’,
‘口’,
‘交换’,
‘换机’,
‘交换机’,
‘等’,
‘技术’,
‘技术性’,
‘器件’,
‘的’,
‘安装’,
‘工作’]

  • 使用用户自定义词典
    • 添加自定义词典后,jieba能准确识别出词典中出现的词汇,提升整体的准确率.
    • 词典格式:每一行分三部分:词语.词频(可省略).词性(可省略).用空格隔开.顺序不可颠倒
    • 词典样式如下,具体词性含义请参照附录.jieba词性对照表,将该词典存为userdict.txt,方便之后加载使用.
'''
云计算 5 n
easy_install 3 eng
好用 300 
韩玉赏鉴 3 nz
八一双鹿 3 nz
'''
jieba.lcut('八一双鹿更名为八一南昌篮球队!')
#没有使用用户自定义词典的结果:

[‘八’, ‘一双’, ‘鹿’, ‘更名’, ‘为’, ‘八一’, ‘南昌’, ‘篮球队’, ‘!’]

jieba.load_userdict(r'D:\NLP\user_dict.txt')

[‘八一双鹿’, ‘更名’, ‘为’, ‘八一’, ‘南昌’, ‘篮球队’, ‘!’]

  • 流行中英文分词工具hanlp
    • 中英文NLP处理工具包,基于tensorflow2.0,使用在学术界和行业中推广最先进的深度学习技术
  • 使用hanlp进行中文分词:
import hanlp
HanLP=hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH) # 世界最大中文语料库
doc = HanLP(['2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。', '阿婆主来到北京立方庭参观自然语义科技公司。'])
  • Native API的输入单位为句子,需使用多语种分句模型或基于规则的分句函数先行分句。特别地,Python HanLPClient也支持当作函数调用,在语义上完全一致。简洁的接口也支持灵活的参数,常用的技巧有:

    • 灵活的tasks任务调度,任务越少,速度越快。如HanLP(‘商品和服务’, tasks=‘tok’)指定仅执行分词;大多数任务依赖分词,tasks='dep’会执行分词和依存句法分析;而tasks=[‘pos’, ‘dep’], skip_tasks='tok*'表示跳过分词仅执行词性标注和依存句法分析,此时需传入单词列表;skip_tasks='tok/fine’表示使用粗分标准分词并执行后续任务。在内存有限的场景下,用户还可以删除不需要的任务达到模型瘦身的效果。
    • 高效的trie树自定义词典,以及强制、合并、校正3种规则,请参考demo和文档。规则系统的效果将无缝应用到后续统计模型,从而快速适应新领域
  • 输出结果是一个可以json化的dict,键为NLP任务名,值为分析结果。通过.pretty_print,可以在等宽字体环境中得到可视化,你需要取消换行才能对齐可视化结果(我们准备发布HTML环境的可视化)。

2.1.2词性标注

2.1.3命名实体识别

2.2文本张量的表示方法:

2.2.1one-hot编码

2.2.2word2vec

2.2.3word Embedding

2.3文本语料的数据分析:

2.3.1标签数量分布

2.3.2句子长度分布

2.3.3词频统计与关键词词云

2.4文本特征处理:

2.4.1添加n-gram特征

2.4.2本文长度规范

2.5数据增强方法:

2.5.1回译数据增强法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值