python - 获取与字典匹配的列表的键/值
问题描述
训练数据(data_tr-> 由 11300 个文档组成,这些文档以下面给出的数值编码为每个文档的数组)。词汇表是一个字典,由 2000 个最常用单词的键和值组成。我的问题是使用字典(键,值)对将整个训练数据(data_tr)的data_tr(numeric)数组转换为单词。我是 python 编程的新手。
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])
推荐阅读
- javascript - 如何仅滚动绘制 div 的长度?
- magento2 - 如何使用模块将自定义块添加到电子邮件模板
- bash - 如何在linux bash中删除范围内的历史记录
- android - 如何将我在 Android Studio 中制作的应用程序放入手机中?
- matlab - 如何将双精度数组保存到matlab中的TIFF文件
- mysql - SQL 清理帮助 - 根据其他列值创建列
- sql - SQLPlus 中的情况
- c - 关于 extern 关键字和多个源文件的混淆
- continuous-integration - Lighthouse 服务器无效令牌 - LHCI 无效令牌
- java - 什么是 Querydsl PathBuilder 字符串参数“变量”用于