paranormal-or-skeptic/test-A/predict.py

25 lines
867 B
Python
Raw Permalink Normal View History

2020-03-26 12:26:28 +01:00
#!/usr/bin/env python3
import sys
import pickle
from tokenizator import tokenizator
import math
model = pickle.load(open('model.pkl', 'rb', ))
pskeptic, vocabulary_size, skeptic_words_total, paranormal_words_total, skeptics_count, paranormal_count = model
for line in sys.stdin:
document = line.rstrip()
terms = tokenizator(document)
log_prob_skeptic = math.log(pskeptic)
log_prob_paranormal = math.log(1-pskeptic)
for term in terms:
if term not in skeptics_count:
skeptics_count[term]=0
if term not in paranormal_count:
paranormal_count[term]=0
log_prob_skeptic += math.log((skeptics_count[term] +1)/(skeptic_words_total + vocabulary_size))
log_prob_paranormal += math.log((paranormal_count[term] +1)/(paranormal_words_total + vocabulary_size))
if log_prob_skeptic > log_prob_paranormal:
print("S")
else:
print("P")