Я смотрю на совпадение слов в ряде документов. Для каждого набора документов я нахожу словарь N наиболее часто встречающихся слов. Затем я создаю NxN-матрицу для каждого документа, представляющего совпадение слов в одном и том же контекстном окне (последовательность из k слов). Это разреженная матрица, поэтому, если у меня есть M-документы, у меня есть разреженная матрица NxNxM. Поскольку Matlab не может хранить разреженные матрицы с более чем двумя измерениями, я сглаживаю эту матрицу в (NxN) xM разреженную матрицу.Как я могу объединить две матрицы совпадения с перекрывающимися, но не идентичными словарями?
Я столкнулся с проблемой, что я сгенерировал 2 из этих совпадающих матриц для разных наборов документов. Поскольку наборы были разными, словари разные. Вместо объединения наборов документов и пересчета матрицы совпадения я хотел бы объединить две существующие матрицы.
Например,
N = 5; % Size of vocabulary
M = 5; % Number of documents
A = ones(N*N, M); % A is a flattened (N, N, M) matrix
B = 2*ones(N*N, M); % B is a flattened (N, N, M) matrix
A_ind = {'A', 'B', 'C', 'D', 'E'}; % The vocabulary labels for A
B_ind = {'A', 'F', 'B', 'C', 'G'}; % The vocabulary labels for B
Если объединить с получением (49, 5) матрицы, где каждый (49, 1) куска, который может быть преобразован в (7,7) матрицы со следующей структурой ,
A B C D E F G
__________________________________________
A| 3 3 3 1 1 2 2
B| 3 3 3 1 1 2 2
C| 3 3 3 1 1 2 2
D| 1 1 1 1 1 0 0
E| 1 1 1 1 1 0 0
F| 2 2 2 0 0 2 2
G| 2 2 2 0 0 2 2
Если A и B перекрываются, количество совпадений должно быть добавлено вместе. В противном случае, элементы должны быть считаны из A или counts from B. В этом примере будут некоторые элементы (0 в примере), где у меня нет статистики count, потому что некоторые словарные термины принадлежат исключительно A, а некоторые - исключительно в B .
Не знаю, чего вы пытаетесь достичь здесь. – knedlsepp