深度学习核心技术与实践之自然语言处理篇

news2024/11/26 21:38:18

非书中全部内容,只是写了些自认为有收获的部分。

自然语言处理简介

NLP的难点

(1)语言有很多复杂的情况,比如歧义、省略、指代、重复、更正、倒序、反语等

(2)歧义至少有如下几种:
        1.有些歧义是指代不明确带来的。比如“曾记否,我与你认识的时候,还是个十来岁的少年,纯真无瑕,充满幻想。"其中十来岁的少年指代不明,有可能指你,也有可能指我。
        2.有些歧义是机器断句困难导致组合层次不同带来的。比如“我们四个人一”可以理解为“我们/四个人一组”或“我们四个人/一组”,“这件事我办不好”可以理解为“这件事/我/办不好”或“这件事/我办/不好”。
        3.有些歧义是结构关系不同导致的。比如“学生家长”可以理解为“学生的家长”或"学生和家长”,"出口食品”可以理解为动宾关系,也可以理解为偏正关系。
        4.有些歧义是词语语义多带来的。比如“他想起来了”可以理解为“他想起床了”或者“他想起来某件事情了”
        5.词类不同也可以带来歧义。比如“我要炒饭”中的“炒”可以是动词,也可以是形容词.
        6.很多新的品牌或网络用语也会带来歧义问题

NLP的研究范围

(1)分词:利用算法将一个汉字序列切分为一个个单独的词。比如将“手
爱机器学习”切分为“我/爱/机器学习“
(2)词性标注:将分词结果中的每个单词标注为名词、动词、形容词或其他词性的过程
(3)命名实体识别:识别文本串中具有特定物理意义的实体单词,比如人名、地名、机构名等
(4)关键词提取:提取文本串中若干个可以代表文章语义内容的词汇或词语
(5)自动摘要:也称为摘要提取,即根据文本语义内容提取较短的语句
(6)主题模型:隐式的主题模型如Latent Semantic Analysis (LSA) 、Probabilistic Latent Semantic Analysis ( PLSA) 、 Latent Dirichlet Allocation (LDA) 等都是非常常见的研究领域。
(7)依存句法分析:分析语言成分之间的依存关系,并揭示其语法树
(8)词嵌入 (Word Embedding) :将词采用向量表示。词嵌入从2013年左右开始就一直比较流行,可以说,词嵌入本身不是深度学习,但词嵌入是深度学习用于自然语言处理的基本前提
(9)机器翻译:利用计算机将一种自然语言转换成另一种自然语言的过程,两种自然语言分别称为源语言和目标语言

词性标注

传统词性标注模型

(1)传统的词性标注方法有隐马尔可夫模型(HMM)和最大马尔可夫模型(MEMM)等。其中,HMM是生成模型,MEMM是判别模型

(2)基于MEMM的词性标注器抽取当前待标注单词附近的特征,然后利用这些特征判别当前单词的词性。MEMM是最大熵模型(ME) 在处理序列模型方面的变种。其思想是在一串满足约束的标签中选出一个熵最大的标签

(3)当前单词的上下文信息又叫作特征。根据在语料中出现的频次,可以将单词分为常见词和罕见词。常见词周围的特征包括:待标注的单词、待标注单词附近的单词、待标注单词附近已标注单词的词性标签等;罕见词的特征包括:单词的后缀、单词的前缀、单词是否包合数字、单词是否首字母大写等

(4)HMM和MEMM存在同一个问题,就是只能从一个方向预测接下来的标注。一种解决方法是用例如CRF这样的强大模型,但是CRF的计算开销太大,并且对标注效果的提升有限

基于神经网络的词性标注模型

(1)模型从左向右依次标注句子中的单词,对于当前单词,抽取周用一定窗口大小内的特征,然后将其作为特征向量送入前馈神经网络分类器

(2)整个神经网络分为多层。第一层把每个单词映射到一个特征向量,得到单词级别的特征,第二层利用滑动窗口得到单词上下文的特征向量,不像传统的词袋方法,这个方法保留了窗口内单词的顺序关系。同时也可以加入其他特征,如单词是否首字母大写、单词的词干等

