NLP:词义分布的空间维度——从文本符号到词向量表征

自然语言处理的前提是文本表示(Representation),即如何将人类符号化的文本转换成 计算机所能“理解”的表征形式。早期的自然语言表征主要采用离散表示。近年来,随着深度 学习的不断发展,基于神经网络的分布式词向量技术在对海量语料进行算法训练的基础上, 将符号化的句词嵌入到低维的稠密向量空间中,在解析句法与分析语义等方面都显示出强大 的潜力与应用效果。 分布式词向量表征的核心思路是通过大量的上下文语料与算法学习,使得计算机能够自 动构建上下文与目标词之间的映射关系。其主要思想是词与上下文信息可以单独构成一个可 行的语义向量,这种假设具有深刻的语言学理论根源。泽利格·哈里斯(Zellig S. Harris, 1954)提出分布假说(Distributional Hypothesis),认为分布相似的词,其语义也相似,这成 为早期词向量表征的理论渊源之一。伦敦学派奠基人弗斯(John Rupert Firth,1957)继承并 发扬了人类学家布罗尼斯拉夫·马林诺夫斯基(Bronislaw Malinowski)的“情景语境”(Context of Situation)理论,提出语境对词义的重要作用,为词向量的分布式表示与语义计算提供了 思想基础。在分布假说与情景理论的基础上,词向量通过神经网络对上下文,以及上下文和 目标词之间的关系进行语言建模,自动抽取特征,从而表达相对复杂的语义关系并进行语义 计算。

2. 词的表征 作为表达语义的基本单位之一,词是自然语言处理的主要对象。进行词向量运算的前提 是要将人类符号化的词进行数值或向量化表征。目前的词表征方式主要有离散式和分布式两 种。

2.1 离散表示(One-hot Representation)

传统的基于规则的统计方法通常将词用离散的方式表示。这种方法把每个词表示为一个 长向量①,这个向量的维度由词表②大小确定,并且该向量中只有一个维度的值为 1,其余维 度的值都为 0。例如,一个语料库 A 中有三个文本,如下: 文本 1: never trouble trouble until trouble troubles you. 文本 2: trouble never sleeps. 文本 3: trouble is a friend. 那么,该语料库的词表便由[never, trouble, until, you, sleep, is, a, friend]八个单词组成。每 个单词可以分别表示成一个维度为八的向量,根据单词在词表中所处的位置来计算,具体如 下:{“never”: [1 0 0 0 0 0 0 0]}、{“trouble”: [0 1 0 0 0 0 0 0]}、…、{“a”: [0 0 0 0 0 0 0 1 0]}、 {“friend”: [0 0 0 0 0 0 0 0 1]}。可以发现,随着语料库的变大,词表也随之增大,每个词维度 也会不断变大,每个词都将成为被大量 0 所包围的 1。因此,这种稀疏的表达方式又被形象 地称为独热表示。离散表示相互独立地表示每个词,忽略了词与词在句子中的相关性,这与 传统统计语言学中的朴素贝叶斯假设③不谋而合。然而,越来越多的实践表明,离散表达存 在两大缺陷。首先是“语义鸿沟”现象,由于独热表示假定词的意义和语法是互相独立的,这 种独立性显然是不适合词汇语义的比较运算,也不符合基本的语言学常识,因此,整篇文本中容易出现语义断层现象。例如我们知道“端午节”与“粽子”是有联系的——端午节通常应该 吃粽子。但是这两个词对应的离散向量是正交的,其余弦相关度为 0,表明两者在相似度上 没有任何关系;其次是“维度灾难”,随着词表规模的增加(视语料大小,一般会达到十万以 上),词向量的维度也会随之变大,向量中的 0 也会越来越多,这种维度的激增会使得数据 过于稀疏,计算量陡增,并对计算机的硬件和运算能力提出更高的要求。 2.2 分布式表示(Distributed Representation) 为解决离散表示的两大局限性,机器需要通过分布式表示来获得低维度、具有语义表达 能力的词向量(Hinton, 1986; Bengio et al. 2003)。分布式表示一般有两种方法:基于统计学 和基于神经网络(详见后文三)。早期,分布式词向量的获取主要通过统计学算法,包括共 现矩阵、奇异值分解等。近年来,随着深度学习技术的不断成熟,神经网络开始被用于训练 分布式词向量,取代了早期的统计方法。目前分布式词向量通常特指基于神经网络获取的低 维度词向量。这种词向量表示的理论源于哈里斯分布假设(Harris, 1954):上下文相似的词, 其语义也相似。分布式表示通过统计或神经网络的方法构建语言模型并获取词向量,具体方 法为利用词和上下文的关系,通过算法将原本离散式的词向量嵌入到一个低纬度的连续向量 空间中,最终把词表达成一个固定长度④的短向量。因此,这种表示方法也被称为词嵌入 (Word Embedding)。此外,根据分布假设——出现在类似上下文中的单词具有类似的语义, 词嵌入利用上下文与目标词的联合训练,可以获取词语的某种语义表达。例如,通过 Python 程序引入 Word2Vec 包并加载训练好的 60 维词向量模型,获得的词嵌入的形式如下:“never” [1.6839292, 0.14593178, …, 0.5776881]。 In[1]: from gensim.models import Word2Vec # 引入 Word2Vec 包 mode = Word2Vec.load(“word60.model”) # 加载训练好的 60 维词向量模型 mode[“never”] # 获取“never”的词向量 

