词表征 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,存在较 ...
随机推荐
- java com.db4o 类
<!--juan_zhai--> <dependency> <groupId>com.db4o</groupId> <artifactId> ...
- JS-插件编写
# 参数处理 JS: function plugin_mian_func(options){ var defaluts = { opt1: 'opt1', opt2: 'opt2', opt3: { ...
- (转)Git 提交的正确姿势:Commit message 编写指南
Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交. $ git commit -m "hello world" 上面代码的-m参数,就是用来 ...
- 03 java语言基础逻辑运算符
03.01_Java语言基础(逻辑运算符的基本用法) A:逻辑运算符有哪些 &,|,^,! &&,|| B:案例演示 逻辑运算符的基本用法 注意事项: a:逻辑运算符一般用于连 ...
- ssh远程连接控制 linux 口令、密钥连接
sshd服务提供两种安全验证的方法: 基于口令的安全验证:经过验证帐号与密码即可登陆到远程主机. 基于密钥的安全验证:需要在本地生成“密钥对”后将公钥传送至服务端,进行公共密钥的比较(相对安全). 首 ...
- flask获取参数
<!DOCTYPE html> body, html { width: 100%; height: 100%; } , ::after, ::before { -webkit-box-si ...
- wrong mechandise category
Issue: cannot open masterdata for this two UPCs since the error below is displayed, but I checked an ...
- js函数方法
/** * call()和apply * 这两个方法都是函数对象的方法,需要通过函数对象来调用 * 当对函数调用call()和apply()都会调用函数执行 * 在调用call()和apply()可以 ...
- 从URL输入到页面展现,过程中发生了什么?
从在地址栏中输入了URL,到浏览器展现出页面整个过程中,大概经历了如下过程: 在浏览器地址中输入了URL并回车 域名解析 服务器处理请求 浏览器处理 网页的绘制 一.在浏览器地址中输入URL 首先解释 ...
- 使用Maven进行依赖管理和项目构建
什么是Maven 1 依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包. 2 项目的构建:内置很多的插件与 ...