温馨提示:本文翻译自stackoverflow.com,查看原文请点击:nlp - Create a matrix from a dict of dicts for calculating similarities between docs

nlp - 从字典的字典创建矩阵以计算文档之间的相似度

发布于 2020-03-27 11:06:40

这是我的问题:

我有一个这样的数据框:

id   tfidf_weights   
1    {word1: 0.01, word2: 0.01, word3: 0.01, ...}
2    {word4: 0.01, word5: 0.01, word6: 0.01, ...}
3    {word7: 0.01, word8: 0.01, word9: 0.01, ...}
4    {word10: 0.01, word11: 0.01, word12: 0.01, ...}
5    {word13: 0.01, word14: 0.01, word15: 0.01, ...}    
.
.
.

“ id”列代表文档的ID,“ tfidf_weights”列代表每个文档的每个单词的tfidf权重。

从这个数据帧中,我可以获得具有以下结构的字典:

mydict = {1:{word1: 0.01, word2: 0.01, word3: 0.01, ...}, 2:{word4: 0.01, word5: 0.01, word6: 0.01, ...}, 3:{word7: 0.01, word8: 0.01, word9: 0.01, ...}, 4:{word10: 0.01, word11: 0.01, word12: 0.01, ...}, 5:{word13: 0.01, word14: 0.01, word15: 0.01, ...}, ...}

我想做的是,从这本字典中获得一个像这样的矩阵:

      word1     word2     word3     word4   ...
1     0.01      0.01      0.01      0.01     
2     0.01      0.01      0.01      0.01
3     0.01      0.01      0.01      0.01
4     0.01      0.01      0.01      0.01
5     0.01      0.01      0.01      0.01
.
.
.

谢谢您的帮助 !

查看更多

查看更多

提问者
nipato
被浏览
57
amdex 2019-07-03 22:21

您可以直接使用pandas DataFrame类将词典列表转换为数据框。

import pandas as pd

a = [{"0": 0}, {"1": 1}]
df = pd.DataFrame(a)

要将其应用于您的问题,您要做的就是变成mydict词典列表而不是词典词典。