当前位置:  开发笔记 > 编程语言 > 正文

Python - 计算共生矩阵

如何解决《Python-计算共生矩阵》经验,为你挑选了1个好方法。

我正在研究NLP任务,我需要计算文档上的共现矩阵.基本配方如下:

这里我有一个形状矩阵(n, length),每行代表一个由length单词组成的句子.所以n总共有相同长度的句子.然后使用定义的上下文大小,例如,window_size = 5我想计算共生矩阵D,其中cth行和wth列中的条目是#(w,c),这意味着上下文单词c在上下文中出现的次数w.

这里可以参考一个例子.如何计算文本窗口中两个单词之间的共现?

我知道它可以通过堆叠循环来计算,但我想知道是否存在简单的方法或简单的函数?我找到了一些答案,但是他们无法使用滑过句子的窗口.例如:单词共现矩阵

所以有人能告诉我,Python中是否有任何功能可以简洁地处理这个问题?因为我认为这个任务在NLP中很常见.



1> Zealseeker..:

我想,这并不复杂.为什么不为自己做一个功能?首先根据本教程获取共生矩阵X:http://scikit-learn.org/stable/modules/feature_extraction.html#common-vectorizer-usage 然后为每个句子计算共现并将它们添加到摘要变量.

m = np.zeros([length,length]) # n is the count of all words
def cal_occ(sentence,m):
    for i,word in enumerate(sentence):
        for j in range(max(i-window,0),min(i+window,length)):
             m[word,sentence[j]]+=1
for sentence in X:
    cal_occ(sentence, m)

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有