nlp基础-文本预处理及循环神经网络

news2024/10/7 14:05:33

1 认识文本预处理

  • 1 文本预处理及其作用

    • 定义:文本送给模型之前,提前要做的工作

    • 作用:指导模型超参数的选择 、提升模型的评估指标

    • 举个例子:

      • 思路常识,打造成 X Y
      • 关于Y:10分类标签是否均衡
      • 关于X:数据有没有脏数据 数据长度(512)样本不够!
    • 文本预处理 工作 结束 的标志:准备出来X和Y 能送给模型

  • 2 文本预处理的主要环节

    • 1 文本处理的基本方法

      • 分词:按照一定规则对文本重新划分,进行分词

      • 词性标注:把文本序列标注出来动词、名词、形容词这个过程词性标注

      • 命名实体识别:把专有名词(人名、地名、机构名)给识别出来。

        • 比如:对话系统要进行命名实体识别,对语义进理解。
    • 2 文本张量表示方法: 就是把我们的单词转成数值化的数据 张三【88,87, 86 ,85, 84】文本数值化、数值张量化

      • one-hot编码: low 稀疏词向量表示

      • Word2vec:稠密词向量表示

      • Word Embedding:稠密词向量表示

    • 3 文本语料的数据分析:就是对数据的x y进行分析

      • 标签数量分布:对y:十分类:类别是不是均衡

      • 句子长度分布:对x:文本长度有的是100个长度,有的是200,

      • 词频统计与关键词词云:形容词词云

    • 4 文本特征处理:我 爱 北京 天安门

      • 添加n-gram特征 【101,102,103,104,105】:105代表【北京 天安门】相邻共现,可以作为一个新的特征加入到文本序列中;增强模型对文本序列特征抽取

      • 文本长度规范:有些模型送入的数据长度不能超过512

    • 5 数据增强方法: 数据不够,看如何增加语料

      • 1 回译数据增强法:中文–>韩语 -->葡萄牙–>中文,新增了一条样本
  • 3 思考题,文本处理的主要环节中,哪一些环节是第一个要做的?

    • 一般情况,文本语料的数据分析是程序员首先要做的工作。

2 文本处理的基本方法

  • 分词定义和作用:

    • 定义: 将连续字符按照一定规则重新排序的过程
    • 作用: 理解语义的最小单元!
    • 为什么要分词:中文没有明显的分解符 英文天然空格是分解符
      • 对中文分词来讲:不断寻找分解符的过程
  • 流行分词工具jieba

    • 支持多种分词模式(三种模式)
      • 精确模式:
      • 全模式:
      • 搜索引擎模式:
    • 支持中文繁体分词
    • 支持用户自定义词典
      • 自定义字典的格式
  • 结巴分词编程api

    • 三种模式

      jieba.lcut(content, cut_all=False) 精确模式
      jieba.lcut(content, cut_all=True) 全模式
      jieba.cut_for_search(content) 搜素引擎模式
      
    • 中文繁体分词

      • jieba.lcut(content, cut_all=False) 精确模式
    • 用户自定义词典

      • jieba.load_userdict('./userdict.txt')
        mydata2 = jieba.lcut(sentence)
        
  • 什么是命名实体识别 (NER)

    • 命名实体:指人名地名机构名等专有名字
    • 命名实体识别:对一句话中的专有名词进行识别(NER - Named Entity Recognition)
  • 词性标注

    • 词性定义: 动词名词形容词
    • 词性标注定义:对文本先分词,然后再标注词性
      • 词向标注也是对此的一种分类方法
        • 单词级别的分类

