词表征 1:WordNet、0-1表征、共现矩阵、SVD
原文地址:https://www.jianshu.com/p/c1e4f42b78d7
一、基于知识的表征

参见图1.1,WordNet中包含同义词集(synonym sets)和上位词(hypernyms, is a关系)。
其存在的问题为:
- 作为资源来说是好的,但是它失去了词间的细微差别;
比如说"good"和"full"同义是需要在一定的上下文中才能成立的。 - 易错过词的新义,基本不可能时时保持up-to-date;
- 是人为分的,所以是主观的结果;
- 需要花费很多的人力去创建和调整;
- 很难计算出准确的词间相似度。
二、基于数据库的表征
(一)词本身

参见图2.1,0-1表征中,向量维度为数据库中总词汇数,每个词向量在其对应词处取值为1,其余处为0。
其存在的问题为:
- 因为不同词间相互正交,所以很难计算词间相似度。
(二)结合上下文
基本思想:相似的词有相似的上下文。
1、共现矩阵
1)基于整个文档
词-文档共现矩阵\(\in R^{|V|*M}\),其中,\(|V|\)为词汇量大小,\(M\)为文档数量。
常给出文档的主题信息。
2)基于上下文窗口
词-词共现矩阵\(\in R^{|V|*|V|}\),其中,\(|V|\)为词汇量大小。
窗口大小常取5~10,通常对称、不分左右。
常捕获语法、语义信息。

图2.2中红框部分为基于窗口大小为1、不区分左右形成的"love"、"enjoy"对应的高维稀疏词向量。
其存在的问题为:
- 共现矩阵的大小随着词汇量的增多而变大;
- 维度高;
- 数据稀疏带来的鲁棒性差。
2、低维稠密词向量
1)基于SVD进行降维

通过对共现矩阵进行SVD,得\(X=USV^T\)。选择\(U\)的前\(k\)列得到\(k\)维词向量。
通过计算\(\frac{\sum_{i=1}^{k}s_i}{\sum_{j=1}^{|V|}s_j}\)得到前\(k\)维捕获到的信息比例。
其优势为:
- 有效地利用了统计信息。
其存在的问题为:
- 难以加入新词,每次来个新词,都得更新共现矩阵,然后重新SVD;
- 由于大多数词不共现,导致矩阵十分稀疏;
- 矩阵维度通常很高(\(\approx 10^6*10^6\));
- 计算代价高,对于\(n*m\)的矩阵为\(O(nm^2)\);
- 需要对共现矩阵进行处理来面对词频上的极端不平衡现象。
其常用的解决办法为:
- 忽视"the"、"he"、"has"等功能词或者限制其次数不超过某个值(常100);
- 基于文档中词间距离对共现矩阵中的count进行加权处理,常窗口中离中心词越近的词分配给其的权重越大;
- 使用Pearson相关系数(\(C(X,Y)=\frac{cov(X,Y)}{\sigma(X)*\sigma(Y)}\))来代替原本的count,负数置0。
词表征 1:WordNet、0-1表征、共现矩阵、SVD的更多相关文章
- 词向量:part 1 WordNet、SoW、BoW、TF-IDF、Hash Trick、共现矩阵、SVD
1.基于知识的表征 如WordNet(图1-1),包含同义词集(synonym sets)和上位词(hypernyms,is a关系). 存在的问题: 作为资源来说是好的,但是它失去了词间的细微差别, ...
- (转) 基于MapReduce的ItemBase推荐算法的共现矩阵实现(一)
转自:http://zengzhaozheng.blog.51cto.com/8219051/1557054 一.概述 这2个月为公司数据挖掘系统做一些根据用户标签情况对用户的相似度进行评估,其中涉及 ...
- 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换
自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...
- Python基于共现提取《釜山行》人物关系
Python基于共现提取<釜山行>人物关系 一.课程介绍 1. 内容简介 <釜山行>是一部丧尸灾难片,其人物少.关系简单,非常适合我们学习文本处理.这个项目将介绍共现在关系中的 ...
- #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件
试题描述 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件. 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件. "改变 ...
- 数码管显示“0~F”的共阳共阴数码管编码表
嵌入式设备中数码管显示“0~F”的方式是:定义了一个数组,里面含有16个元素,分别代表0~F,这样可以方便以后的调用.共阳极数码管编码表:unsigned char table[]={0xc0,0xf ...
- CDH5.10.0 离线安装(共3节点) 转
1.安装方式 CDH的离线部署安装,即Parcel包(推荐) 2.角色规划 三个节点对应的角色: 3.基本环境配置(在每个节点上都要配置) (1)关闭防火墙 #/etc/init.d/iptables ...
- 计算区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9) 共出现了多少次?
#include<iostream> using namespace std; int main() { long long start, end , i, check, b, c, cn ...
- R语言多重共现性的检测
1.kappa值 2. library(car)vif(lm.sol) 得到各个系数的方差膨胀因子,当0<VIF<10的时候,不存在多重共线性,当10<=VIF<100,存在较 ...
随机推荐
- 55、saleforce 学习笔记二
String goodsName = 'abcd1123汉字显示';//测试文本 System.debug('简化后的字符串名称为:'+goodsName.abbreviate(5)); //返回简化 ...
- Windows操作系统架构
用户态 用户态有四类组件,这四类组件都是以进程形式存在的,也就是说,它们都有自己的进程地址空间(其实就是一套页表). 1. System Support Processes 这些是固化的进程,也就是说 ...
- 如何用QTP录制鼠标右键点击事件
QTP录制鼠标右键单击事件要通过模拟键盘操作来实现 Step 1,修改ReplayType为2,一般情况默认设置是1的.(1 – 使用浏览器事件运行鼠标操作. 2 – 使用鼠标运行鼠标操作)Setti ...
- 巧妙的使用jmeter来发送json格式数据
1. header-manager 修改content-type值. 如果不修改该值, 则默认会是urlencode的数据格式(例如a=5&b=6). 修改为json后,会告诉服务器,发送的数 ...
- Cocos2d-x之Layer
| 版权声明:本文为博主原创文章,未经博主允许不得转载. Layer是处理玩家事件响应的Node子类.与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸,加速度 ...
- 获取图片地址url的后缀名
getNameFromLink(url){ if(url.indexOf('.cn/') !== -1){ return (url.split('.')[url.split('.') ...
- 深入Linux内核架构 - 内核之中数据结构之间的关系图 & 设备驱动程序(转)
内核之中数据结构之间的关系图 设备驱动程序
- Tomcat发布项目的几种方式
如何在浏览器访问一个xml文件 拷贝这个文件到webapps/ROOT底下, 在浏览器里面访问 直接把tomcat/webapps/ROOT目录下 浏览器访问http://localhost:8080 ...
- java序列化对象为什么要定义serialversionUID值?
SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容.如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassExcep ...
- element 的时间快捷键
1. <div> <el-date-picker v-model="value4" type="month" :picker-options= ...