*词嵌入结果基于 Li 等(2018)的 Word2Vec 预训练词向量 3. 词向量训练与语言模型 目前的词表示很少采用离散表示,一般采用分布式表示。分布式词向量的获取方式可分 为两种:基于统计的方法和基于神经网络的方法。 3.1 基于统计的方法 3.1.1 共现矩阵

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

概率论:方差、标准差、协方差、皮尔逊相关系数、线性相关

方差和标准差: 一个随机变量,的值的变化程度可以用方差计算: ;其中 是期望。 另外一种等价表达式: 其中为均值,N为总体例数 我们举个例子: 服从均一分布,取值为0.1,0…

SpringSecurity多源认证之全部交给spring容器

文章目录 一. 前言二. 配置流程2.1 SecurityConfig.class2.2 JwtAuthenticationTokenFilter2.3 AuthenticationManagerProcessingFilter 疑问 一. 前言 相关文章: 认证/支付/优惠劵策略模式-security多源认证 这篇文章没有将自定义的认证管理器注入容器. spring-security2.6.…

CSS基础学习--7 fonts字体

一、CSS 字体 CSS字体属性定义字体系列,加粗,大小,文字样式。 二、字体系列 font-family 属性设置文本的字体系列 font-family 属性应该设置几个字体名称作为一种"后备"机制,如果浏览器不支持第一种字体,…

C++入门前必看,超详细

目录 前言 一.C的关键字 二.命名空间 2.1命名空间定义 2.2命名空间的使用 三.C的输入及输出 四.缺省参数 4.1概念 4.2缺省参数分类 4.3缺省参数的注意点 五.引用 5.1 概念 5.2引用的特性 六.内联函数 6.1概念 6.2内联函数的特性 七.auto 7.1auto概念 7.2auto的…

Unity入门5——Camera

一、参数面板 二、参数介绍 1. Clear Flags:清除背景 Skybox:天空盒背景(通常用来做 3D 游戏) Solid Color:使用 Background 颜色填充(通常设置为全黑或全白,2D 使用) Depth Only&am…

APP测试面试题快问快答(四)

16.App测试的实时日志如何获取? 考察点:是否有移动app测试的日志获取相关经验 一般可以通过以下方式获取: 1.可以使用adb命令:adb logcat | findstr "com.sankuai.meituan" >d:\test.txt 2.用ddms抓取&#xff0…

Postgresql源码(106)Generic Plan与Custom Plan的区别(以分区表为例)

