1 '''
2 Created on 09/05/2013
3
4 @author: David Vilares
5 '''
6
24
25
37
39 """
40 SemanticProperty defines a 'surname' to append semantic properties to the name of a features, building a new
41 feature
42 """
43 POLARITY = "POLARITY"
44
45
62
63
65 """
66 FeatureWekaDataType defines the WekaDataTypes supported by this system
67 """
68 NUMERIC = 'NUMERIC'
69
70
72 """
73 FeatureTypeConfiguration specifies the configuration for a L{src.miope.adapter.Adapter}
74 """
75 DELIMITER_CONFIGURATION = "|"
76 HEAD_BACK_OFF_DELIMITER = "HBOFF"
77 DEPENDENT_BACK_OFF_DELIMITER = "DBOFF"
78 N_GRAM_DELIMITER= "N_GRAM"
79 N_GRAM_BACK_OFF_DELIMITER ="N_GRAM_BACK_OFF"
80 ADD_DEPENDENCY_TYPE_DELIMITER= "DP_TYPE"
81 SEMANTIC_PROPERTY_DELIMITER = "SEMANTIC_PRO"
82 DEFAULT_N_GRAM_SIZE = "1"
83
84
85
86 - def __init__(self, back_off_head = None,
87 back_off_dependent = None,
88 **kwargs):
89 """
90 @param **kwargs: ngram, n_gram_back_off, add_dependency_type, semantic_property
91 @param ngram: {"1","2","3",...}
92 @param n_gram_back_off: A type back_off of L{FeatureLevelBackOff}
93 @param add_dependency_type: {True,False}. If not included, taking False by default
94 @param semantic_property: A L{FeatureSemanticProperty}
95 """
96
97
98 self._back_off_head = back_off_head
99 self._back_off_dependent = back_off_dependent
100
101 if 'n_gram' in kwargs.keys():
102 self._n_gram = str(kwargs['n_gram'])
103 else:
104 self._n_gram = None
105
106 if 'n_gram_back_off' in kwargs.keys():
107 self._n_gram_back_off = kwargs['n_gram_back_off']
108 else:
109 self._n_gram_back_off = None
110
111 if 'add_dependency_type' in kwargs.keys():
112 self._add_dependency_type = kwargs['add_dependency_type']
113 else:
114 self._add_dependency_type = None
115
116 if 'semantic_property' in kwargs.keys():
117 if kwargs['semantic_property'] in [FeatureSemanticProperty.POLARITY]:
118 self._semantic_property = kwargs['semantic_property']
119 else:
120 raise ValueError("Not valid value for FeatureSemanticProperty")
121 else:
122 self._semantic_property = None
123
124 if 'weka_data_type' in kwargs.keys():
125 self._weka_data_type = kwargs['weka_data_type']
126 else:
127 self._weka_data_type = FeatureWekaDataType.NUMERIC
128
130 """
131 @return: The type of back off for the head of node a dependency triplet
132 """
133 return self._back_off_head
134
136 """
137 @return: The type of back off for the dependent node of a dependency triplet
138 """
139 return self._back_off_dependent
140
142 """
143 @return: A boolean indicating if the L{src.miope.adapter.DependencyTripletAdapter} must include or not
144 dependency types
145 """
146 return self._add_dependency_type
147
149 """
150 @return: The len for ngram's for a L{src.miope.adapter.NGramAdapter}
151 """
152 return self._n_gram
153
155 """
156 @return: The type of back off for ngram's of a L{src.miope.adapter.NGramAdapter}
157 """
158 return self._n_gram_back_off
159
160
162 return self._semantic_property
163
165 return self._weka_data_type
166
167 - def __str__(self, *args, **kwargs):
208
209
210
211
213 return hash((self._back_off_head, self._back_off_dependent,
214 self._n_gram, self._n_gram_back_off,
215 self._add_dependency_type, self._semantic_property))
216
218 return (self._back_off_head, self._back_off_dependent,
219 self._n_gram, self._n_gram_back_off,
220 self._add_dependency_type, self._semantic_property) == (other.get_back_off_head(),
221 other.get_back_off_dependent(),
222 other.get_n_gram(),
223 other.get_n_gram_back_off(),
224 other.get_add_dependency_type(),
225 other.get_semantic_property())
226
227
229 '''
230 classdocs
231 '''
232
233 - def __init__(self,name,value,feature_type, type_configuration,data_type):
234 '''
235 Constructor
236 @param name: The name of the feature.
237 @param value: The number of occurences of the features.
238 @param feature_type: A value of L{FeatureType}
239 @param type_configuration: A L{FeatureTypeConfiguration} object
240 @param data_type A value of L{FeatureWekaDataType}
241 '''
242 self._name = name
243 self._value = value
244 self._feature_type = feature_type
245 self._type_configuration = type_configuration
246 self._data_type = data_type
247
250
253
255 return self._feature_type
256
258 return self._type_configuration
259
261 return self._data_type
262