У меня есть небольшая ошибка с ошибкой, но я не могу ее найти. Мое намерение - сравнить текстовый файл, содержащий эти слова.ZeroDivisionError, но я не могу найти ошибку
secondly
pardon
woods
secondly
Я написал сценарий для сравнения двух значений таким образом:
secondly, pardon
secondly, woods
secondly, secondly
pardon, woods
pardon, secondly
woods, secondly
Мой код выполняет следующие действия:
1) если слова такие же, это даст 1 балл в противном случае это оценка, рассчитанная векторной моделью gensim 2) есть счетчик, и счетчик сбрасывается, когда первый цикл цикла переходит к следующему слову. Например, во-вторых, помилование> во-вторых, леса> во-вторых, во-вторых (в этот момент счетчик равен 3)
Код
from __future__ import division
import gensim
textfile = 'businessCleanTxtUniqueWords'
model = gensim.models.Word2Vec.load("businessSG")
count = 0 # keep track of counter
score = 0
avgScore = 0
SentenceScore = 0
externalCount = 0
totalAverageScore = 0
with open(textfile, 'r+') as f1:
words_list = f1.readlines()
for each_word in words_list:
word = each_word.strip()
for each_word2 in words_list[words_list.index(each_word) + 1:]:
count = count + 1
try:
word2 = each_word2.strip()
print(word, word2)
# if words are the same
if (word == word2):
score = 1
else:
score = model.similarity(word,word2) # when words are not the same
# if word is not in vector model
except KeyError:
score = 0
# to keep track of the score
SentenceScore=SentenceScore + score
print("the score is: " + str(score))
print("the count is: " + str(count))
# average score
avgScore = round(SentenceScore/count,5)
print("the avg score: " + str(SentenceScore) + '/' + str(count) + '=' + str(avgScore))
# reset counter and sentence score
count = 0
SentenceScore = 0
Сообщение об ошибке:
Traceback (most recent call last):
File "C:/Users/User/Desktop/Complete2/Complete/TrainedTedModel/LatestJR.py", line 41, in <module>
avgScore = round(SentenceScore/count,5)
ZeroDivisionError: division by zero
('secondly', 'pardon')
the score is: 0.180233083443
the count is: 1
('secondly', 'woods')
the score is: 0.181432347816
the count is: 2
('secondly', 'secondly')
the score is: 1
the count is: 3
the avg score: 1.36166543126/3=0.45389
('pardon', 'woods')
the score is: 0.405021005657
the count is: 1
('pardon', 'secondly')
the score is: 0.180233083443
the count is: 2
the avg score: 0.5852540891/2=0.29263
('woods', 'secondly')
the score is: 0.181432347816
the count is: 1
the avg score: 0.181432347816/1=0.18143
Я включил «from __future__ import division
» для дивизии, но, похоже, не исправил его
Мои файлы можно найти в следующей ссылке:
Gensim модель:
Textfile:
Спасибо.
'count', вероятно, равен нулю, потому что ваш первый' words_list [words_list.index (each_word) + 1:] ', вероятно, пуст. – kichik
Привет, кичик, я действительно не понимаю. вы можете объяснить немного больше, пожалуйста. Спасибо – windboy
Вы внимательно изучили свою ошибку? Он должен указать номер строки и фрагмент ошибочного кода. –