bigrams 및 unigrams로 작업하고 있습니다.Python의 목록에있는 요소에 액세스 할 수 없습니다.
내 bigrams는 튜플의 카운터입니다 내 unigrams이
uni['some key']=count
내가 follwing을
for b,countB in bigrams.most_common()
key=b[0] # this is guaranteed to be a key for my unigrams
uniCount=uni[key]
다음과 같은 오류를 수행하려고 목록입니다 발생합니다
TypeError: tuple indeces must be integers or slices, not str
혼란 스럽습니다. 왜 이것이 문제가되어야합니까? uni는 본질적으로 해시이며 키 값은 문자열입니다. 어떻게 [key]에 액세스 할 수 있습니까?
편집 : 당신은 아마 사전을 필요로 할 때 튜플을 사용하는 실수를하고있다
# 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]
당신이'인쇄 (수행 할 때 당신은 무엇을 어떻게해야합니까 "{}"형식 (키))''key = b [0]'바로 뒤에? – Samundra
더 많은 코드가 필요합니다. 오류에 따르면'uni'는'dict'이라고 주장하면서'튜플 (tuple) '이라고 생각합니다. – tzaman
실제로 "my unigrams is a list"는 uni [ 'some key'] = count' 예제와 충돌합니다. 목록은 그런 식으로 색인을 생성 할 수 없습니다. – jez