Мне нужно рассчитать косинусное сходство между документами с уже рассчитанными показателями TFIDF.
Обычно я использовал бы (например) TFIDFVectorizer , который создавал бы матрицу документов / терминов, вычисляя баллы TFIDF по мере необходимости. Я не могу применить это, потому что это пересчитает баллы TFIDF. Это было бы неправильно, потому что документы уже прошли большую предварительную обработку, включая Bag of Words и фильтрацию IDF (я не буду объяснять, почему - слишком долго).
Иллюстративный входной файл CSV:
Doc, Term, TFIDF score
1, apples, 0.3
1, bananas, 0.7
2, apples, 0.1
2, pears, 0.9
3, apples, 0.6
3, bananas, 0.2
3, pears, 0.2
Мне нужно сгенерировать матрицу, которая обычно генерируется TFIDFVectorizer, например ::
| apples | bananas | pears
1 | 0.3 | 0.7 | 0
2 | 0.1 | 0 | 0.9
3 | 0.6 | 0.2 | 0.2
... чтобы я мог вычислить косинусное сходство между документами.
Я использую Python 2.7, но приветствуются предложения по другим решениям или инструментам. Я не могу легко переключиться на Python 3.
Edit:
Это на самом деле не о транспонировании пустых массивов. Он включает в себя сопоставление баллов TFIDF с матрицей документа / термина с токенами и отсутствующими значениями, заполненными как 0.