가능한 목록 문자열 (토큰 화 된 문자열)을 가능한 각 하위 문자열로 나누려고합니다. 가장 일반적인 하위 문자열을 찾으려면 각 하위 문자열에서 FreqDist를 실행하고 싶습니다. 첫 번째 부분은 잘 작동합니다. 나는 FreqDist을 실행할 때, 다음과 같은 에러가 발생합니다파이썬 빈도 분포 (FreqDist/NLTK) 문제
import nltk
string = ['This','is','a','sample']
substrings = []
count1 = 0
count2 = 0
for word in string:
while count2 <= len(string):
if count1 != count2:
temp = string[count1:count2]
substrings.append(temp)
count2 += 1
count1 +=1
count2 = count1
print substrings
fd = nltk.FreqDist(substrings)
print fd
substrings
의 출력은 괜찮 :
TypeError: unhashable type: 'list'
가 여기 내 코드입니다. 여기에 있습니다 :
[['This'], ['This', 'is'], ['This', 'is', 'a'], ['This', 'is', 'a', 'sample'], ['is'], ['is', 'a'], ['is', 'a', 'sample'], ['a'], ['a', 'sample'], ['sample']]
그러나 FreqDist를 실행할 수 없습니다. 어떤 통찰력이라도 대단히 감사하겠습니다. 이 경우 각 하위 문자열은 FreqDist가 1이지만이 프로그램은 훨씬 더 큰 텍스트 샘플에서 실행됩니다.