gpt4 book ai didi

python - TypeError : list indices must be integers, 不是 str(实际上是 bool 转换)

转载 作者:太空狗 更新时间:2023-10-30 00:27:36 26 4
gpt4 key购买 nike

import nltk
import random
from nltk.corpus import movie_reviews

documents=[(list(movie_reviews.words(fileid)),category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)
#print(documents[1])

all_words=[]

for w in movie_reviews.words():
all_words.append(w.lower())

all_words=nltk.FreqDist(all_words)

word_features = list(all_words.keys())[:3000]

def find_features(document):
words = set(document)
features=[]
for w in word_features:
features[w]= (w in words)

return features

print((find_features(movie_reviews.words('neg/cv000_29416.txt'))))

featuresets = [(find_features(rev), category) for (rev,category) in documents]

运行后,我收到错误

features[w]= (w in words)
TypeError: list indices must be integers, not str

请帮我解决一下...

最佳答案

唯一需要做的改变是 features 必须初始化为 dict ({}) 而不是 list ([]) 然后你可以填充它的内容。

TypeError 是因为 word_features 是一个 strings 列表,您试图使用列表对其进行索引,而列表不能包含字符串指数。

features={}
for w in word_features:
features[w] = (w in words)

这里,word_features中的元素构成字典的keysfeatures保存 bool 值,True基于相同的元素是否出现在 words 中(由于调用 set())和 False 中,反之亦然情况。

关于python - TypeError : list indices must be integers, 不是 str(实际上是 bool 转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38737955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com