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()
있어? 루프를 사용하여 폴더를 읽지 않으면 코드가 제대로 작동합니다.
감사합니다.
이들은 모두 txt 파일입니다. 일부 파일의 경우 제대로 작동합니다. 그러나 다른 사람들에게는 수학 영역 오류가 발생합니다. – user2612912