NLP文本特征处理及数据增强-学习笔记(4)

本文介绍文本特征处理,包括n-gram提取和文本长度规范,以及数据增强中的回译法。n-gram特征能提升模型性能,而回译数据增强能增加样本多样性,但可能产生重复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  • 学习目标:

    • 了解文本特征处理的作用.

    • 掌握实现常见的文本特征处理的具体方法.


  • 文本特征处理的作用:

    • 文本特征处理包括为语料添加具有普适性的文本特征, 如:n-gram特征, 以及对加入特征之后的文本语料进行必要的处理, 如: 长度规范. 这些特征处理工作能够有效的将重要的文本特征加入模型训练中, 增强模型评估指标.

  • 常见的文本特征处理方法:

    • 添加n-gram特征

    • 文本长度规范


  • 什么是n-gram特征:

    • 给定一段文本序列, 其中n个词或字的相邻共现特征即n-gram特征, 常用的n-gram特征是bi-gram和tri-gram特征, 分别对应n为2和3.

  • 举个栗子:

假设给定分词列表: [“是谁”, “敲动”, “我心”]

对应的数值映射列表为: [1, 34, 21]

我们可以认为数值映射列表中的每个数字是词汇特征.

除此之外, 我们还可以把"是谁"和"敲动"两个词共同出现且相邻也作为一种特征加入到序列列表中,

假设1000就代表"是谁"和"敲动"共同出现且相邻

此时数值映射列表就变成了包含2-gram特征的特征列表: [1, 34, 21, 1000]

这里的"是谁"和"敲动"共同出现且相邻就是bi-gram特征中的一个.

"敲动"和"我心"也是共现且相邻的两个词汇, 因此它们也是bi-gram特征.

假设1001代表"敲动"和"我心"共同出现且相邻

那么, 最后原始的数值映射列表 [1, 34, 21] 添加了bi-gram特征之后就变成了 [1, 34, 21, 1000, 1001]


1.1提取n-gram特征:

# 一般n-gram中的n取2或者3, 这里取2为例
# 我们要往里面添加二元特征
ngram_range = 2

def create_ngram_set(input_list):
    '''
        description: 从数值列表中提取所有的n-gram特征
        :param input_list: 输入的数值列表, 可以看作是词汇映射后的列表,
        里面每个数字的取值范围为[1, 25000]
        :return: n-gram特征组成的集合
        eg:
        >>> create_ngram_set([1, 4, 9, 4, 1, 4]) 可以看出这个列表经过二元特征的提取后,得到下面四个二元特征
        {(4, 9), (4, 1), (1, 4), (9, 4)}
    '''
    return set(zip(*[input_list[i:] for i in range(ngram_range)]))
    #i只能取0或者1,当i取0时取出来的为[1,4,9,4,1,4],当i取1时,取出来[4,9,4,1,4],两个列表zip一下,得到{(4, 9), (4, 1), (1, 4), (9, 4)}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值