opener-opinion-detector-base 2.0.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/core/python-scripts/README.md +78 -3
  3. data/core/python-scripts/classify_kaf_naf_file.py +94 -94
  4. data/core/python-scripts/models.cfg +1 -0
  5. data/core/python-scripts/scripts/config_manager.py +3 -0
  6. data/core/python-scripts/scripts/extract_features.py +0 -3
  7. data/core/python-scripts/scripts/relation_classifier.py +1 -1
  8. data/core/vendor/src/crfsuite/crfsuite.sln +42 -42
  9. data/core/vendor/src/liblbfgs/lbfgs.sln +26 -26
  10. data/ext/hack/Rakefile +5 -2
  11. data/lib/opener/opinion_detectors/base.rb +19 -15
  12. data/lib/opener/opinion_detectors/base/version.rb +1 -1
  13. data/lib/opener/opinion_detectors/configuration_creator.rb +6 -8
  14. data/lib/opener/opinion_detectors/de.rb +1 -1
  15. data/lib/opener/opinion_detectors/es.rb +7 -0
  16. data/lib/opener/opinion_detectors/fr.rb +7 -0
  17. data/opener-opinion-detector-base.gemspec +0 -1
  18. data/pre_install_requirements.txt +3 -0
  19. metadata +41 -85
  20. data/core/packages/KafNafParser-1.4.tar.gz +0 -0
  21. data/core/packages/VUA_pylib-1.5.tar.gz +0 -0
  22. data/core/site-packages/pre_build/KafNafParser-1.4-py2.7.egg-info/PKG-INFO +0 -10
  23. data/core/site-packages/pre_build/KafNafParser-1.4-py2.7.egg-info/SOURCES.txt +0 -22
  24. data/core/site-packages/pre_build/KafNafParser-1.4-py2.7.egg-info/dependency_links.txt +0 -1
  25. data/core/site-packages/pre_build/KafNafParser-1.4-py2.7.egg-info/installed-files.txt +0 -47
  26. data/core/site-packages/pre_build/KafNafParser-1.4-py2.7.egg-info/top_level.txt +0 -1
  27. data/core/site-packages/pre_build/KafNafParser/KafNafParserMod.py +0 -390
  28. data/core/site-packages/pre_build/KafNafParser/__init__.py +0 -14
  29. data/core/site-packages/pre_build/KafNafParser/constituency_data.py +0 -125
  30. data/core/site-packages/pre_build/KafNafParser/coreference_data.py +0 -52
  31. data/core/site-packages/pre_build/KafNafParser/dependency_data.py +0 -78
  32. data/core/site-packages/pre_build/KafNafParser/entity_data.py +0 -59
  33. data/core/site-packages/pre_build/KafNafParser/external_references_data.py +0 -41
  34. data/core/site-packages/pre_build/KafNafParser/feature_extractor/__init__.py +0 -2
  35. data/core/site-packages/pre_build/KafNafParser/feature_extractor/constituency.py +0 -205
  36. data/core/site-packages/pre_build/KafNafParser/feature_extractor/dependency.py +0 -309
  37. data/core/site-packages/pre_build/KafNafParser/features_data.py +0 -131
  38. data/core/site-packages/pre_build/KafNafParser/header_data.py +0 -127
  39. data/core/site-packages/pre_build/KafNafParser/opinion_data.py +0 -211
  40. data/core/site-packages/pre_build/KafNafParser/references_data.py +0 -23
  41. data/core/site-packages/pre_build/KafNafParser/span_data.py +0 -63
  42. data/core/site-packages/pre_build/KafNafParser/term_data.py +0 -111
  43. data/core/site-packages/pre_build/KafNafParser/term_sentiment_data.py +0 -42
  44. data/core/site-packages/pre_build/KafNafParser/text_data.py +0 -99
  45. data/core/site-packages/pre_build/VUA_pylib-1.5-py2.7.egg-info/PKG-INFO +0 -10
  46. data/core/site-packages/pre_build/VUA_pylib-1.5-py2.7.egg-info/SOURCES.txt +0 -14
  47. data/core/site-packages/pre_build/VUA_pylib-1.5-py2.7.egg-info/dependency_links.txt +0 -1
  48. data/core/site-packages/pre_build/VUA_pylib-1.5-py2.7.egg-info/installed-files.txt +0 -23
  49. data/core/site-packages/pre_build/VUA_pylib-1.5-py2.7.egg-info/top_level.txt +0 -1
  50. data/core/site-packages/pre_build/VUA_pylib/__init__.py +0 -1
  51. data/core/site-packages/pre_build/VUA_pylib/common/__init__.py +0 -1
  52. data/core/site-packages/pre_build/VUA_pylib/common/common.py +0 -28
  53. data/core/site-packages/pre_build/VUA_pylib/corpus_reader/__init__.py +0 -1
  54. data/core/site-packages/pre_build/VUA_pylib/corpus_reader/google_web_nl.py +0 -156
  55. data/core/site-packages/pre_build/VUA_pylib/io_utils/__init__.py +0 -1
  56. data/core/site-packages/pre_build/VUA_pylib/io_utils/feature_file.py +0 -121
  57. data/core/site-packages/pre_build/VUA_pylib/lexicon/__init__.py +0 -1
  58. data/core/site-packages/pre_build/VUA_pylib/lexicon/lexicon.py +0 -72
  59. data/core/site-packages/pre_build/VUKafParserPy-1.0-py2.7.egg-info/PKG-INFO +0 -10
  60. data/core/site-packages/pre_build/VUKafParserPy-1.0-py2.7.egg-info/SOURCES.txt +0 -7
  61. data/core/site-packages/pre_build/VUKafParserPy-1.0-py2.7.egg-info/dependency_links.txt +0 -1
  62. data/core/site-packages/pre_build/VUKafParserPy-1.0-py2.7.egg-info/installed-files.txt +0 -11
  63. data/core/site-packages/pre_build/VUKafParserPy-1.0-py2.7.egg-info/top_level.txt +0 -1
  64. data/core/site-packages/pre_build/VUKafParserPy/KafDataObjectsMod.py +0 -165
  65. data/core/site-packages/pre_build/VUKafParserPy/KafParserMod.py +0 -439
  66. data/core/site-packages/pre_build/VUKafParserPy/__init__.py +0 -7
  67. data/pre_build_requirements.txt +0 -3