(3)在计算上下文特征时只考虑当前单词附近窗口大小为k范围内的单词,这种方法叫作窗口方法

(4)将整个句子的单词特征向量送入后续网络中,这种方法叫作句子方法

(5)对于词性标注来说,句子方法并不能带来明显的效果提升,但是对于自然语言里的某些任务,如语义角色标注(SRL),句子方法带来的效果提升会比较明显

(6)因为句子长度一般是不定的,所以在使用句子方法的神经网络模型中会增加卷积层

(7)用无监督训练得到的词向量初始化词性标注模型的词向量,能明显提升词性标注的准确率

基于Bi-LSTM的神经网络词性标注

(1)普通的词向量结合大量语料可以学习到单词间语义和语法上的相似性。举个例子,模型可以学到cats、kings、queens之间的线性相关性与cat、king、queen之间的线性相关性一样。不过模型并不能学到前面这组单词是由后面这组单词在末尾加s得到的

(2)普通的词向量模型查找表过于庞大,于是就有人提出将单词拆成更小的单元。基于字符的词向量模型的输入、输出和普通的词向量模型是一样的,因此在神经网络模型中这两种模型可以相互替换。与普通的词向量模型类似,基于字符的词向量模型是给字符集合建立一个查找表。字符集合包括大小写字母、数字、标点等,每个字符都可以在查找表中找到对应的字符向量,每个单词都可以看成一串字符,将单词中的字符对应的向量从左到右依次送入LSTM模型,再以右向左依次送入LSTM模型。两个方向的LSTM模型生成的结果组合生成当前单词的词向量,这样就可以利用Bi-LSTM模型得到单词的向量表示。整个过程如图19-3所示

(3)模型架构

(4)相对于普通的词向量模型,基于字符的词向量模型减少了很多参数。不过,因为英文中单词构成的复杂性,该模型在词性标注上的表现并没有超越现有模型

(5)虽然基于字符的词向量模型可以学习ed,ily这种形变特征,但是英文中有些字符构成很像的单词之间的差异却很大,比如lesson和lessen,虽然以字符角度看起来很像,但是它们的含义却完全不同

依存句法分析

未完待续...

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

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

相关文章

Linux学习第49天:Linux块设备驱动实验(一):Linux三大驱动之一

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 本章学习Linux三大驱动之一的块设备驱动,主要应用场景为存储设备。 本章的思维导图如下: 一、什么是块设备 块设备---存储设备 以块为单位…

经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现

经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,并解决前向推理过程中的两个问题,继续按照此书进行YOLOV1的复现。 经典目标…

数据结构OJ实验8-赫夫曼树编码及应用

A. DS二叉树--赫夫曼树的构建与编码 题目描述 给定n个权值,根据这些权值构造huffman树,并进行huffman编码 大家参考课本算法6.12为主,注意数组访问是从位置1开始 要求:赫夫曼的构建中,默认左孩子权值不大于右孩子权…

webRTC实时通信demo

参考文档: https://www.jianshu.com/p/f439ce5cc0be https://www.w3cschool.cn/socket demo流程示意图(用户A向用户B推送视频): #mermaid-svg-0KZaDQ5DBl28zjmZ {font-family:"trebuchet ms",verdana,arial,sans-seri…

JavaWeb——前端之HTMLCSS

学习视频链接:https://www.bilibili.com/video/BV1m84y1w7Tb/?spm_id_from333.999.0.0 一、Web开发 1. 概述 能通过浏览器访问的网站 2. Web网站的开发模式——主流是前后端分离 二、前端Web开发 1. 初识 前端编写的代码通过浏览器进行解析和渲染得到我们看到…

elasticsearch+Kibana

什么是es(elasticsearch) Elasticsearch是一个开源的分布式搜索和分析引擎,它构建在Apache Lucene搜索引擎库之上。它提供了一个分布式多用户能力的实时搜索和分析引擎,能够处理大规模的数据。Elasticsearch被广泛用于构建全文搜索、日志分析、实时应用…

灸哥问答:软件架构在软件研发中的作用