相关: 《Postgresql源码(105)分区表剪枝代码分析》 《Postgresql源码(106)Generic Plan与Custom Plan的区别(以分区表为例)》 实例 CREATE TABLE measurement (city_id int not null,l…

FFmpeg音视频处理工具介绍及应用

1 FFmpeg介绍 FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。Ffmpeg(FastForward Mpeg)是一款遵循GPL的开源软件,在音视频处理方面表现…

UDS关于0x37服务退出传输学习笔记

1.服务说明 客户端使用此服务来终止客户端和服务器之间的数据传输(上传或下载)。 2.请求消息 2.1请求消息子功能参数$Level(LEV_)定义 此服务不使用子函数参数。 2.2请求消息数据参数定义 transferRequestParameterRecord&a…

《微服务实战》 第二十九章 分布式事务框架seata AT模式

前言 本章节介绍微服务分布式项目中,使用的事务框架seata。 官网:http://seata.io/zh-cn/ springcloud-nacos-seata:https://github.com/seata/seata-samples/tree/master/springcloud-nacos-seata 1、概念 Seata 是一款开源的分布式事务解…

使用docker快速搭建redis哨兵模式

说明 本文主要参考: https://www.cnblogs.com/coderaniu/p/15352323.html https://developer.aliyun.com/article/892805 但是这两篇博客均缺失部分关键性细节,所以重新撰文。读者可以结合本文和上述文章一起阅读。 安装步骤 安装docker和docker-co…

小作文--流程图(练习1)

【【雅思写作】带你打破小作文‘流程图’的传说】 https://www.bilibili.com/video/BV1QP411Q7Gh/?share_sourcecopy_web&vd_source78768d4ae65c35ff26534bbaa8afc267 雅思小作文-流程图, 看这一篇就够了! - 冯凯文的文章 - 知乎 https://zhuanlan.zhihu.com/p/35868880 …

算法模板(3):搜索(3):图论提高

图论提高 最小生成树 (1)朴素版prim算法( O ( n 2 ) O(n ^ 2) O(n2)) 适用范围:稠密图易错:注意有向图还是无向图;注意有没有重边和负权边。从一个集合向外一个一个扩展,最开始只…

记录基于Vue.js的移动端Tree树形组件

目录 一、Liquor Tree 入门 : Development Component Options 组件选项 Structure 结构 二、vue-treeselect Introduction 介绍 Getting Started 入门 Vue 树形选择器( Vue tree select )组件在搭建 Vue 的 app 中特别常用&#xff0…

【Java|golang】2611. 老鼠和奶酪

有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。 下标为 i 处的奶酪被吃掉的得分为: 如果第一只老鼠吃掉,则得分为 reward1[i] 。 如果第二只老鼠吃掉,则得分为 reward2[i] 。 给你一个正整数数组 reward1…

【TypeScript】枚举类型和泛型的详细介绍

目录 TypeScript枚举类型 TypeScript泛型介绍 🎲泛型的基本使用 🎲泛型接口的使用 🎲泛型类的使用 🎲泛型的类型约束 枚举类型 枚举类型是为数不多的TypeScript特有的特性之一, JavaScript是没有的: 枚举其实就…

【FPGA零基础学习之旅#8】阻塞赋值与非阻塞赋值讲解

🎉欢迎来到FPGA专栏~阻塞赋值与非阻塞赋值 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家…

解决elementUI弹出框关闭后再打开el-select下拉框无法选中的问题

文章目录 一、问题描述:二、问题解决 一、问题描述: 使用的前端UI框架为elementUI。 el-select组件在一个弹框中,打开该弹框,el-select可以正常选中,但是保存弹框中的表单信息关闭弹框后,再打开弹框&…

Spark大数据处理讲课笔记4.1 Spark SQL概述、数据帧与数据集

零、本讲学习目标 了解Spark SQL的基本概念掌握DataFrame的基本概念掌握Dataset的基本概念会基于DataFrame执行SQL查询 在很多情况下,开发工程师并不了解Scala语言,也不了解Spark常用API,但又非常想要使用Spark框架提供的强大的数据分析能力…

物联网Lora模块从入门到精通(二) LED灯泡闪烁与呼吸灯

目录 一、前言 二、实践与代码 1.电亮LED1 2.熄灭LED1 3.翻转LED电平 4.LED1与LED2交替闪烁 5.LED1呼吸灯 三、程序代码 一、前言 本篇内容属于新大陆物联网Lora模块开发,使用给定的Lora基础例程,并在其基础上开发完成,并可为其他版本的Lo…