窗口为4的共现矩阵代码
时间: 2024-05-03 18:22:32 浏览: 11
以下是Python代码示例,用于生成窗口大小为4的共现矩阵:
```python
import numpy as np
from collections import defaultdict
# 读取语料库
with open('corpus.txt', 'r', encoding='utf-8') as f:
corpus = f.read().split()
# 构建单词和索引的映射关系
word2idx = defaultdict(lambda: len(word2idx))
for word in corpus:
word2idx[word]
# 构建共现矩阵
window_size = 4
co_matrix = np.zeros((len(word2idx), len(word2idx)))
for idx, word in enumerate(corpus):
for i in range(1, window_size + 1):
left_idx = idx - i
right_idx = idx + i
if left_idx >= 0:
left_word = corpus[left_idx]
co_matrix[word2idx[word], word2idx[left_word]] += 1
if right_idx < len(corpus):
right_word = corpus[right_idx]
co_matrix[word2idx[word], word2idx[right_word]] += 1
# 输出共现矩阵
print(co_matrix)
```
其中,`corpus.txt`是语料库文件,每行为一个句子,单词之间以空格分隔。`window_size`为窗口大小,即左右各几个单词算作共现。运行后,会输出一个numpy数组,即共现矩阵。其中,行和列分别对应单词的索引,数组元素表示两个单词在窗口内共现的次数。