Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f8c1e4891f | ||
|
710f261670 | ||
|
f290964067 | ||
|
082c69e025 | ||
|
4951a7cc47 | ||
|
5c036684c8 | ||
|
0774e8bc17 |
2
.idea/.gitignore
vendored
Normal file
2
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/workspace.xml
|
8
.idea/Pierwsze.iml
Normal file
8
.idea/Pierwsze.iml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.8 (untitled)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
7
.idea/misc.xml
Normal file
7
.idea/misc.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (untitled)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Pierwsze.iml" filepath="$PROJECT_DIR$/.idea/Pierwsze.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
57
code.py
57
code.py
@ -1,57 +0,0 @@
|
|||||||
from collections import defaultdict
|
|
||||||
import math
|
|
||||||
import pickle
|
|
||||||
|
|
||||||
def calc_class_logprob(expected_path):
|
|
||||||
paranormal_classcount=0
|
|
||||||
skeptic_classcount=0
|
|
||||||
with open(expected_path) as f:
|
|
||||||
for line in f:
|
|
||||||
if 'P' in line:
|
|
||||||
paranormal_classcount += 1
|
|
||||||
if 'S' in line:
|
|
||||||
skeptic_classcount += 1
|
|
||||||
|
|
||||||
paranormal_prob = paranormal_classcount / (paranormal_classcount + skeptic_classcount)
|
|
||||||
skeptic_prob = skeptic_classcount / (paranormal_classcount + skeptic_classcount)
|
|
||||||
|
|
||||||
return math.log(paranormal_prob), math.log(skeptic_prob)
|
|
||||||
|
|
||||||
|
|
||||||
def calc_word_count(in_path, expected_path):
|
|
||||||
word_counts = {'paranormal':defaultdict(int), 'skeptic': defaultdict(int)}
|
|
||||||
with open(in_path) as in_file, open(expected_path) as expected_file:
|
|
||||||
for line, exp in zip(in_file, expected_file):
|
|
||||||
class_ = exp.rstrip('\n').replace(' ','')
|
|
||||||
text, timestamp = line.rstrip('\n').split('\t')
|
|
||||||
tokens = text.lower().split(' ')
|
|
||||||
for token in tokens:
|
|
||||||
if class_ == 'P':
|
|
||||||
word_counts['paranormal'][token] += 1
|
|
||||||
elif class_ == 'S':
|
|
||||||
word_counts['skeptic'][token] += 1
|
|
||||||
return word_counts
|
|
||||||
|
|
||||||
def calc_word_logprobs(word_counts):
|
|
||||||
total_skeptic = sum(word_counts['skeptic'].values()) + len(word_counts['skeptic'].keys())
|
|
||||||
total_paranormal = sum(word_counts['paranormal'].values()) + len(word_counts['paranormal'].keys())
|
|
||||||
|
|
||||||
word_logprobs= {'paranormal': {}, 'skeptic': {}}
|
|
||||||
for class_ in word_counts.keys(): # sceptic paranormal
|
|
||||||
for token, tokens in word_counts[class_].items():
|
|
||||||
if class_ == 'skeptic':
|
|
||||||
word_prob = (tokens+1)/total_skeptic
|
|
||||||
else:
|
|
||||||
word_prob = (tokens+1)/total_paranormal
|
|
||||||
word_logprobs[class_][token] = math.log(word_prob)
|
|
||||||
return word_logprobs
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
paranomal_class_logprob, skeptic_class_logprob = calc_class_logprob("F:/UAM/SEMESTR_I_MGR/SYSTEMY_INTELIGENTNE/ic4g/train/expected.tsv")
|
|
||||||
word_counts=calc_word_count("F:/UAM/SEMESTR_I_MGR/SYSTEMY_INTELIGENTNE/ic4g/train/in.tsv","F:/UAM/SEMESTR_I_MGR/SYSTEMY_INTELIGENTNE/ic4g/train/expected.tsv")
|
|
||||||
word_logprobs = calc_word_logprobs(word_counts)
|
|
||||||
pickle.dump([paranomal_class_logprob, skeptic_class_logprob, word_logprobs], open('naive_base_model.pkl','wb'))
|
|
||||||
|
|
||||||
|
|
||||||
main()
|
|
BIN
naive_base_model.pkl
Normal file
BIN
naive_base_model.pkl
Normal file
Binary file not shown.
289579
train/in.tsv
Normal file
289579
train/in.tsv
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user