Co-Occurrence Matrix——共现矩阵的计算方法

5 篇文章 1 订阅
订阅专栏

Co-Occurrence Matrix的介绍

Co-Occurrence Matrix具有固定上下文窗口的共现矩阵 (Co-Occurrence Matrix with a fixed context window)。

遵循的基本原理是:类似的词往往出现在一起,并且会有类似的上下文,例如,苹果是一种水果,芒果是一种水果。(Similar words tend to occur together and will have a similar context for example — Apple is a fruit. Mango is a fruit.)因此,苹果和芒果往往有一个类似的背景,即水果。(Apple and mango tend to have a similar context i.e fruit.)

  • 共现(Co-occurrence)——对于给定的语料库,一对单词(如 w 1 w1 w1 w 2 w2 w2)的共现是指它们在上、下文窗口中同时出现的次数。

For a given corpus, the co-occurrence of a pair of words say w1 and w2 is the number of times they have appeared together in a Context Window.

  • 上下文窗口(Context Window)——指的是某个单词w的上下文范围的大小,也就是前后多少个单词以内的才算是上下文?一般,上、下文窗口由数字和方向指定。

Context window is specified by a number and the direction.
\quad
比如一个Context Window Size = 2的示意图如下:
在这里插入图片描述

Co-Occurrence Matrix的生成

如何生成Co-Occurrence矩阵(How to form the Co-occurrence matrix)?

1. 由语料库中所有不重复单词构成矩阵A以存储单词的共现次数。(The matrix A stores co-occurrences of words.)

2. 人为指定Context Window大小,计算每个单词在指定大小的上下文窗口中与它周围单词同时出现的次数。(In this method, we count the number of times each word appears inside a window of a particular size around the word of interest.)

3. 依次计算语料库中各单词对的共现次数。(Calculate this count for all the words in the corpus.)

Co-Occurrence Matrix的范例

范例一:

让我们通过一个例子具体示范Co-Occurrence Matrix的生成过程:

  1. 假设我们的语料库包含以下三句话(Let our corpus contain the following three sentences:):
I enjoy flying.
I like NLP.
I like deep learning.
  1. 构造由语料库中所有不重复单词生成的单词Dictionary(From the above corpus, the list of unique words present are as follows:)
Dictionary: [ 'I', 'like', 'enjoy', 'deep', 'learning', 'NLP', 'flying', '.' ]
  1. 假设上下文窗口Context Window的大小等于1,这意味着每个单词的上下文单词都是由左一个单词,右一个单词构成。(Let window size =1,This means that context words for each and every word are 1 word to the left and one to the right.)
  2. 依次计算由语料库中所有不重复单词构成的矩阵A中各单词与其左(右)一个单词在上下文窗口中同时出现的次数。
I = enjoy(1 time), like(2 times)  # I和enjoy共现1次,I和like共现2次
enjoy = I (1 time), flying(2 times)
flying = enjoy(1 time)
like = I(2 times), NLP(1 time), deep(1 time)
NLP = like(1 time)
deep = like(1 time), learning(1 time)
learning = deep(1 time)

共现次数的计算过程如下图所示:
在这里插入图片描述

  1. 最终生成的co-occurrence matrix如下所示:
    在这里插入图片描述

上图摘自《 Part 7: Step by Step Guide to Master NLP – Word Embedding in Detail》,不过原图在计算"I"与"."的共现次数时存在错误,此处已修改更正。

范例二:

假设我们有如下的语料库:

He is not lazy. 
He is intelligent. 
He is smart.

我们假设Context Window=2,那么我们就可以得到如下的co-occurrence matrix:
在这里插入图片描述

备注:此处不考虑标点符号"."
\quad
上图红框(Red cell)表示“He”和“is”上下文窗口等于2时的共现次数,这里我们观察到这个数字是4。为了理解和可视化计数,具体共现情况如下图:在这里插入图片描述

共现次数的计算过程如下图所示:

在这里插入图片描述

Co-Occurrence Matrix存在的问题及解决方法