3 文本张量表示方法

  • 什么是文本张量表示
    • 定义:
      • 把词表示成向量的的形式,也就是词向量,一句话表示成词向量矩阵。这个过程就是文本张量表示。
    • 作用:
      • 方便输入到计算机中
    • 文本张量的表示方法:三种
      • one-hot
      • word2vec
      • wordenbedding

  • 什么是one-hot词向量表示

    • 定义: 有一个位置是1 其他全部是零

    • 编程api

      • mytokenizer.fit_on_texts(vocabs) # 生成两个表 word2idx idx2word  
        zero_list = [0] * len(vocabs)
        zero_list[idx] = 1
        joblib.dump(mytokenizer, './mytokenizer')
        mytokenizer = joblib.load('./mytokenizer')
        # oov单词问题
        
    • one-hot编码的优劣势:

      • 优点: 简单
      • 缺点: 割裂了词和词之间的关系 浪费空间、内存
        • 稀疏词向量表示
  • 什么是word2vec

    • word2vec概念

      • 1 也是一种词向量的表示方法 (把词表示成向量 ;一句话表示成向量矩阵)
      • 2 使用深度学习的方法 也就是使用深度学习网络的方法
        • 使用深度学习网络的参数 来表示词向量
        • 深度学习网络(模型)入门的重要点:区分数据和参数
        • word2vec的思想使用:深度神经网络的参数 来充当词向量
    • CBOW(Continuous bag of words)模式:

    • skipgram词向量训练模型

  • 使用fasttext工具实现word2vec的训练和使用

    • 第一步: 获取训练数据

      • wikifil.pl 文件处理脚本来清除XML/HTML格式的内容
        1. 下载语料库, wget -http://mattmahoney.net/dc/enwik9.zip
        2. 解压语料库, unzip enwik9.zip
        3. 处理语料库, perl wikifil.pl enwik9 > fil9
        4. head -n enwik9 查看多少行
        5. head -c 200 fil9_3 查看前200个单词
        
    • 第二步: 训练词向量

      • 词向量安装

        • 源码安装

        • import fasttext
          model = fasttext.train_unsupervised('data/fil9')
          model.get_word_vector("the")  # 获取词向量
          如何查看fasttext源码安装的路径
          pip freeze | grep fasttext
          > fasttext @ file:///Users/bombing/.virtualenvs/nlp-py37-env/fastText
          # 思考题:获取词向量的流程?
          # 思考题:是无监督学习吗?
          
    • 第三步: 模型超参数设定

      • dim: 默认为100
      • epoch: 默认为5
      • 学习率lr: 默认为0.05,
      • thread: 默认为12个线程
    • 第四步: 模型效果检验

      • model.get_nearest_neighbors(‘music’)
    • 第五步: 模型的保存与重加载

      • mymodel.save_model(“./data/fil9.bin”)

      • mymodel = fasttext.load_model(‘./data/fil9.bin’)

  • word embedding(词嵌入)

    • 广义的word embedding: 用深度神经网络来训练我们的词向量
      • 神经网络是浅层 – word2vec
      • 大型-----wordembedding
    • 狭义的word embedding
      • 神经网络的某一个层 nn.Eembedding

1.1 RNN模型

1 有关seq2seq架构重要场景

在这里插入图片描述

2 有关rnn的9个参数重要场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 有关隐藏层个数理解重要场景

在这里插入图片描述
在这里插入图片描述

4 场景:每个时间步都是用rnn的模型权重参数在这里插入图片描述

1.2 LSTM(长短时记忆网络)

  • 门如何理解
    • 缩放系数:对一堆数据乘上一个门,相当于给一堆数据乘上一个缩放系数
    • 对输入数据进行加权!

1 场景:门的综合图在这里插入图片描述

2 场景:遗忘门和输入门在这里插入图片描述

3 场景:细胞状态和输入门在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.4 GRU模型

1 场景:门的综合图

在这里插入图片描述

2场景 矩阵参数数量对比

在这里插入图片描述

3 场景:有关批量的给RNN送数据

重要场景

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1854656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【break】大头哥哥做题

【break】大头哥哥做题 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 【参考代码】 #include <iostream> using namespace std; int main(){ int sum 0;//求和int day 0;//天数 while(1){int a;cin>>a;if(a-1){break;//结束当前循环 }sum sum a; …

自动更新阿里云CDN SSL证书

deploy-certificate-to-aliyun 随着各大CA机构开始收割用户&#xff0c;云厂商们提供的免费SSL证书也由之前的12个月变成现在的3个月。笔者一直使用阿里云的OSS作为图床&#xff0c;说实话在如果继续在阿里云上三个月免费一换也太频繁了 笔者在这里使用github action来每隔两个…

odoo的采购询价单,默认情况下显示‘draft‘,‘sent‘,‘purchase‘,请问什么情况下才会显示‘to approve‘?

odoo的采购询价单&#xff0c;默认情况下显示’draft’,‘sent’,‘purchase’&#xff0c;请问什么情况下才会显示’to approve’? 见下图&#xff1a; 这与操作人员的角色是相关的&#xff1a; 当操作人员是群组 “采购 / 用户”时&#xff0c;点击“confirm order/确认订…

细说AGV的12种导航方式和原理

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 这十二种导航方式各自具有不同的特点和应用场景&#xff0c;下面我将逐一进行简要介绍&#xff1a; 磁钉导航&#xff1a; 原理&#xf…

基于CDMA的多用户水下无线光通信(2)——系统模型和基于子空间的延时估计

本文首先介绍了基于CDMA的多用户UOWC系统模型&#xff0c;并给出了多用户收发信号的数学模型。然后介绍基于子空间的延时估计算法&#xff0c;该算法只需要已知所有用户的扩频码&#xff0c;然后根据扩频波形的循环移位在观测空间的信号子空间上的投影进行延时估计。 1、基于C…

基于CDMA的多用户水下无线光通信(1)——背景介绍

研究生期间做多用户水下无线光通信&#xff08;Underwater Optical Wireless Communication&#xff0c;UOWC&#xff09;&#xff0c;写几篇博客分享一下学的内容。导师给了大方向&#xff0c;让我用直接序列码分多址&#xff08;Direct Sequence Code Division Multiple Acce…

分布式锁实现方案

分布式锁 1 什么是分布式锁 ​ 就是在分布式环境下&#xff0c;保证某个公共资源只能在同一时间被多进程应用的某个进程的某一个线程访问时使用锁。 2 几个使用场景分析 一段代码同一时间只能被同一个不同进程的一个线程执行 库存超卖 (库存被减到 负数)&#xff0c;上面案…

