Как получить матрицу совместного вхождения в python, необходимую для модуля GloVe - PullRequest
0 голосов
/ 03 февраля 2019

Чтобы использовать этот модуль GloVe , мне нужна точно определенная форма матрицы сопутствующих явлений.На данный момент у меня есть это:

def wwcoomtrx(inlist):
    logging.info('libmatrix.py > wwcoomtrx')
    vocabulary = {}  # map terms to column indices
    data = []        # values (maybe weights)
    row = []         # row (document) indices
    col = []         # column (term) indices

    for i, doc in enumerate(inlist):
        for term in doc:
            # get column index, adding the term to the vocabulary if needed
            j = vocabulary.setdefault(term, len(vocabulary))
            data.append(1)  # uniform weights
            row.append(i)
            col.append(j)
    A = scipy.sparse.coo_matrix((data, (row, col)))
    return A.T*A

В результате чего-то вроде этого в моем 2D списке слов :

  (0, 172)  3
  (0, 171)  3
  (0, 170)  3
  (0, 169)  3
  (0, 168)  3
  (0, 167)  3

  : :

  (2389, 54)    4
  (2389, 52)    1
  (2389, 40)    3
  (2389, 24)    1
  (2389, 20)    7
  (2389, 15)    1

Но мне нужно что-то вроде этого:

cooccur = {
0: {
0: 1.0,
2: 3.5
},
1: {
2: 0.5
},
2: {
0: 3.5,
1: 0.5,
2: 1.2
}
}

Я не знаю, как конвертировать его.

...