2013-07-24 3 views
1

나는이 오류 메시지가이 문제를 해결하는 방법 NLTK의 혼란 오류

Traceback (most recent call last): 
     File "C:/Users/shengrong/Desktop/bigram", line 55, in <module> 
     bg = bigram(file) 
     File "C:/Users/shengrong/Desktop/bigram", line 43, in bigram 
     return tt1.perplexity(my_bigrams) 
     File "C:\Python27\lib\site-packages\nltk\model\ngram.py", line 217, in perplexity 
     return pow(2.0, self.entropy(text)) 
     File "C:\Python27\lib\site-packages\nltk\model\ngram.py", line 205, in entropy 
     e += self.logprob(token, context) 
     File "C:\Python27\lib\site-packages\nltk\model\ngram.py", line 151, in logprob 
     return -log(self.prob(word, context), 2) 
    ValueError: math domain error 




import os,csv,nltk 
from nltk.model.ngram import NgramModel 
from nltk.probability import LidstoneProbDist 

fout = open("/Users/shengrong/Documents/personal/WN1.data.csv", "w") 

outfilehandle = csv.writer(fout, 
          delimiter=",", 
          quotechar='"', 
          quoting=csv.QUOTE_NONNUMERIC) 


localrow = [] 
localrow.append("File name") 
localrow.append("Perplexity for unigram") 
localrow.append("Perplexity for bigram") 
localrow.append("Perplexity for trigram") 
outfilehandle.writerow(localrow) 

def bigram(file): 
    file_object = open(file) 
    ln=file_object.read() 

    words = nltk.word_tokenize(ln) 
    my_bigrams = nltk.bigrams(words) 
    my_trigrams = nltk.trigrams(words) 



    tt1=NgramModel(2, my_bigrams, estimator = None) 


    return tt1.perplexity(my_bigrams)  




#set the path of the folder 
os.chdir("/Users/shengrong/Documents/A") 
s = os.getcwd() 
#search files in the folder 
files = os.listdir(s) 

for file in files: 
    bg = bigram(file) 
    localrow= [] 
    localrow.append(file) 
    localrow.append(bg) 

    outfilehandle.writerow(localrow) 

fout.close() 

있어? 루프를 사용하여 폴더를 읽지 않으면 코드가 제대로 작동합니다.

감사합니다.

답변

0

오류는 수학 영역 오류입니다. 루프없이 작동하기 때문에 하나 이상의 파일에 Math 패키지에서 처리 할 수없는 데이터가 포함되어있을 수 있습니다.

폴더의 모든 파일이 올바른 형식 및 예상 값의 데이터를 포함하고 있는지 확인하십시오.

+0

이들은 모두 txt 파일입니다. 일부 파일의 경우 제대로 작동합니다. 그러나 다른 사람들에게는 수학 영역 오류가 발생합니다. – user2612912