智慧园区数字化能源云平台的多元化应用场景,您知道哪些?

智慧园区数字化能源云平台的多元化应用场景&#xff0c;您知道哪些&#xff1f; 智慧园区数字化能源云平台&#xff0c;作为新一代信息技术与传统能源管理深度融合的典范&#xff0c;正引领着产业园区向智慧化、绿色化转型的浪潮。该平台依托于大数据、云计算及人工智能等前沿…

AI 大模型企业应用实战(13)-Lostinthemiddle长上下文精度处理

1 长文本切分信息丢失处理方案 10检索时性能大幅下降相关信息在头尾性能最高检索 ->> 排序 ->使用 实战 安装依赖&#xff1a; ! pip install sentence-transformers 演示如何使用 Langchain 库中的组件来处理长文本和检索相关信息。 导入所需的库使用指定的预训…

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明&#xff0c;比较异同 RISC&#xff08;精简指令集&#xff09;注重简单快速的指令执行&#xff0c;使用少量通用寄存器&#xff0c;固定长度指令&#xff0c;优化硬件性能&#xff0c;依赖软件&#xff08;如编译…

基于YOLOv5+PyQT5的吸烟行为检测(含pyqt页面、模型、数据集)

简介 吸烟不仅对个人健康有害,也可能在某些特定场合带来安全隐患。为了有效地监控公共场所和工作环境中的吸烟行为,我们开发了一种基于YOLOv5目标检测模型的吸烟检测系统。本报告将详细介绍该系统的实际应用与实现,包括系统架构、功能实现、使用说明、检测示例、数据集获取…

I2C总线8位IO扩展器PCF8574

PCF8574用于I2C总线的远程8位I/O扩展器 PCF8574国产有多个厂家有替代产品&#xff0c;图示为其中一款HT8574 1 产品特点 低待机电流消耗&#xff1a;10 uA&#xff08;最大值&#xff09; I2C 转并行端口扩展器 漏极开路中断输出 与大多数微控制器兼容 具有大电流驱动能力的闭…

JavaScript 预编译与执行机制解析

在深入探讨JavaScript预编译与执行机制之前&#xff0c;我们首先需要明确几个基本概念&#xff1a;声明提升、函数执行上下文、全局执行上下文以及调用栈。这些概念共同构成了JavaScript运行时环境的核心组成部分&#xff0c;对于理解代码的执行流程至关重要。本文将围绕这些核…

网信办公布第六批深度合成服务算法备案清单,深兰科技大模型入选

6月12日&#xff0c;国家互联网信息办公室发布了第六批深度合成服务算法备案信息&#xff0c;深兰科技硅基知识智能对话多模态大模型算法通过相关审核&#xff0c;成功入选该批次《境内深度合成服务算法备案清单》。同时入选的还有腾讯混元大模型多模态算法、支付宝图像生成算法…

《分析模式》“鸦脚”表示法起源,Everest、Barker和Hay

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 《分析模式》这本书里面用的并不是UML表示法。作者Martin Fowler在书中也说了&#xff0c;该书写于1994-1995年&#xff0c;当时还没有UML。作者在书中用的是一种常被人称为“鸦脚”的…

Claude 3.5 Sonnet已经上线,Claude 3.5 Opus即将上线

https://docs.anthropic.com/en/docs/about-claude/models 人工智能学习网站 https://chat.xutongbao.top/

腾讯Hardcoder-Android通讯框架简介

APP 的功能和业务特性不依赖于该框架。 总而言之&#xff0c;由于Hardcoder是腾讯主导的&#xff0c;所以我们不用太担心兼容性问题&#xff0c;腾讯会和手机厂商进行洽谈并提供解决方案&#xff0c;并且目前已经支持Hardcoder框架的手机厂商有OPPO、vivo、华为、小米、三星、…

Django 模版转义

1&#xff0c;模版转义的作用 Django模版系统默认会自动转义所有变量。这意味着&#xff0c;如果你在模版中输出一个变量&#xff0c;它的内容会被转义&#xff0c;以防止跨站脚本攻击&#xff08;XSS&#xff09;。例如&#xff0c;如果你的变量包含HTML标签&#xff0c;这些…

Python 算法交易实验72 QTV200第一步: 获取原始数据并存入队列

说明 最近的数据流往前进了一步&#xff0c;我觉得基本可以开始同步的推进QTV200了。上次规划了整体的数据流&#xff0c;现在开始第一步。 内容 1 结构位置 这是上次的总体图&#xff1a; 以下是这次要实现的一小部分&#xff1a; 从结构上&#xff0c;这个是整体数据流的…

2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer

简单介绍 之前的20个问题的文章在这里&#xff1a; https://zhuanlan.zhihu.com/p/148656446 其实这20个问题不是让大家背答案&#xff0c;而是为了帮助大家梳理 transformer的相关知识点&#xff0c;所以你注意看会发现我的问题也是有某种顺序的。 本文涉及到的代码可以在…