Je travaille avec bigrams et unigrams.Impossible d'accéder aux éléments dans une liste en Python
Mes bigrammes sont un compteur de tuples et mes unigrammes sont une liste, où
uni['some key']=count
Je suis en train de faire le follwing
for b,countB in bigrams.most_common()
key=b[0] # this is guaranteed to be a key for my unigrams
uniCount=uni[key]
L'erreur suivante se produit:
TypeError: tuple indeces must be integers or slices, not str
Je suis confus. Pourquoi cela devrait-il être un problème? uni est essentiellement un hachage, ses valeurs clés sont des chaînes. Comment puis-je accéder à [clé]?
edit: code complet
# corpus is a string containing my corpus
sp=corpus.split()
uni={}
for t in sp:
try:
uni[t]+=1
except:
uni[t]=0
prev=''
big=[]
for t in sp:
tup=(prev,t)
big.append(tup)
prev=t
bigrams=collections.Counter(big)
for b,countB in bigrams.most_common():
key=b[0]
uniCount=uni[key]
Qu'est-ce que vous obtenez lorsque vous faites 'print ("{}" Format (clé)) 'juste après' key = b [0] '? – Samundra
Besoin de plus de code; selon l'erreur, il semble que votre 'uni' soit un' tuple' alors que vous prétendez qu'il s'agit d'un 'dict'. – tzaman
En fait l'instruction "mes unigrams sont une liste" est en conflit avec l'exemple 'uni ['une clé'] = count'. Les listes ne peuvent pas non plus être indexées de cette façon. – jez