@@ -1,211 +0,0 @@
1
- #Modified for KAF NAF ok
2
-
3
- from lxml import etree
4
- from lxml.objectify import dump
5
- from span_data import *
6
-
7
-
8
-
9
- class Cholder:
10
- def __init__(self,node=None):
11
- self.type = 'NAF/KAF'
12
- if node is None:
13
- self.node = etree.Element('opinion_holder')
14
- else:
15
- self.node = node
16
-
17
- def set_span(self,my_span):
18
- self.node.append(my_span.get_node())
19
-
20
- def set_comment(self,c):
21
- c = c.replace('--','- -')
22
- self.node.insert(0,etree.Comment(c) )
23
-
24
- def get_span(self):
25
- span_obj = self.node.find('span')
26
- if span_obj is not None:
27
- return Cspan(span_obj)
28
- return None
29
-
30
- def __str__(self):
31
- return dump(self.node)
32
-
33
- def get_node(self):
34
- return self.node
35
-
36
-
37
- class Ctarget:
38
- def __init__(self,node=None):
39
- self.type = 'NAF/KAF'
40
- if node is None:
41
- self.node = etree.Element('opinion_target')
42
- else:
43
- self.node = node
44
-
45
- def set_comment(self,c):
46
- c = c.replace('--','- -')
47
- self.node.insert(0,etree.Comment(c) )
48
-
49
- def get_comment(self):
50
- return self.node_comment
51
-
52
- def set_span(self,my_span):
53
- self.node.append(my_span.get_node())
54
-
55
- def get_span(self):
56
- span_obj = self.node.find('span')
57
- if span_obj is not None:
58
- return Cspan(span_obj)
59
- return None
60
-
61
- def __str__(self):
62
- return dump(self.node)
63
-
64
- def get_node(self):
65
- return self.node
66
-
67
-
68
- class Cexpression:
69
- def __init__(self,node=None):
70
- self.type = 'NAF/KAF'
71
- if node is None:
72
- self.node = etree.Element('opinion_expression')
73
- else:
74
- self.node = node
75
-
76
- def set_comment(self,c):
77
- c = c.replace('--','- -')
78
- self.node.insert(0,etree.Comment(c))
79
-
80
- def set_polarity(self,pol):
81
- self.node.set('polarity',pol)
82
-
83
- def get_polarity(self):
84
- return self.node.get('polarity')
85
-
86
- def set_strength(self,st):
87
- self.node.set('strength',st)
88
-
89
- def get_strength(self):
90
- return self.node.get('strength')
91
-
92
- def set_span(self,my_span):
93
- self.node.append(my_span.get_node())
94
-
95
- def get_span(self):
96
- span_obj = self.node.find('span')
97
- if span_obj is not None:
98
- return Cspan(span_obj)
99
- return None
100
-
101
- def __str__(self):
102
- return dump(self.node)
103
-
104
- def get_node(self):
105
- return self.node
106
-
107
- class Copinion:
108
- def __init__(self,node=None,type='NAF'):
109
- self.type = type
110
- if node is None:
111
- self.node = etree.Element('opinion')
112
- else:
113
- self.node = node
114
-
115
- def set_comment(self,c):
116
- c = c.replace('--','- -')
117
- self.node.insert(0,etree.Comment(c) )
118
-
119
- def set_id(self,my_id):
120
- if self.type == 'NAF':
121
- self.node.set('id',my_id)
122
- elif self.type == 'KAF':
123
- self.node.set('oid',my_id)
124
-
125
- def get_id(self):
126
- if self.type == 'NAF':
127
- return self.node.get('id')
128
- elif self.type == 'KAF':
129
- return self.node.get('oid')
130
-
131
- def set_holder(self,hol):
132
- self.node.append(hol.get_node())
133
-
134
- def get_holder(self):
135
- node_hol = self.node.find('opinion_holder')
136
- if node_hol is not None:
137
- return Cholder(node_hol)
138
- else:
139
- return None
140
-
141
- def set_target(self,tar):
142
- self.node.append(tar.get_node())
143
-
144
- def get_target(self):
145
- node_target = self.node.find('opinion_target')
146
- if node_target is not None:
147
- return Ctarget(node_target)
148
- else:
149
- return None
150
-
151
- def set_expression(self,exp):
152
- self.node.append(exp.get_node())
153
-
154
- def get_expression(self):
155
- node_exp = self.node.find('opinion_expression')
156
- if node_exp is not None:
157
- return Cexpression(node_exp)
158
- else:
159
- return None
160
-
161
- def __str__(self):
162
- return dump(self.node)
163
-
164
- def get_node(self):
165
- return self.node
166
-
167
-
168
-
169
-
170
-
171
- class Copinions:
172
- def __init__(self,node=None,type='NAF'):
173
- self.type = type
174
- if node is None:
175
- self.node = etree.Element('opinions')
176
- else:
177
- self.node = node
178
-
179
- def __get_opinion_nodes(self):
180
- for node in self.node.findall('opinion'):
181
- yield node
182
-
183
- def get_opinions(self):
184
- for node in self.__get_opinion_nodes():
185
- yield Copinion(node,self.type)
186
-
187
- def to_kaf(self):
188
- if self.type == 'NAF':
189
- for node in self.__get_opinion_nodes():
190
- node.set('oid',node.get('id'))
191
- del node.attrib['id']
192
-
193
- def to_naf(self):
194
- if self.type == 'KAF':
195
- for node in self.__get_opinion_nodes():
196
- node.set('id',node.get('oid'))
197
- del node.attrib['oid']
198
-
199
-
200
- def add_opinion(self,opi_obj):
201
- self.node.append(opi_obj.get_node())
202
-
203
- def get_node(self):
204
- return self.node
205
-
206
- def remove_this_opinion(self,opinion_id):
207
- for opi in self.get_opinions():
208
- if opi.get_id() == opinion_id:
209
- self.node.remove(opi.get_node())
210
- break
211
-
@@ -1,23 +0,0 @@
1
- # Modified for NAF/KAf
2
- from span_data import *
3
-
4
- class Creferences:
5
- def __init__(self,node=None):
6
- self.type = 'NAF/KAF'
7
- if node is None:
8
- self.node = etree.Element('references')
9
- else:
10
- self.node = node
11
-
12
- def get_node(self):
13
- return self.node
14
-
15
- def __iter__(self):
16
- for span_node in self.node.findall('span'):
17
- yield Cspan(span_node)
18
-
19
- def add_span(self,term_span):
20
- new_span = Cspan()
21
- new_span.create_from_ids(term_span)
22
- self.node.append(new_span.get_node())
23
-
@@ -1,63 +0,0 @@
1
- # Modified for KAF/NAF
2
-
3
- from lxml import etree
4
- from lxml.objectify import dump
5
-
6
- class Ctarget:
7
- def __init__(self,node=None):
8
- self.type = 'NAF/KAF'
9
- if node is None:
10
- self.node = etree.Element('target')
11
- else:
12
- self.node = node
13
-
14
- def get_id(self):
15
- return self.node.get('id')
16
-
17
- def set_id(self,this_id):
18
- self.node.set('id',this_id)
19
-
20
- def get_node(self):
21
- return self.node
22
-
23
-
24
- class Cspan:
25
- def __init__(self,node=None):
26
- self.type = 'NAF/KAF'
27
- if node is None:
28
- self.node = etree.Element('span')
29
- else:
30
- self.node = node
31
-
32
- def add_target_id(self,this_id):
33
- new_target = Ctarget()
34
- new_target.set_id(this_id)
35
- self.node.append(new_target.get_node())
36
-
37
- def create_from_ids(self,list_ids):
38
- for this_id in list_ids:
39
- new_target = Ctarget()
40
- new_target.set_id(this_id)
41
- self.node.append(new_target.get_node())
42
-
43
- def add_target(self,target):
44
- self.node.append(target.get_node())
45
-
46
-
47
- def __get_target_nodes(self):
48
- for target_node in self.node.findall('target'):
49
- yield target_node
50
-
51
- def __iter__(self):
52
- for target_node in self.__get_target_nodes():
53
- yield Ctarget(target_node)
54
-
55
- def get_span_ids(self):
56
- return [t_obj.get_id() for t_obj in self]
57
-
58
- def __str__(self):
59
- return dump(self.node)
60
-
61
- def get_node(self):
62
- return self.node
63
-
@@ -1,111 +0,0 @@
1
- # included code for NAF/KAF
2
-
3
-
4
- from span_data import *
5
- from external_references_data import *
6
- from term_sentiment_data import *
7
- from lxml import etree
8
-
9
-
10
- class Cterm:
11
- def __init__(self,node=None,type='NAF'):
12
- self.type = type
13
- if node is None:
14
- self.node = etree.Element('term')
15
- else:
16
- self.node = node
17
-
18
-
19
- def get_id(self):
20
- if self.type == 'NAF':
21
- return self.node.get('id')
22
- elif self.type == 'KAF':
23
- return self.node.get('tid')
24
-
25
- def get_lemma(self):
26
- return self.node.get('lemma')
27
-
28
- def get_pos(self):
29
- return self.node.get('pos')
30
-
31
- def get_morphofeat(self):
32
- return self.node.get('morphofeat')
33
-
34
- def get_span(self):
35
- node_span = self.node.find('span')
36
- if node_span is not None:
37
- return Cspan(node_span)
38
- else:
39
- return None
40
-
41
- def get_sentiment(self):
42
- sent_node = self.node.find('sentiment')
43
-
44
- if sent_node is None:
45
- return None
46
- else:
47
- return Cterm_sentiment(sent_node)
48
-
49
-
50
- def add_external_reference(self,ext_ref):
51
- ext_refs_node = self.node.find('externalReferences')
52
- if ext_refs_node is None:
53
- ext_refs_obj = CexternalReferences()
54
- self.node.append(ext_refs_obj.get_node())
55
- else:
56
- ext_refs_obj = CexternalReferences(ext_refs_node)
57
-
58
- ext_refs_obj.add_external_reference(ext_ref)
59
-
60
- def add_term_sentiment(self,term_sentiment):
61
- self.node.append(term_sentiment.get_node())
62
-
63
-
64
-
65
-
66
- class Cterms:
67
- def __init__(self,node=None,type='NAF'):
68
- self.idx = {}
69
- self.type = type
70
- if node is None:
71
- self.node = etree.Element('terms')
72
- else:
73
- self.node = node
74
- for node_term in self.__get_node_terms():
75
- self.idx[node_term.get('id')] = node_term
76
-
77
- def get_node(self):
78
- return self.node
79
-
80
- def to_kaf(self):
81
- if self.type == 'NAF':
82
- self.type = 'KAF'
83
- for node in self.__get_node_terms():
84
- node.set('tid',node.get('id'))
85
- del node.attrib['id']
86
-
87
- def to_naf(self):
88
- if self.type == 'KAF':
89
- self.type = 'NAF'
90
- for node in self.__get_node_terms():
91
- node.set('id',node.get('tid'))
92
- del node.attrib['tid']
93
-
94
- def __get_node_terms(self):
95
- for node_term in self.node.findall('term'):
96
- yield node_term
97
-
98
- def __iter__(self):
99
- for node_term in self.__get_node_terms():
100
- yield Cterm(node_term,self.type)
101
-
102
- def get_term(self,term_id):
103
- if term_id in self.idx:
104
- return Cterm(self.idx[term_id],self.type)
105
- else:
106
- return None
107
-
108
- def add_external_reference(self,term_id, external_ref):
109
- if term_id in self.idx:
110
- term_obj = Cterm(self.idx[term_id],self.type)
111
- term_obj.add_external_reference(external_ref)
@@ -1,42 +0,0 @@
1
- # Modified for NAF KAF
2
- from lxml import etree
3
- from lxml.objectify import dump
4
-
5
- class Cterm_sentiment:
6
- def __init__(self,node=None):
7
- self.type = 'NAF/KAF'
8
- if node is None:
9
- self.node = etree.Element('sentiment')
10
- else:
11
- self.node = node
12
- #self.resource = self.polarity = self.strength = self.subjectivity = self.semantic_type = self.modifier = self.marker = self.product_feature = ''
13
- #if node is not None:
14
- # self.resource = node.get('resource','')
15
- # self.polarity = node.get('polarity','')
16
- # self.strength = node.get('strength','')
17
- # self.subjectivity = node.get('subjectivity','')
18
- #self.semantic_type = node.get('sentiment_semantic_type','')
19
- # self.modifier = node.get('sentiment modifier','')
20
- # self.marker = node.get('sentiment_marker','')
21
- # self.product_feature = node.get('sentiment product feature','')
22
-
23
- def set_resource(self,r):
24
- self.node.set('resource',r)
25
-
26
- def get_node(self):
27
- return self.node
28
-
29
- def get_polarity(self):
30
- return self.node.get('polarity')
31
-
32
- def set_polarity(self,p):
33
- self.node.set('polarity',p)
34
-
35
- def get_modifier(self):
36
- return self.node.get('sentiment_modifier')
37
-
38
- def set_modifier(self,sm):
39
- self.node.set('sentiment_modifier',sm)
40
-
41
- def __str__(self):
42
- return dump(self.node)