文章目录

  • 前言
  • 一、什么是自然语言处理
  • 二、文本预处理
  • 三、 文本处理的基本方法
  • 总结



前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,深度学习这门技术也越来越重要,很多人都开启了学习深度学习,本文就介绍了深度学习的基础内容。


#博学谷IT学习技术支持#

一、什么是自然语言处理

自然语言处理(Natural Language Processing, 简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域.

二、文本预处理

本预处理及其作用¶
文本语料在输送给模型前一般需要一系列的预处理工作, 才能符合模型输入的要求, 如: 将文本转化成模型需要的张量, 规范张量的尺寸等, 而且科学的文本预处理环节还将有效指导模型超参数的选择, 提升模型的评估指标.

2 文本预处理中包含的主要环节¶

文本处理的基本方法
文本张量表示方法
文本语料的数据分析
文本特征处理
数据增强方法

2.1 文本处理的基本方法¶

分词
词性标注
命名实体识别

2.2 文本张量表示方法¶

one-hot编码
Word2vec
Word Embedding

2.3 文本语料的数据分析¶

标签数量分布
句子长度分布
词频统计与关键词词云

2.4 文本特征处理¶

添加n-gram特征
文本长度规范

2.5 数据增强方法¶

回译数据增强法

2.6 重要说明¶

在实际生产应用中, 我们最常使用的两种语言是中文和英文,因此文本预处理部分的内容都将针对这两种语言进行讲解.

三、 文本处理的基本方法

1 什么是分词¶
分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.

举个例子:

无线电法国别研究

[‘无线电法’, ‘国别’, ‘研究’]
分词的作用:

词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
流行中文分词工具jieba:

愿景: “结巴”中文分词, 做最好的 Python 中文分词组件.
jieba的特性:

支持多种分词模式
精确模式
全模式
搜索引擎模式
支持中文繁体分词
支持用户自定义词典
jieba的安装:

pip install jieba

jieba的使用:
精确模式分词:
试图将句子最精确地切开,适合文本分析.

import jieba
content = "无线电法国别研究"
jieba.cut_for_search(content)

# 将返回一个生成器对象
<generator object Tokenizer.cut at 0x7f065c19e318>

# 若需直接返回列表内容, 使用jieba.lcut_for_search即可
jieba.lcut_for_search(content)
['无线', '无线电', '法国', '别', '研究']

# 对'无线电'等较长词汇都进行了再次分词.

搜索引擎模式分词:
在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

中文繁体分词:
针对中国香港, 台湾地区的繁体文本进行分词。

import jieba
content = "煩惱即是菩提,我暫且不提"
jieba.lcut(content)
['煩惱', '即', '是', '菩提', ',', '我', '暫且', '不', '提']

使用用户自定义词典:
添加自定义词典后, jieba能够准确识别词典中出现的词汇,提升整体的识别准确率。
词典格式: 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
词典样式如下, 具体词性含义请参照7 jieba词性对照表, 将该词典存为userdict.txt, 方便之后加载使用。

云计算 5 n
李小福 2 nr
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
import jieba
jieba.lcut("八一双鹿更名为八一南昌篮球队!")


没有使用用户自定义词典前的结果: ['八', '一双', '鹿', '更名', '为', '八一', '南昌', '篮球队', '!'] jieba.load_userdict("./userdict.txt") # 使用了用户自定义词典后的结果:

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

2 什么是命名实体识别¶
命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.

举个例子:

鲁迅, 浙江绍兴人, 五四新文化运动的重要参与者, 代表作朝花夕拾.

==>

鲁迅(人名) / 浙江绍兴(地名)人 / 五四新文化运动(专有名词) / 重要参与者 / 代表作 / 朝花夕拾(专有名词)
命名实体识别的作用:
同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
3 什么是词性标注¶
词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.

举个例子:

我爱自然语言处理

==>

我/rr, 爱/v, 自然语言/n, 处理/vn

rr: 人称代词
v: 动词
n: 名词
vn: 动名词
词性标注的作用:

词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.
使用jieba进行中文词性标注:

import jieba.posseg as pseg
pseg.lcut("我爱北京天安门") 
[pair('我', 'r'), pair('爱', 'v'), pair('北京', 'ns'), pair('天安门', 'ns')]

结果返回一个装有pair元组的列表, 每个pair元组中分别是词汇及其对应的词性, 具体词性含义请参照附录: jieba词性对照表

4 小结¶
学习了什么是分词:

分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符, 分词过程就是找到这样分界符的过程.
学习了分词的作用:

词作为语言语义理解的最小单元, 是人类理解文本语言的基础. 因此也是AI解决NLP领域高阶任务, 如自动问答, 机器翻译, 文本生成的重要基础环节.
学习了流行中文分词工具jieba:

支持多种分词模式: 精确模式, 全模式, 搜索引擎模式
支持中文繁体分词
支持用户自定义词典
学习了jieba工具的安装和分词使用.

学习了什么是命名实体识别:

命名实体: 通常我们将人名, 地名, 机构名等专有名词统称命名实体. 如: 周杰伦, 黑山县, 孔子学院, 24辊方钢矫直机.
顾名思义, 命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
命名实体识别的作用:

同词汇一样, 命名实体也是人类理解文本的基础单元, 因此也是AI解决NLP领域高阶任务的重要基础环节.
学习了什么是词性标注:

词性: 语言中对词的一种分类方法,以语法特征为主要依据、兼顾词汇意义对词进行划分的结果, 常见的词性有14种, 如: 名词, 动词, 形容词等.
顾名思义, 词性标注(Part-Of-Speech tagging, 简称POS)就是标注出一段文本中每个词汇的词性.
学习了词性标注的作用:

词性标注以分词为基础, 是对文本语言的另一个角度的理解, 因此也常常成为AI解决NLP领域高阶任务的重要基础环节.

学习了使用jieba进行词性标注.

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。