关于IMDB 数据集中代码decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])
看到有段代码decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])这个i-3怎么都不理解。书中解释是如下:“将评论解码。注意,索引减去了3,因为0、1、2是为“padding”(填充)、“start of sequence”(序列开始)、“unknown”(未知词)分别保留...
看到有段代码decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])这个i-3怎么都不理解。
书中解释是如下:“将评论解码。注意,索引减去了3,因为0、1、2
是为“padding”(填充)、“start of sequence”(序
列开始)、“unknown”(未知词)分别保留的索引”
这里join表示连接字啊符串,做一个测试
reverse_word_index={'1':'香','2':'辣','3':'素','4':'毛','5':'肚'}
decoded_review = ' '.join(reverse_word_index.get(str(i)) for i in range(1,6))
print(decoded_review)
香 辣 素 毛 肚
可以看出来,该段代码的意义就是将数字转话成单个的单词,再拼接成语句。
那么假如我上段代码使用i-3,不就变成“???香辣”了吗?
我把这个reverse字典下载下来,链接如下:https://s3.amazonaws.com/text-datasets/imdb_word_index.json
获取JSON数据并读取代码如下:
import urllib.request
import json
data = urllib.request.urlopen("https://s3.amazonaws.com/text-datasets/imdb_word_index.json")
#数据转字符串
data_s=data.read()
data_s=data_s.decode('utf-8')
data_d=json.loads(data_s)
'''访问key用
print(data_d['fawn'])
#等价于
print(data_d.get('fawn'))
'''
#字典key value 互换
d_data = dict([(value, key) for (key, value) in data_d.items()])
#新字典排序
#d_data=sorted(d_data)#时间太长遂放弃
#打印前10个
for i in range(1,10):
print(str(i)+':',d_data.get(i,'unknow'))
结果如下:
=============== RESTART: D:\Program Files\Python\App\测试.py ===============
1: the
2: and
3: a
4: of
5: to
6: is
7: br
8: in
9: it
>>>
然后这个i-3,我到现在仍旧没看懂,看懂了评论说一下吧(捂脸)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)