Python 获取与字典匹配的列表的键/值
一个训练数据(data_tr->由11300个文档组成,这些文档以下面给出的数值作为每个文档的数组进行编码)。词汇表是由2000个最常用单词的键和值组成的词汇表。我的问题是使用字典(键、值)对将整个训练数据(data_tr)的数据数组(numeric)转换为单词。我是python编程新手Python 获取与字典匹配的列表的键/值,python,nlp,Python,Nlp,一个训练数据(data_tr->由11300个文档组成,这些文档以下面给出的数值作为每个文档的数组进行编码)。词汇表是由2000个最常用单词的键和值组成的词汇表。我的问题是使用字典(键、值)对将整个训练数据(data_tr)的数据数组(numeric)转换为单词。我是python编程新手 data_tr= [array([ 700, 152, 572, 572, 619, 724, 326, 1571, 572, 99, 724, 326, 1571, 27
data_tr= [array([ 700, 152, 572, 572, 619, 724, 326, 1571, 572, 99, 724,
326, 1571, 276, 1, 281, 1232, 267, 267, 222, 11, 2,.......dtype=int64)
array([ 331, 152, 397, ..., 1273, 89, 228], dtype=int64)...............
vocab = {'limited': 1481, 'child': 181, 'four': 586, 'sleep': 1714, 'hate': 1141, 'forget': 607, 'whose': 902, 'violate': 1945, 'bike': 370, 'swap': 1616, 'lord': 889, 'sorry': 480, 'worth': 625, 'risk': 911, 'rise': 1474, 'every': 119,...........}
我试图解决这个问题:
keys=list(vocab.keys())
values=list(vocab.values())
for e in data_tr[0]:
print (keys[values.index(e)])
在这里,它可以很好地用于一个文档(data_tr[0]),但无法为整个训练数据(data_tr)生成单词(data_tr)。我想返回所有文档(11300 doc)的单词。首先,我认为如果您构造一个反向字典,以便您可以从数字查找单词,这将是最简单的:
vocab_r = dict((v, k) for k, v in vocab.items())
根据进一步的讨论,您可能需要以下内容:
for doc in data_tr:
print([vocab_r[e] for e in doc])
或者是一个列表:
print([[vocab_r[e] for e in doc] for doc in data_tr])
嗨,阿兰尼维,非常感谢你的帮助。数据的数据类型为'numpy.ndarray'。代码可以工作,但它返回了数据中所有单词的整个集合。我想回到所有文档的列表中。例:[[doc1(单词)][doc2(单词)]…@Amit好的,我已经相应地更新了我的答案。我希望这是适用于现在。在问题中描述所需输出越准确,任何答案满足该要求的可能性就越大。