Co-Occurrence Matrix存在的问题:

  1. 共现矩阵增加了字典或词汇的大小(Increase in size with dictionary or vocabulary.)
  2. 对于一个庞大的语料库,这个共现矩阵可能变得非常复杂(高维),后续分类模型面临稀疏性问题,模型的健壮性较差(For a huge corpus, this co-occurrence matrix could become really complex (high-dimension) and subsequent classification models face the issue of sparsity. Models are less robust.)

Co-Occurrence Matrix的解决方法:

降维——我们只将“大部分”重要信息存储在固定的、少量的维度中,即:密集向量而不是稀疏向量。尺寸通常在25–1000维左右。(We only store “most” of the important information in a fixed, small number of dimensions that is a dense vector instead of a sparse vector.The dimension size is usually around 25 – 1000.)

奇异值分解(SVD)主成分分析(PCA)是两种特征值方法,主要用于将高维数据集降维,同时保留重要信息(Singular value decomposition(SVD) and principal component analysis(PCA) are two eigenvalue methods used to reduce a high-dimensional dataset into fewer dimensions while retaining important information.)

参考链接: Part 7: Step by Step Guide to Master NLP – Word Embedding in Detail

共现矩阵的PCA分解:
\quad
请记住,这个具有固定上下文窗口的共现矩阵不是通常使用的词向量表示。相反,这个共现矩阵使用 PCA、SVD 等技术分解为因子,这些因子的组合形成词向量表示。
\quad
举例而言,如果你对一个大小为 N × N N×N N×N 的共现矩阵 K K K执行 P C A PCA PCA分解,你将获得 V V V主成分。你可以从这 V V V主成分中选择 k k k 个分量,因此,组成新矩阵的形式为 N × k N×k N×k
\quad
此时,一个单词,将在 k k k 维中表示(不用在 N N N 维中表示),但仍能捕获几乎相同的语义。通常, k k k 的数量级为几百。
\quad
因此, P C A 分 解 PCA分解 PCA的作用就是将一个Co-Occurrence 矩阵 K K K分解为三个矩阵, U U U S S S V V V,其中 U U U V V V都是正交矩阵。重要的是, U U U S S S 的点积表示单词向量 V V V表示单词上下文
在这里插入图片描述

共现矩阵的优点

  • 保留了单词之间的语义关系。即男人和女人往往比男人和苹果更亲近。
  • 以 SVD 为核心,产生比现有方法更准确的词向量表示。
  • 使用因式分解,这是一个定义明确的问题,可以有效地解决。
  • 必须计算一次,并且一旦计算就可以随时使用。从这个意义上说,它比其他人更快。

共生矩阵的缺点

  • 它需要巨大的内存来存储共现矩阵。

但是,这个问题可以通过在系统之外分解矩阵来规避,例如在 Hadoop 集群等中,并且可以保存。

Co-Occurrence Matrix的优缺点

Co-Occurrence Matrix的优点:

1. 它保留了单词之间的语义关系。(It preserves the semantic relationship between words.)

例如,男人和女人往往比男人和苹果更加亲密。

2.它以奇异值分解(SVD)为核心,是一种比现有方法更精确的词向量表示法。( It uses Singular Value Decomposition (SVD) at its core, which produces more accurate word vector representations than existing methods.)

3.它使用因子分解,这是一个可以被更好定义的问题,而且可以被有效地解决。(It uses factorization which is a well-defined problem and can be efficiently solved.)

4.共现矩阵只需计算一次,后续可以重复使用。因此,它比其他的词向量表示法更快。( If we compute this matrix once, then it can be used anytime wherever required. So, In this sense, it is faster than others.)

Co-Occurrence Matrix的缺点:

存储共现矩阵,需要消耗大量内存。 但是,为了解决这个问题,我们可以将矩阵分解出系统(例如在Hadoop集群中)来避免。

SVD方法存在的问题

SVD(Singular Value Decomposition)奇异值分解是机器学习中最重要的矩阵分解方法,它 能够将一个任意形状的矩阵分解成一个正交矩阵和一个对角矩阵以及另一个正交矩阵的乘积。

在这里插入图片描述
参考链接: Co-occurrence matrix & Singular Value Decomposition (SVD)

关于SVD详细的分解、计算后续会进一步补充。

