我正在处理一项自然语言处理任务,需要计算文档中的共现矩阵。基本公式如下:
在这里,我有一个形状为(n, length)的矩阵,其中每一行表示由length个单词组成的句子。所有的句子长度相同,所以总共有n个句子。然后,根据定义好的上下文大小(例如window_size=5),我想要计算共现矩阵D。其中第cth行和wth列的条目是#(w,c),这意味着一个上下文词c出现在w的上下文中的次数。
可以参考以下示例:如何计算文本窗口内两个单词之间的共现? 我知道可以通过嵌套循环来计算它,但我想知道是否存在一种简单的方法或函数?我已经找到了一些答案,但它们无法滑动窗口处理句子。例如:单词共现矩阵 因此,是否有Python中可以简洁地处理此问题的函数呢?因为我认为这个任务在NLP领域中非常普遍。
在这里,我有一个形状为(n, length)的矩阵,其中每一行表示由length个单词组成的句子。所有的句子长度相同,所以总共有n个句子。然后,根据定义好的上下文大小(例如window_size=5),我想要计算共现矩阵D。其中第cth行和wth列的条目是#(w,c),这意味着一个上下文词c出现在w的上下文中的次数。
可以参考以下示例:如何计算文本窗口内两个单词之间的共现? 我知道可以通过嵌套循环来计算它,但我想知道是否存在一种简单的方法或函数?我已经找到了一些答案,但它们无法滑动窗口处理句子。例如:单词共现矩阵 因此,是否有Python中可以简洁地处理此问题的函数呢?因为我认为这个任务在NLP领域中非常普遍。
CountVectorizer
函数,但它计算的出现次数不是我想要的。在这里我所说的出现矩阵中,每个项目表示一个中心单词w
和它的上下文单词c
的出现次数。CountVectorizer
函数只是计算句子中每对单词的出现次数。我只能通过使用循环堆栈来完成它,我想知道是否存在简单的API。感谢您的回复 :) - GEORGE GUO