python - 错误列表索引超出范围,而不是在 python 中正确列出
问题描述
以下代码:
from keras.preprocessing.sequence import skipgrams
from keras.preprocessing import text
with open('engl_bible.txt', 'r') as file:
norm_bible = file
tokenizer = text.Tokenizer()
tokenizer.fit_on_texts(norm_bible)
word2id = tokenizer.word_counts
id2word = {v:k for k, v in word2id.items()}
vocab_size = len(word2id) + 1
embed_size = 100
wids = [[word2id[w] for w in text.text_to_word_sequence(doc)] for doc in norm_bible]
#print('Vocabulary Size:', vocab_size)
#print('Vocabulary Sample:', list(word2id.items())[:10])
# generate skip-grams
#skip_grams = keras.preprocessing.sequence.skipgrams(sequence, vocabulary_size, window_size=4, negative_samples=1.0, shuffle=True,
# categorical=False, sampling_table=None, seed=None)
skip_grams = [skipgrams(wid, vocabulary_size=vocab_size, window_size=10) for wid in wids]
# view sample skip-grams
pairs = skip_grams[0]
labels = skip_grams[1]
for i in range(10):
print("({:s} ({:d}), {:s} ({:d})) -> {:d}".format(id2word[pairs[i][0]], pairs[i][0],id2word[pairs[i][1]], pairs[i][1],labels[i]))
这应该导致这样的输出:
(james (1154), king (13)) -> 1
(king (13), james (1154)) -> 1
(james (1154), perform (1249)) -> 0
(bible (5766), dismissed (6274)) -> 0
但我得到的输出如下:
pairs = skip_grams[0]
IndexError: list index out of range
解决方案
我高度怀疑您没有正确打开文件,您可能想要修复缩进。尝试使用以下命令打开文件:
with open('engl_bible.txt', 'r') as file:
norm_bible = file.read()
#norm_bible = file.readlines()
print(len(norm_bible))
您的初始代码实际上并未读取该文件。read()
将文件内容作为字符串read_lines()
返回,并将每个换行符作为列表中的一个元素返回。看到您正在应用标记器,read()
可能是要走的路。
然后检查您的norm_bible
变量是否不为空。
推荐阅读
- php - 尝试计算导入的 Excel 文件的行数时出现错误“返回值必须是 int 类型,返回数组”
- linux - 如何 GREP 文件名的子字符串以重命名文件?
- angular - 我可以在没有任何 React、Angular 和 Blaze 的情况下使用 Meteor.js 吗?我想使用我自己的图书馆
- puppeteer - 使用 Apify Puppeteer Scraper 访问和循环外部数据源
- java - 为什么我从java中的除法中得到不好的结果
- android - 无法在 Android Studio 中生成 SIGNEDD APK
- angular - 如何在不将局部变量声明为代理的情况下从 Angular HTML 模板引用导入的常量值?
- data-structures - Red-Black Tree 的每个实现对于相同的输入是否具有相同数量的红色节点?
- jquery - 数据表导出到 csv 如何在字段有逗号时将 divde 修复为两个表
- javascript - 如何在路线角度8之间共享数据