2012-10-01 5 views
0

나는 나의 자료에서 단어 목록을 세고 단어 목록 가능성을 보았다.파이썬 : NLTK 단어 목록의 확률

저는 각 단어의 빈도를 계산 한 다음 Excel을 사용하여 합계했습니다. 그러나 실제로는 정말 오랜 시간이 걸립니다. 내 목록에있는 단어의 수는 몇 천 개입니다.

단어 목록의 빈도 수를 합산 한 다음 단어의 확률을 확인하고 싶습니다.

genres = ['C:/A1.txt','C:/A2.txt','C:/A3.txt'] 
modals = ['can', 'could', 'may', 'might', 'must', 'will'] 

cfd = nltk.ConditionalFreqDist(
     (genre, word) 
     for genre in genres 
     for word in modals) 

cfd.tabulate(conditions=genres, samples=modals) 

제발 나를 도와주세요. 나는이 문제를 극복하기 위해 이틀간을 소비 해왔다.

미리 감사드립니다.

+0

게시 한 코드에 어떤 문제가 있습니까? – Blender

+0

나는 내 게시물에 아무런 잘못이 없다. 각 단어를 셀 수는 없지만 내 목록의 각 단어의 빈도를 요약하고 싶다. – user976856

+0

내가 이걸 좋아할 때. 내 목록에서 각 단어를 세는 데 정말로 오랜 시간을 보냈습니다. 내 목록에있는 모든 단어의 빈도를 합산하는 방법이 있습니까? – user976856

답변

0

여기 주파수 수를 계산하는 데 사용하는 함수입니다. 그것은 numpy 배열을 사용합니다. 확률을 얻기 위해 코드를 수정할 수 있습니다.

def freqCount(y_list): 
     x =array(y_list) 
     y = bincount(x) 
     ii = nonzero(y)[0] 
     freq = zip(ii,y[ii]) 
     f = open(fn_freq,'w') 
     f.write('Distribution:\n') 
     print 
     print "Distribution:" 
     freq_dict={} 
     for ff in freq: 
      temp = "%s %s\n" % (ff[0],ff[1]) 
      f.write(temp) 
      print ff[0],ff[1] 
      freq_dict[ff[0]]=ff[1] 
     f.close() 
     return freq_dict 
+0

정말 고마워요! 나는 질문을 할 수 .. ..? 그래서 Y_list는 원시 데이터가 될 것이고 내가 셀 수있는 단어 목록은 f 일까요? 옳은? 고맙습니다! – user976856

+0

네 ... 그냥 목록 예 : y_list = [ 'a', 'b'] – Tampa

+0

반드시 numpy를 가져 오십시오. – Tampa