我正在研究NLP任务,我需要计算文档上的共现矩阵.基本配方如下:
这里我有一个形状矩阵(n, length),每行代表一个由length单词组成的句子.所以n总共有相同长度的句子.然后使用定义的上下文大小,例如,window_size = 5我想计算共生矩阵D,其中cth行和wth列中的条目是#(w,c),这意味着上下文单词c在上下文中出现的次数w.
这里可以参考一个例子.如何计算文本窗口中两个单词之间的共现?
我知道它可以通过堆叠循环来计算,但我想知道是否存在简单的方法或简单的函数?我找到了一些答案,但是他们无法使用滑过句子的窗口.例如:单词共现矩阵
所以有人能告诉我,Python中是否有任何功能可以简洁地处理这个问题?因为我认为这个任务在NLP中很常见.
例如,输入一维张量:
l_in = [1,1,2,2,3,4,5,5,1,3,5]
Run Code Online (Sandbox Code Playgroud)
我想删除连续的重复项,这意味着输出应该是:
l_out = [1,2,3,4,5,1,3,5]
Run Code Online (Sandbox Code Playgroud)
然而,该tf.unique函数只返回唯一的元素,这表明最后三个元素也将被消除。的输出tf.unique是:
[1,2,3,4,5], [0,0,1,1,2,3,4,4,0,2,4] = tf.unique(l_in)
Run Code Online (Sandbox Code Playgroud)
其中第二项是相应的 ID。
有没有什么方法可以只删除连续的重复项,同时保留非重复和非唯一的元素?