47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from collections import defaultdict
|
|
import math
|
|
import pickle
|
|
import re
|
|
|
|
open_file = open('naive_base_model.pkl', 'rb')
|
|
pickle_loaded = pickle.load(open_file)
|
|
paranomal_class_logprob, skeptic_class_logprob, word_logprobs = pickle_loaded
|
|
def prediction(input,output):
|
|
output_file = open(output,'w')
|
|
with open(input,encoding='utf-8') as in_file:
|
|
for line in in_file:
|
|
temp_paranormal_logprob = paranomal_class_logprob
|
|
temp_skeptic_logprob = skeptic_class_logprob
|
|
text, timestamp = line.rstrip('\n').split('\t')
|
|
text = text.lower()
|
|
text = re.sub(r'\\n+', " ", text)
|
|
text = re.sub(r'http\S+', " ", text)
|
|
text = re.sub(r'\/[a-z]\/', " ", text)
|
|
text = re.sub(r'[^a-z]', " ", text)
|
|
text = re.sub(r'\s{2,}', " ", text)
|
|
text = re.sub(r'\W\w{1,3}\W|\A\w{1,3}\W', " ", text)
|
|
text = re.sub(r'\W\w{1,3}\W|\A\w{1,3}\W', " ", text)
|
|
text = re.sub(r'\W\w{1,3}\W|\A\w{1,3}\W', " ", text)
|
|
text = re.sub(r'^\s', "", text)
|
|
tokens = text.split(' ')
|
|
for token in tokens:
|
|
if token not in word_logprobs['paranormal']:
|
|
word_logprobs['paranormal'][token] = -14.78
|
|
if token not in word_logprobs['skeptic']:
|
|
word_logprobs['skeptic'][token] = -15.6
|
|
|
|
temp_paranormal_logprob += paranomal_class_logprob + word_logprobs['paranormal'][token]
|
|
temp_skeptic_logprob += skeptic_class_logprob + word_logprobs['skeptic'][token]
|
|
|
|
if temp_paranormal_logprob > temp_skeptic_logprob:
|
|
output_file.write('1\n')
|
|
else:
|
|
output_file.write('0\n')
|
|
##
|
|
def main():
|
|
prediction('dev-0/in.tsv','dev-0/out.tsv')
|
|
prediction('test-A/in.tsv/in.tsv','test-A/out.tsv')
|
|
|
|
main()
|
|
|