1. 矩阵的维度经常变化(新词添加非常频繁,语料库大小也会经常变化)。(The dimensions of the matrix change very often (new words are added very frequently and corpus changes in size).)
2. 矩阵是非常稀疏的,因为大多数单词不会出现。(The matrix is extremely sparse since most words do not cooccur.)
3. 矩阵通常是高维的(106*106)。(The matrix is very high dimensional in general ( 106 *106 ))
4. 执行SVD的训练成本是正常成本的平方倍。(Quadratic cost to train (i.e. to perform SVD))
5. 需要在X上加入一些hacks来解释词频的严重不平衡。(Requires the incorporation of some hacks on X to account for the drastic imbalance in word frequency)

您可以在这里找到共现矩阵和SVD的实现。

自然语言处理共现矩阵应用】共现矩阵用于表示文本中词语之间的共现关系
源代码杀手的博客
03-17 288
对于每一对 (word, co_word),我们在共现矩阵字典 co_occurrence_matrix 中增加它们的共现计数,通过 co_occurrence_matrix[(word, co_word)] = co_occurrence_matrix.get((word, co_word), 0) + 1 实现。window_size 参数表示在一个窗口内的词语将会被认为是共现的,默认为2,意味着在一个词的左右各两个位置内的词都被认为是共现的。打印了构建出的词汇表和共现矩阵
MapReduce算法设计-计算单词共现矩阵
nianyuweiwei的专栏
01-10 3649
利用MapReduce计算单词共现矩阵
NLP - 共现矩阵、Glove、评估词向量、词义
stevence112的博客
02-28 1021
两种词向量表示方法:共现矩阵,然后使用线性代数方法(SVD)(问题:词之间没有意思层面的联系,只是相似性;过分重视大计数)随机初始,然后使用迭代神经网络更新算法(梯度下降法 负采样)(问题:语料库很大,分母太难计算;没有有效利用数据)Glove:将两种表示方法结合起来 => 在神经网络中使用计数矩阵|||V。
Python关键词共现矩阵【论文】
最新发布
好好读书
04-07 1232
Python关键词共现矩阵【论文】 Python是一种高级、解释性、面向对象的编程语言。它具有简洁的语法和易于阅读的代码风格,使得它成为初学者和专业开发人员的首选语言之一。Python具有广泛的应用领域,包括Web开发、数据分析、人工智能、科学计算、网络编程等。它拥有强大的第三方库和工具生态系统,如NumPy、Pandas、Matplotlib和TensorFlow,使得开发人员能够快速构建复杂的应用程序。Python还是一种跨平台的语言,可以在多个操作系统上运行,如Windows、Linux和MacOS。
一篇比较明白的共现矩阵解读
qq_43407595的博客
01-16 1万+
最近学习NLP,发现网站上没有比较好的共现矩阵的讲解与实现,因此写了一篇稍微详细的博客,供想学习这块知识但没有资料的小伙伴学习。
说说GloVe
BIT`S WORLD
07-11 2403
1. 说说GloVe 正如GloVe论文的标题而言,**GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。**我们通过对向量的运算,比如欧几里得距离或者cosine
词向量发展史-共现矩阵-SVD-NNLM-Word2Vec-Glove-ELMo
m0_37565948的博客
12-13 1万+
话不多说,直接上干货。 首先介绍相关概念: 词嵌入:把词映射为实数域上向量的技术也叫词嵌入(word embedding)。 词向量的分类表示: 一、共现矩阵        通过统计一个事先指定大小的窗口内的word共现次数,以word周边的共现词的次数做为当前word的vector。具体来说,我们通过从大量的语料文本中构建一个共现矩阵来定义word representation。 ...
共现矩阵
热门推荐
Jiashilin
08-02 2万+
共现矩阵 主要用于发现主题,解决词向量相近关系的表示; 将共现矩阵行(列)作为词向量 例如:语料库如下: • I like deep learning. • I like NLP. • I enjoy flying. 则共现矩阵表示如下:(使用对称的窗函数(左右window length都为1) ) 例如:“I like”出现在第1,2句话中,一共出现2次,所以=2。 对称的...
「Python数据分析」 社交网络:共现/合作网络(无向有权图) 生成邻接矩阵共现矩阵
Parzival_的博客
07-19 1万+
使用从数据库中导出的论文、专利数据,做作者/专利权人合作网络,实际上也就是共现网络。 使用的数据形式示例: 其中F列是作者信息,其他列包含其他信息。 合作网络构建 生成合作网络代码主函数: if __name__ =='__main__' : co_list = [ ["AA | BB | CC | DD",2019], ["EE | BB | FF ",2018], ["AA | GG | FF | HH | KK",2019],
Scene Classification by Feature Co-occurrence Matrix
02-06
Scene Classification by Feature Co-occurrence Matrix
3D image retrieval based on differential geometry and co-occurrence matrix
02-10
3D image retrieval based on differential geometry and co-occurrence matrix
基本共现:计算共现矩阵-matlab开发
05-31
一个基本的共现函数,主要供学生使用
FeatureExtraction1.rar_co-occurrence_images
07-15
FEature extraction binary images and gray images.
A study on JPEG steganalytic features: co-occurrence matrix vs. markov transition probabilitymatrix
02-11
A study on JPEG steganalytic features: co-occurrence matrix vs. markov transition probabilitymatrix
基于CO-occurrence相似度的聚类集成方法 (2011年)
05-13
利用co-occurrence相似度在计算某个初始聚类结果中数据对象之间的相似度时,充分考虑了其他初始聚类结果和该初始聚类结果之间的相互影响和联系。实验表明,基于co-occurrence相似度的聚类集成(CSCE)方法能有效识别...
(三)语言模型和共现矩阵
Haward
05-25 1万+
1、语言模型 目的:克服one-hot、tf-idf方法中向量丢失句子中单词的位置关系信息 1)2-gram 假设语料库如下: John likes to watch movies. Mary likes too.John also likes to watch football games. 2-gram建立索引如下:(把每个句子中相邻的2个单词用一个编码表示,不再是以前的一个单词一个...
灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM)
weixin_43415436的博客
05-29 8338
1、概念: (下面这些概念我也不懂,看着就头疼,自行了解,不过应该支持原创!) 1、灰度共生矩阵(GLDM)的统计方法是20世纪70年代初由R.Haralick等人提出的,它是在假定图像中各像素间的空间分布关系包含了图像纹理信息的前提下,提出的具有广泛性的纹理分析方法。 2、灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM),又叫做灰度共现矩阵; 3、个人理解...
灰度共生矩阵(gray-level co-occurrence matrix,GLCM)
zyd196504的博客
03-11 3745
一、简介 GLCM通过衡量具有某种空间关系(角度、位移距离)的两个特定像素值关系的像素出现的频率,来进行纹理分析,后续量化是通过基于GLCM(它就是一个矩阵)的特征完成。为什么叫co-occurrence,就是因为是两个像素点之间的关系。 二、介绍 由上图,在输出GLCM中,元素(1,1)包含值1,因为在输入图像中只有一个实例,其中两个水平相邻的像素分别具有值1和1。 glcm(1,2)包含值2...
共现矩阵之一 gensim实现方法
weixin_42272768的博客
06-16 2526
所谓的共现矩阵,就是词表示矩阵。不过目前有2种不同的共现矩阵。一种是词在文章中的出现次数。比如下面两篇“文章”: 1)我爱北京天安门 2)我爱吃北京烤鸭 北京就在两篇文章中各出现一次。而天安门只在第一篇文章中出现,第二篇文章中没有出现。烤鸭则相反。 gensim实现了统计词在文章的出现次数。后面的例子会说明。 还要一种是统计词与词之间相互关系的。比如,北京和天安门是挨着的,北京和烤鸭也挨着。Glove算法就利用了这种词的统计方法来评估词与词之间的关联。这也是一种共现矩阵。不过gensim中没有实现。下一篇我
excel关键词共现矩阵
07-30
在使用Excel进行关键词共现矩阵的计算时,可以按照以下步骤进行操作: 1. 准备关键词数据:将关键词以Excel文件的形式保存,文件名必须是"keywords"。确保关键词在Excel中的正确格式。 2. 转换共现矩阵:使用COOC功能将关键词转换为共现矩阵和频次矩阵。将共现矩阵和频次矩阵转换为CSV文档格式保存。注意,在Excel中打开中文可能会出现乱码问题,建议使用WPS打开以避免此问题。 3. 删除空白行或列:打开一个空白的Excel文档,选择"数据",然后选择"从文本",选择之前保存的CSV文档,另存为Excel文档。这一步的目的是删除文档中的空白行或列。 4. 保存修正后的矩阵:再次选择"另存为",将文档保存为CSV文档,并使用逗号作为分隔符。这一步的目的是得到修正后的共现矩阵和频次矩阵。 以上是使用Excel进行关键词共现矩阵计算的步骤。希望对您有帮助。[1]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交

人工智能领域优质创作者

博客专家认证

199
原创
2212
点赞
1万+
收藏
4万+
粉丝
关注
私信
写文章

热门文章

  • groupby函数详解 129708
  • python 数据、曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波) 107181
  • 史上最全Markdown公式、符号总结!!! 77201
  • PyTorch学习笔记——Tensor张量的数据类型的转化、Tensor常见的数据类型、快速创建Tensor 47722
  • Python将str转为int型或float型 43520

分类专栏

  • 知识图谱 付费 11篇
  • NLP自然语言处理——学习专栏 付费 5篇
  • 数据分析和挖掘CDA备考系列专栏 付费 5篇
  • Python基础 16篇
  • 其他——学习笔记 4篇
  • 数据化运营 3篇
  • Linux系统 16篇
  • 面向对象 3篇
  • Numpy 8篇
  • mysql 4篇
  • CDA数据分析 1篇
  • Django 5篇
  • Keras 1篇
  • Mac系统Python环境配置 22篇
  • NLP 5篇
  • KBQA_多轮对话——模型源码解析 2篇
  • 系统配置 4篇
  • 算法原理 1篇
  • 机器视觉 9篇
  • zip文件 2篇
  • Pytorch 8篇
  • 神经网络 4篇
  • 目标检测 6篇
  • 精品PPT模板旺铺==“风吟尹夏的小店”==链接
  • 可视化分析 3篇
  • sklearn 1篇
  • 金融风控 1篇
  • OpenCV 2篇
  • 图像标注 2篇
  • matplotlib 1篇
  • 特征工程 1篇
  • 数据分析-pandas 36篇
  • Jupyter Notebook 14篇
  • GitHub 3篇
  • 机器学习 9篇
  • 概率统计 3篇

最新评论

  • Faster RCNN原理篇(二)——RoIPooling和RoIAlign的学习和理解

    sunshine1324: ROI pooling应该是fast RCNN中提出来的吧

  • Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)

    Yang_03: 牛的大佬!

  • Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)

    Yang_03: https://github.com/django-extensions/django-extensions/issues/92 根据这个改动可以

  • Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)

    MickeyCV: 用mmdetection这个工具包,一大把fasterrcnn预训练模型,参考我的帖子一步步配,为了解决这个问题我自己当起了博主表情包

  • Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)

    Yang_03: 请问后面有找到别的可下载的链接吗?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 计算一个list中各个值的均值的方法
  • re正则[,;\s,]+一次性替换所有的空格、制表符、换行符、逗号等为指定的标点符号
  • 如何将list中元素有复合嵌套分隔符的展平
2024年9篇
2023年5篇
2022年48篇
2021年43篇
2020年55篇
2019年39篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yale曼陀罗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司营口关键词排名哪家好景德镇品牌网站设计多少钱潜江营销型网站建设多少钱阳泉seo网站推广甘南seo排名报价芜湖网站优化软件永湖外贸网站建设多少钱铜川关键词排名包年推广报价平湖百姓网标王哪家好石家庄seo网站推广哪家好自贡营销型网站建设哪家好连云港企业网站建设哪家好贵阳至尊标王哪家好拉萨百姓网标王报价抚州网站排名优化推荐宁德建网站公司新乡百度网站优化排名多少钱塘坑百度网站优化报价朔州SEO按天收费价格武威百姓网标王公司常德关键词按天计费哪家好柳州网站优化软件多少钱四平关键词排名惠州网站建设设计哪家好那曲seo网站推广报价盘锦企业网站建设多少钱金昌关键词排名推荐昆明百度标王周口关键词排名包年推广推荐宜昌SEO按效果付费多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化