Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >词向量 Word Vectors#NLP系列课02

词向量 Word Vectors#NLP系列课02

作者头像
mixlab
发布于 2020-02-27 04:50:00
发布于 2020-02-27 04:50:00
45002
代码可运行
举报
运行总次数:2
代码可运行

人工智能Mix+》专栏系列文章

- 人类的语言

人类在开始掌握语言之前,就已经知道利用声音高低强弱来表达感情和自己的观点。当一个群体里有人去世时,群体的其他成员就会用低沉的呜咽声来表达对死者的哀悼和纪念。后来,人类懂得了劳动,还发明了用来统一劳动节奏的号子和相互间交流和传递信息的呼喊……

人类语言具有信息功能社会功能。据估计,人类语言只有大约5000年的短暂历史。语言是人类变得强大的主要原因,而写作是另一件让人类变得强大的事情。语言使得知识能够在空间上传送到世界各地,并在时间上一代代传递的一种媒介。

但是,对比当今互联网的传播速度而言,人类语言显得缓慢(数据>语言)。然而,只需人类语言的少量信息,就可以表达整个视觉场景。这就是自然语言如此迷人的原因(言简意赅、信息量)。

- 我们是如何表达一个词的意思的?

How do we represent the meaning of a word?

  • 用一个词、词组等表示的概念(跨界这个词的概念)
  • 用语言、符号等来表达的想法(?)
  • 表达在作品、艺术等方面的思想(Mixlab这个词的思想)

在计算机科学中,理解meaning最普遍的一种方式是:

signifier (symbol) ⟺ signified (idea or thing)

= denotational semantics (指称语义)

- 指称语义

在计算机科学中,指称语义(英语:Denotational semantics)是通过构造表达其语义的或意义的数学对象来形式化计算机系统的语义的一种方法。

计算机科学对语言研究(包括对自然语言和对人工语言)大致三个向:语法syntax、语义semantics、语用pragmatics

*语法研究语言的形态结构

*语义研究语言与其所指代对象的联系

*语用研究语言和其使用者之间的联系(从使用者角度、按使用者的需求对语料进行差异化)

- KnowYourNyms

KnowYourNyms 一种用于学习语义关系的web网络游戏

http://www.know-your-nyms.com

https://github.com/rossmechanic/know_your_nyms/

在为用户提供有吸引力体验的同时,应用程序可以收集大量可用于改进语义关系分类器的数据。数据还很有广度地告诉我们人们如何察觉词之间的关系,为心理学和语言学研究提供有用的见解。

一个一个问题的询问用户,用户做填空题,最后会把所用用户回答这个问题的答案统计结果呈现出来。

这个系统的架构如下所示:

- WordNet

WordNet, 一个包含同义词(synonym)和上位词(hypernyms,“is a”关系) 的字典。

WordNet的不足之处:

*忽略了细微差别

例如“proficient”被列为“good”的同义词。这只在某些上下文中是正确的

*难以持续更新

例如 wicked, badass, nifty, wizard, genius, ninja, bombest

*主观的,需要人类手工来创造和调整

*无法计算单词相似度

- 在传统的自然语言处理中,我们把词语看作离散的符号

Representing words as discrete symbols

单词可以通过one-hot vectors来表示。one-hot vectors 又称独热编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。

简单来说,只有一个1,其余均为0的稀疏向量,例如:

motel = [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]

hotel = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]

向量维度=词汇量(如500000)

特点是所有向量是正交的,没有关于相似性的概念,并且向量维度很容易过大。

- 现代NLP的第一性原理

第一性原理最早来自于古希腊哲学家亚里士多德,他说:“在每个系统探索中存在第一性原理。第一性原理是基本的命题和假设,不能被省略和删除,也不能被违反。”

Distributional semantics :一个单词的意思是由经常出现在它附近的单词给出的。

  • “You shall know a word by the company it keeps” (J. R. Firth 1957: 11)
  • 现代统计NLP最成功的理念之一
  • “物以类聚,人以群分”

构建方法:

  • 当一个单词w出现在文本中时,它的上下文是出现在其附近的一组单词(在一个固定大小的窗口中)
  • 使用w的许多上下文来构建w的表示

banking这个单词的含义由窗口中的其他单词来共同表达。

- Word2vec

我们为每个单词构建一个 密集 的向量,使其与出现在相似上下文中的单词向量相似。词向量(word vectors)有时被称为词嵌入(word embeddings)或词表示(word representations),它们是分布式表示(distributed representation)。

例如:

banking = [ 0.286 0.792 −0.177 −0.107 0.109 −0.542 0.349 0.271 ]

计算过程如下:

*我们有大量的文本 (corpus means 'body' in Latin. 复数为corpora)

*固定词汇表中的每个单词都由一个向量表示

  • *文本中的每个位置 t,其中有一个中心词 c和上下文(“外部”)单词 o
  • *使用 c 和 o 的 词向量的相似性 来计算给定 c 的 o 的 概率 (反之亦然)
  • *不断调整词向量来最大化这个概率