软件架构在软件开发中扮演着至关重要的角色。我们在软件研发的过程中,类比于建造一座公寓楼,而软件架构就像是盖楼之前的设计图纸,如果没有设计图纸就直接盖楼,可想而知带来的后果是什么。我对软件架构的作用表现总结如下&#xf…

iOS问题记录 - iOS 17通过NSUserDefaults设置UserAgent无效(续)

文章目录 前言开发环境问题描述问题分析1. 准备源码2. 定位源码3. 对比源码4. 分析总结 解决方案补充内容1. UserAgent的组成2. UserAgent的设置优先级 最后 前言 在上篇文章中对该问题做了一些判断和猜测,并给出了解决方案。不过,美中不足的是没有进一…

十四:爬虫-Redis基础

1、背景 随着互联网大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。 2、redis是什么 Redis 全称 Remote Dictio…

C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)

本文主要介绍回调函数的使用,包括函数指针、异步回调编程、主要通过详细的例子来指导在异步编程和事件编程中如何使用回调函数来实现。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:C/C精进之路 &…

【Spring实战】16 Profile

文章目录 1. 定义2. 使用2.1 定义 Profile2.2 激活 Profile 3. 演示3.1 properties文件3.2 打印日志3.3 启动服务&验证3.4 修改 active3.5 重启服务&验证 4. 应用场景4.1 数据库配置4.2 日志配置 5. 代码详细总结 Spring 框架提供了一种强大的机制,允许在不…

图像分割实战-系列教程9:U2NET显著性检测实战1

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 U2NET显著性检测实战1 1、任务概述

第7课 利用FFmpeg将摄像头画面与麦克风数据合成后推送到rtmp服务器

上节课我们已经拿到了摄像头数据和麦克风数据,这节课我们来看一下如何将二者合并起来推送到rtmp服务器。推送音视频合成流到rtmp服务器地址的流程如下: 1.创建输出流 //初始化输出流上下文 avformat_alloc_output_context2(&outFormatCtx, NULL, &…

Java EE Servlet之Cookie 和 Session

文章目录 1. Cookie 和 Session1.1 Cookie1.2 理解会话机制 (Session)1.2.1 核心方法 2. 用户登录2.1 准备工作2.2 登录页面2.3 写一个 Servlet 处理上述登录请求2.4 实现登录后的主页 3. 总结 1. Cookie 和 Session 1.1 Cookie cookie 是 http 请求 header 中的一个属性 浏…

AI 工具探索(二)

我参加了 奇想星球 与 Datawhale 举办的 【AI办公 X 财务】第一期,现在这是第二次打卡,也即自由探索,我选择 Modelscope 的 Agent 探索,并用gpts创作助理对比! 最近想学学小红书的运营方法,选择了 小红书I…

【微服务】1.虚拟机配置

创建虚拟机选经典,其他配置同其他讲解文档 特殊注意 如果要自己设置IP地址,修改/etc/sysconfig/network-scripts/ 编辑ifcfg-ens33需改ip地址 #开机加载网络配置启动网络服务 ONBOOT"yes" #分配ip的协议 none static :不自动分配&#xff0c…

axios的使用及说明

目录 1.说明 2.直接使用 3.封装使用 4.注意 1.说明 官网:Axios 实例 | Axios中文文档 | Axios中文网 Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使…

FL Studio 21最新版本for mac 21.2.2.3740中文解锁版2024最新图文安装教程

FL Studio 21最新版本for mac 21.2.0.3740中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境(IDE)来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

redis容灾的方案设计

背景 今年各个大厂的机房事故频繁,其中关键组件Redis是重灾区,本文就来看下怎么做Redis的多机房容灾 Redis多机房容灾方案 1.首先最最直观的是直接利用Redis内部的主从数据同步来进行灾备,但是由于Redis内部的主从实现对机房间的网络延迟等…

2024 React 后台系统 搭建学习看这一篇就够了(1)

年初,自己想写一篇关于 React 实战后台项目的 课程文章,也算是对自己 2023的前端学习做一个系统性总结,方便后续查阅,也方便自己浏览,还能增加自己的文笔 网上很多平台都不太稳定,所以用了阿里的语雀&…