gpt4 book ai didi

Python——计算共现矩阵

转载 作者:太空狗 更新时间:2023-10-29 22:25:02 24 4
gpt4 key购买 nike

我正在处理 NLP 任务,我需要计算文档的共现矩阵。基本公式如下:

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

例子可以引用这里。 How to calculate the co-occurrence between two words in a window of text?

我知道可以通过循环堆叠来计算,但我想知道是否存在简单的方法或简单的函数?我找到了一些答案,但它们无法使用在句子中滑动的窗口。例如:word-word co-occurrence matrix

那么谁能告诉我Python中有什么函数可以简洁地处理这个问题吗?因为我认为这个任务在 NLP 事物中很常见。

最佳答案

我觉得没那么复杂。为什么不自己做一个函数呢?首先根据这个教程得到共生矩阵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)

关于Python——计算共现矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41661801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com