详情可以了解论文:Word2vec (Mikolov et al. 2013)

- 课后练习:

- 掌握gensim的word2vec

- 相关阅读:

智能时代之前,我们一直在量化世界

指称语义:语言发展的一种方法论

Denotational Semantics: A Methodology for Language Development

https://t.zsxq.com/Y3BmEAQ

机器学习数据预处理之独热编码(One-Hot)

https://imooc.com/article/35900

KnowYourNyms? A Game of Semantic Relationships

https://t.zsxq.com/EiMn276

Word2vec (Mikolov et al. 2013)

https://arxiv.org/pdf/1301.3781.pdf


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无界社区mixlab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
美国队长的盾(二)五角星
前面我们已经把四个同心圆画好了(美国队长的盾(一) 同心圆),就缺“画龙点睛”之笔的五角星了。那么今天我们就来纯手工打造这样一个五角星。
生信交流平台
2020/08/06
1.2K0
美国队长的盾(二)五角星
靠数学“拿了”两次诺贝尔奖,彭罗斯从“铺地砖”帮忙发现2011年化学奖的秘密
晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 诺贝尔奖没有数学奖,但是如果数学足够好的话,可以拿两次诺贝尔奖: 帮别人拿一次,自己再拿一次。 刚刚获得诺贝尔奖的英国数学家罗杰·彭罗斯(Roger Penrose)就是这样。 今年,彭罗斯凭借数学在广义相对论和黑洞研究中的应用,获得了诺贝尔物理学奖。 而在几十年前,彭罗斯的另一项数学发现曾帮助别人获得过诺贝尔奖。 2011年,以色列科学家丹尼尔·舍特曼(Daniel Shechtman)因为发现准晶体获得了当年的诺贝尔理综化学奖。 准晶体于
量子位
2023/03/10
8550
靠数学“拿了”两次诺贝尔奖,彭罗斯从“铺地砖”帮忙发现2011年化学奖的秘密
数学原来这么有趣,66组超炫动图唤醒你的思维!
无论怎样,看完这一组动图,你不仅能够感受到数学美丽的一面,同时也会对我们常见的公式定理有更深刻、直观的理解!
IT阅读排行榜
2019/01/23
1.3K0
数学原来这么有趣,66组超炫动图唤醒你的思维!
Python之turtle模块-正多边形
前面我们用turtle画了正方形,也就是正四边形,虽然我们平时不这么叫它。我们今天来画正多边形。顾名思义就是边数大于等于三条,并且每条边的长度都一样。美国的五角大楼就是正五边形。
生信交流平台
2020/08/06
2K0
Python之turtle模块-正多边形
MFC绘图小实验(2)
1,以正五边形的5个顶点为基础,隔点存储构成五角星。填充模式采用WINDING。五角星边界线为5个像素宽的蓝色实线,内部使用红色填充。 CRect rect; //定义矩形 GetClientRect(&rect); //获得客户区矩形 pDC->SetMapMode(MM_ANISOTROPIC); //设置映射模式 pDC->SetWindowExt(rect.Width(),rect.Height()); //设置窗口 pDC->SetViewportE
Zoctopus
2018/06/04
1.6K0
python与分形0015 - 【教程】五星红旗
不知不觉,今天又周五,513330都快破6了,倒金字塔加仓都加到地下室了,真是服气了。
滚神大人
2021/12/09
8750
python与分形0015 - 【教程】五星红旗
OpenCV-Python学习(13)—— OpenCV 多边形填充与绘制(cv.fillPoly、cv.polylines)
1. 知识点 学习 cv.polylines 函数的使用; 学习 cv.fillPoly 函数的使用。 2. 绘制折线或多边形 cv.polylines 函数说明 2.1 函数使用 cv.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) → img 2.2 参数说明 参数 说明 img 表示要在其上绘制矩形的图像的img对象。 pts 表示一个或多个点集。 isClosed 表示标志,决定所绘制的多边形是否闭合。若为
Rattenking
2022/11/14
4.3K0
OpenCV-Python学习(13)—— OpenCV 多边形填充与绘制(cv.fillPoly、cv.polylines)
网页CAD二次开发实现圆转多边形的详细教程
在线CAD SDK的集成过程中,甲方客户可能有实现圆转多边形功能的需求,作为开发者如何利用WEB CAD SDK展现此功能效果呢?本章节我们重点讲述一下。
梦想云图网页CAD
2024/04/09
1910
网页CAD二次开发实现圆转多边形的详细教程
三角形的内角和等于180°?不对!
导读: “三角形内角和等于180°”,这对于我们来说是再熟悉不过的一个常识,陈省身教授从一个不同的角度去看待这个问题,并将这个问题延伸推广,于1944年,找到了一般曲面上封闭曲线方向改变量总和的公式(高斯—比内—陈公式),把几何学引入了新的天地,被誉为划时代的贡献。
IT阅读排行榜
2018/08/17
1.3K0
Flutter 绘制番外篇 - 圆中取形
对一些有趣的绘制 技能和知识, 我会通过 [番外篇] 的形式加入《Flutter 绘制指南 - 妙笔生花》小册中,一方面保证小册的“与时俱进” 和 “活力”。另一方面,是为了让一些重要的知识有个 好的归宿。
张风捷特烈
2022/03/18
8030
Flutter 绘制番外篇 - 圆中取形
Android关于Path你所知道的和不知道的一切
张风捷特烈
2024/01/26
3000
Android关于Path你所知道的和不知道的一切
OpenGL ES 2.0 (iOS)[03]:熟练图元绘制,玩转二维图形
文章的大前提是,你得有《OpenGL ES 2.0 (iOS): 一步从一个小三角开始》的基础知识。
半纸渊
2018/09/04
1.7K0
OpenGL ES 2.0 (iOS)[03]:熟练图元绘制,玩转二维图形
requireJs的使用,以canvas绘制星空为例
RequireJS是符合AMD规范(Asynchronous module definition异步模块加载)一种js加载方式,目的是为了防止加载js的时候阻塞html页面渲染,其使用非常简单。 首先要去下载一个require.js,网址:http://requirejs.org/docs/download.html 在html文件中引入require.js: <script type="text/javascript" data-main="js/main" src="js/require.js" de
lonelydawn
2018/02/09
1.2K0
requireJs的使用,以canvas绘制星空为例
绘图-UIBezierPath
UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于path的一个OC封装。 所以 UIBezierPath 是基于 Core Graphics 实现的一项绘图技术。
進无尽
2018/09/12
1.4K0
绘图-UIBezierPath
小游戏系列之五环盾牌
本节主要介绍pygame的初级教程,以及如何用pygame去绘制奥运五环及美国队长盾牌。
公众号guangcity
2019/09/20
8840
小游戏系列之五环盾牌
Android关于Path你所知道的和不知道的一切
零、前言 1.canvas本身提供了很多绘制基本图形的方法,普通绘制基本满足 2.但是更高级的绘制canvas便束手无策,但它的一个方法却将图形的绘制连接到了另一个次元 3.下面进入Path的世界,[注]:本文只说Path,关于绘制只要使用Canvas.drawPath(Path,Paint)即可 4.本文将对Path的所有API进行测试。 ---- 一、引:认识Path 例1.绘制网格 在Canvas篇我用Path画过一个网格辅助,在这里分析一下 moveTo相当于抬笔到某点,lineTo
张风捷特烈
2018/12/07
2.6K0
大学课程 | 计算机图形学,基于MFC和二维变换的画图软件
本文描述了二维复合变换的基本方法和思想,根据鼠标位置坐标获取起始点pStart和终止点pEnd的坐标,设计实现每个基本图形的画图方法,根据pStart和pEnd即可确定基本图形的控制点,进而绘制对应图形。规范化齐次坐标以后,图形几何变换可以表示为图形控制点点集合的规范化齐次坐标矩阵与二维变换矩阵相乘的形式,分别设置二维变换矩阵的参数信息,设计实现对应的方法,即可实现图形的二维变换功能。
Justlovesmile
2021/12/14
2.6K0
大学课程 | 计算机图形学,基于MFC和二维变换的画图软件
开源计划之--Android绘图库--LogicCanvas
在html5时,我用JavaScript封装了一个HTML5的canvas库。
张风捷特烈
2018/09/02
1.4K0
开源计划之--Android绘图库--LogicCanvas
手 Q 人脸识别动画实现详解
该文介绍了如何通过自定义View和动画实现圆形进度条的绘制,主要利用了Canvas、Path、Paint等类进行实现。同时介绍了如何实现圆形进度条在Canvas上的动画展示,包括自定义动画、ObjectAnimator、属性动画等。同时,还介绍了如何实现圆形进度条和圆形图片的切换,主要利用了自定义属性动画和ObjectAnimator进行实现。该文还介绍了如何实现圆形进度条的长度调节和点击调节,主要利用了自定义调节器和动画监听器进行实现。最后,该文介绍了如何将圆形进度条应用到圆形图片的展示上,主要利用了自定义圆形图片控件和圆形进度条组件进行实现。
QQ空间开发团队
2017/11/02
4.9K1
手 Q 人脸识别动画实现详解
用SVG实现一个优雅的提示框
Tooltips常被称为提示框(或信息提示框),提示框能够以较强的交互性、自由度为用户提供相应的提示信息。今天我们要聊的不是如何实现强大的交互行为,而是来看看如何以最好的方式来还原他们的视觉效果,并且能适用于不同的场景。
ConardLi
2020/06/10
2.6K0
用SVG实现一个优雅的提示框
相关推荐
美国队长的盾(二)五角星
更多 >
LV.0
人人网前端开发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验