Commit c2cbd719f2cfdcc3da575e56a8b87aeb6978d65a

Authored by Bartłomiej Nitoń
1 parent 36e62d11

Added schema opinion to schemata filter.

dictionary/ajax_lemma_view.py
... ... @@ -316,35 +316,31 @@ def get_frame_filter_options(request):
316 316 # pobieranie wartosci aspektu
317 317 aspect_model = Frame_Char_Model.objects.get(model_name=u'ASPEKT')
318 318 aspect_vals_objs = aspect_model.frame_char_values.order_by('-priority')
319   - aspect_str_list = []
320   - for aspect_val in aspect_vals_objs:
321   - aspect_str_list.append(aspect_val.value)
  319 + aspect_str_list = [val.value for val in aspect_vals_objs]
322 320  
323 321 # pobieranie wartosci zwrotnosci
324 322 reflex_model = Frame_Char_Model.objects.get(model_name=u'ZWROTNOŚĆ')
325 323 reflex_vals_objs = reflex_model.frame_char_values.order_by('-priority')
326   - reflex_str_list = []
327   - for reflex_val in reflex_vals_objs:
328   - reflex_str_list.append(reflex_val.value)
  324 + reflex_str_list = [val.value for val in reflex_vals_objs]
329 325  
330 326 # pobieranie wartosci negatywnosci
331 327 neg_model = Frame_Char_Model.objects.get(model_name=u'NEGATYWNOŚĆ')
332 328 neg_vals_objs = neg_model.frame_char_values.order_by('-priority')
333   - neg_str_list = []
334   - for neg_val in neg_vals_objs:
335   - neg_str_list.append(neg_val.value)
  329 + neg_str_list = [val.value for val in neg_vals_objs]
336 330  
337 331 # pobieranie wartosci predykatywnosci
338 332 pred_model = Frame_Char_Model.objects.get(model_name=u'PREDYKATYWNOŚĆ')
339 333 pred_vals_objs = pred_model.frame_char_values.order_by('-priority')
340   - pred_str_list = []
341   - for pred_val in pred_vals_objs:
342   - pred_str_list.append(pred_val.value)
  334 + pred_str_list = [val.value for val in pred_vals_objs]
  335 +
  336 + # pobieranie opinii o schemacie
  337 + opinion_str_list = [val.value for val in Frame_Opinion_Value.objects.order_by('priority')]
343 338  
344 339 return {'reflex_options': reflex_str_list,
345 340 'aspect_options': aspect_str_list,
346   - 'neg_options' : neg_str_list,
347   - 'pred_options' : pred_str_list}
  341 + 'neg_options': neg_str_list,
  342 + 'pred_options': pred_str_list,
  343 + 'opinion_options': opinion_str_list}
348 344  
349 345  
350 346 @render('lemma_desc.html')
... ... @@ -938,8 +934,10 @@ def filter_form_submit(request, form_data):
938 934  
939 935 if filter_dict['frame_opinion']:
940 936 frame_opinion_obj = Frame_Opinion_Value.objects.get(id=filter_dict['frame_opinion'])
  937 + opinion_val = frame_opinion_obj.value
941 938 else:
942 939 frame_opinion_obj = None
  940 + opinion_val = '*'
943 941  
944 942 if 'frame_phraseologic' in filter_dict:
945 943 frame_phraseologic = filter_dict['frame_phraseologic']
... ... @@ -987,6 +985,7 @@ def filter_form_submit(request, form_data):
987 985 'reflex' : reflex_val,
988 986 'negativity' : negativity_val,
989 987 'predicativity': pred_val,
  988 + 'opinion' : opinion_val,
990 989 'aspect' : aspect_val,
991 990 'position' : filter_dict['has_position'],
992 991 'argument' : filter_dict['has_argument']}
... ... @@ -2793,6 +2792,8 @@ def pos_regex_frames(frames, string):
2793 2792 possible_frames = possible_frames.exclude(positions__in=model_results)
2794 2793 else:
2795 2794 possible_frames = possible_frames.filter(positions__in=model_results)
  2795 + elif not model_results.exists() and not negation:
  2796 + possible_frames = Frame.objects.none()
2796 2797 alternative_queries.append(Q(id__in=possible_frames))
2797 2798 frames = frames.filter(reduce(operator.or_, alternative_queries)).distinct()
2798 2799 except:
... ... @@ -2819,6 +2820,8 @@ def arg_regex_frames(frames, string):
2819 2820 possible_frames = possible_frames.exclude(positions__arguments__in=model_results)
2820 2821 else:
2821 2822 possible_frames = possible_frames.filter(positions__arguments__in=model_results)
  2823 + elif not model_results.exists() and not negation:
  2824 + possible_frames = Frame.objects.none()
2822 2825 alternative_queries.append(Q(id__in=possible_frames))
2823 2826 frames = frames.filter(reduce(operator.or_, alternative_queries)).distinct()
2824 2827 except:
... ... @@ -2860,7 +2863,7 @@ def get_lemma_query(prepared_sort_rules, filter_rules, lemma_query, user):
2860 2863 if filter_rules['frame_opinion']:
2861 2864 lemmas = lemmas.filter(frame_opinions__value=filter_rules['frame_opinion'])
2862 2865  
2863   - frames = Frame.objects
  2866 + frames = Frame.objects.all()
2864 2867 if filter_rules['reflex']:
2865 2868 frames = frames.filter(characteristics=filter_rules['reflex'])
2866 2869 if filter_rules['negativity']:
... ... @@ -2878,10 +2881,14 @@ def get_lemma_query(prepared_sort_rules, filter_rules, lemma_query, user):
2878 2881  
2879 2882 if (filter_rules['reflex'] or filter_rules['negativity'] or
2880 2883 filter_rules['aspect'] or filter_rules['predicativity'] or
2881   - filter_rules['frame_phraseologic'] or
  2884 + filter_rules['frame_phraseologic'] or filter_rules['frame_opinion'] or
2882 2885 (filter_rules['argument'] and filter_rules['argument'] != '.*') or
2883 2886 (filter_rules['position'] and filter_rules['position'] != '.*')):
2884   - lemmas = lemmas.filter(frames__in=frames).distinct()
  2887 + if filter_rules['frame_opinion']:
  2888 + lemmas = lemmas.filter(frame_opinions__frame__in=frames,
  2889 + frame_opinions__value=filter_rules['frame_opinion']).distinct()
  2890 + else:
  2891 + lemmas = lemmas.filter(frames__in=frames).distinct()
2885 2892  
2886 2893 if filter_rules['sender']:
2887 2894 lemmas = lemmas.filter(messages__sender=filter_rules['sender'])
... ...
dictionary/management/commands/create_walenty.py
... ... @@ -43,23 +43,24 @@ class Command(BaseCommand):
43 43 now = datetime.datetime.now().strftime('%Y%m%d')
44 44 filename_base = '%s_%s' % ('walenty', now)
45 45 realizations_path = os.path.join(WALENTY_PATH,
46   - ' %s_%s.txt' % ('phrase_types_expand', now))
  46 + '%s_%s.txt' % ('phrase_types_expand', now))
47 47 checked_stats_path = os.path.join(WALENTY_PATH, u'%s_%s.txt' % (filename_base.replace('walenty', 'stats'),
48 48 'verified'))
49 49 ready_stats_path = os.path.join(WALENTY_PATH, u'%s_%s.txt' % (filename_base.replace('walenty', 'stats'),
50 50 'all'))
51   - create_realizations_file(realizations_path)
52 51 try:
53 52 all_stats = Counter({})
54 53 verified_stats = Counter({})
55 54 base_path = os.path.join(WALENTY_PATH, filename_base)
56 55 archive = tarfile.open(base_path + '.tar.gz', 'w:gz')
57 56 os.chdir(WALENTY_PATH)
58   - archive.add(os.path.basename(realizations_path))
59 57 for pos in POS.objects.exclude(tag=u'unk').order_by('priority'):
60 58 pos_stats = create_pos_archive_and_get_stats(archive, pos, filename_base)
61 59 all_stats = all_stats + Counter(pos_stats['all'])
62 60 verified_stats = verified_stats + Counter(pos_stats['verified'])
  61 +
  62 + create_realizations_file(realizations_path)
  63 + archive.add(os.path.basename(realizations_path))
63 64 write_stats(checked_stats_path, verified_stats)
64 65 archive.add(os.path.basename(checked_stats_path))
65 66 write_stats(ready_stats_path, all_stats)
... ... @@ -107,21 +108,21 @@ def create_pos_archive_and_get_stats(archive, pos, filename_base):
107 108 archive.add(name=checked_filename, arcname=os.path.join(u'%ss' % pos.tag, checked_filename))
108 109  
109 110 all_stats = get_stats(ready_statuses, pos.tag)
110   - all_stats_path = os.path.join(WALENTY_PATH, u'%s_%ss_%s' % (filename_base.replace('walenty', 'stats'),
111   - pos.tag, 'all'))
  111 + all_stats_path = os.path.join(WALENTY_PATH, u'%s_%ss_%s.txt' % (filename_base.replace('walenty', 'stats'),
  112 + pos.tag, 'all'))
112 113 write_stats(all_stats_path, all_stats)
113 114 all_stats_filename = os.path.basename(all_stats_path)
114 115 archive.add(name=all_stats_filename, arcname=os.path.join(u'%ss' % pos.tag, all_stats_filename))
115 116  
116 117 checked_stats = get_stats(checked_statuses, pos.tag)
117   - checked_stats_path = os.path.join(WALENTY_PATH, u'%s_%ss_%s' % (filename_base.replace('walenty', 'stats'),
118   - pos.tag, 'verified'))
  118 + checked_stats_path = os.path.join(WALENTY_PATH, u'%s_%ss_%s.txt' % (filename_base.replace('walenty', 'stats'),
  119 + pos.tag, 'verified'))
119 120 write_stats(checked_stats_path, checked_stats)
120 121 checked_stats_filename = os.path.basename(checked_stats_path)
121 122 archive.add(name=checked_stats_filename, arcname=os.path.join(u'%ss' % pos.tag, checked_stats_filename))
122 123 finally:
123   - os.remove(walenty_path_ready)
124   - os.remove(walenty_path_checked)
  124 +# os.remove(walenty_path_ready)
  125 +# os.remove(walenty_path_checked)
125 126 os.remove(all_stats_path)
126 127 os.remove(checked_stats_path)
127 128 return {'all': all_stats,
... ...
dictionary/static/js/lemma-view.js
... ... @@ -26,16 +26,19 @@ var nkjp_source_tab = ax_nkjp_source_vals;
26 26 var reflex_vals = [];
27 27 var neg_vals = [];
28 28 var pred_vals = [];
  29 + var opinion_vals = [];
29 30 var filter_aspect_val = '*';
30 31 var filter_reflex_val = '*';
31 32 var filter_neg_val = '*';
32 33 var filter_pred_val = '*';
  34 + var filter_opinion_val = '*';
33 35 var filter_position_val = '.*';
34 36 var filter_argument_val = '.*';
35 37 var prev_filter_aspect_val = '*';
36 38 var prev_filter_reflex_val = '*';
37 39 var prev_filter_neg_val = '*';
38 40 var prev_filter_pred_val = '*';
  41 + var prev_filter_opinion_val = '*';
39 42 var prev_filter_position_val = '.*';
40 43 var prev_filter_argument_val = '.*';
41 44 var prev_lemma_id = -1;
... ... @@ -86,10 +89,12 @@ function initiateFrameFilters()
86 89 window.reflex_vals = ['*'];
87 90 window.neg_vals = ['*'];
88 91 window.pred_vals = ['*'];
  92 + window.opinion_vals = ['*'];
89 93 $.merge(window.aspect_vals, result['aspect_options']);
90 94 $.merge(window.reflex_vals, result['reflex_options']);
91 95 $.merge(window.neg_vals, result['neg_options']);
92 96 $.merge(window.pred_vals, result['pred_options']);
  97 + $.merge(window.opinion_vals, result['opinion_options']);
93 98 },
94 99  
95 100 error_callback: function(xhr, status, error) {
... ... @@ -205,6 +210,7 @@ function filter_update(id)
205 210 window.filter_reflex_val = $('#frame_filter #reflex_filter').val();
206 211 window.filter_neg_val = $('#frame_filter #neg_filter').val();
207 212 window.filter_pred_val = $('#frame_filter #pred_filter').val();
  213 + window.filter_opinion_val = $('#frame_filter #opinion_filter').val();
208 214 window.filter_position_val = $('#frame_filter #position_filter').val();
209 215 window.filter_argument_val = $('#frame_filter #argument_filter').val();
210 216 }
... ... @@ -214,6 +220,7 @@ function filter_update(id)
214 220 window.prev_filter_reflex_val = $('#prev_frame_filter #reflex_filter').val();
215 221 window.prev_filter_neg_val = $('#prev_frame_filter #neg_filter').val();
216 222 window.prev_filter_pred_val = $('#prev_frame_filter #pred_filter').val();
  223 + window.prev_filter_opinion_val = $('#prev_frame_filter #opinion_filter').val();
217 224 window.prev_filter_position_val = $('#prev_frame_filter #position_filter').val();
218 225 window.prev_filter_argument_val = $('#prev_frame_filter #argument_filter').val();
219 226 }
... ... @@ -289,6 +296,22 @@ function draw_frames_filter(id)
289 296 frame_filter.appendChild(p);
290 297  
291 298 p = document.createElement('p');
  299 + text = document.createTextNode("Opinia: ");
  300 + p.appendChild(text);
  301 + select = document.createElement('select');
  302 + select.setAttribute('id', 'opinion_filter');
  303 + select.setAttribute('name', 'OPINIA');
  304 + p.appendChild(select);
  305 + for(var i=0; i<opinion_vals.length; i++)
  306 + {
  307 + var option = document.createElement('option');
  308 + option.setAttribute('value', opinion_vals[i]);
  309 + option.appendChild(document.createTextNode(opinion_vals[i]));
  310 + select.appendChild(option);
  311 + }
  312 + frame_filter.appendChild(p);
  313 +
  314 + p = document.createElement('p');
292 315 text = document.createTextNode("Typ frazy: ");
293 316 p.appendChild(text);
294 317 select = document.createElement('input');
... ... @@ -312,6 +335,7 @@ function draw_frames_filter(id)
312 335 $('#frame_filter #reflex_filter').val(window.filter_reflex_val);
313 336 $('#frame_filter #neg_filter').val(window.filter_neg_val);
314 337 $('#frame_filter #pred_filter').val(window.filter_pred_val);
  338 + $('#frame_filter #opinion_filter').val(window.filter_opinion_val);
315 339 $('#frame_filter #position_filter').val(window.filter_position_val);
316 340 $('#frame_filter #argument_filter').val(window.filter_argument_val);
317 341 }
... ... @@ -321,6 +345,7 @@ function draw_frames_filter(id)
321 345 $('#prev_frame_filter #reflex_filter').val(window.prev_filter_reflex_val);
322 346 $('#prev_frame_filter #neg_filter').val(window.prev_filter_neg_val);
323 347 $('#prev_frame_filter #pred_filter').val(window.prev_filter_pred_val);
  348 + $('#prev_frame_filter #opinion_filter').val(window.prev_filter_opinion_val);
324 349 $('#prev_frame_filter #position_filter').val(window.prev_filter_position_val);
325 350 $('#prev_frame_filter #argument_filter').val(window.prev_filter_argument_val);
326 351 }
... ... @@ -3287,6 +3312,7 @@ function filter_frames(schemas, filter_id)
3287 3312 var reflex_val = $('#'+filter_id+' #reflex_filter').val();
3288 3313 var neg_val = $('#'+filter_id+' #neg_filter').val();
3289 3314 var pred_val = $('#'+filter_id+' #pred_filter').val();
  3315 + var opinion_val = $('#'+filter_id+' #opinion_filter').val();
3290 3316 var position_val = $('#'+filter_id+' #position_filter').val().trim();
3291 3317 var argument_val = $('#'+filter_id+' #argument_filter').val().trim();
3292 3318 var filtered_frames = new Array();
... ... @@ -3301,7 +3327,8 @@ function filter_frames(schemas, filter_id)
3301 3327 if((schemas[i].characteristics[3] == aspect_val || aspect_val == '*')
3302 3328 && (schemas[i].characteristics[0] == reflex_val || reflex_val == '*')
3303 3329 && (schemas[i].characteristics[1] == neg_val || neg_val == '*')
3304   - && (schemas[i].characteristics[2] == pred_val || pred_val == '*'))
  3330 + && (schemas[i].characteristics[2] == pred_val || pred_val == '*')
  3331 + && (schemas[i].opinion == opinion_val || opinion_val == '*'))
3305 3332 {
3306 3333 frameMatch = false;
3307 3334 if(position_val)
... ...
dictionary/static/js/lemma_grid.js
... ... @@ -276,11 +276,15 @@ function filter_form_submit() {
276 276 {
277 277 window.prev_filter_reflex_val = result['reflex'];
278 278 window.prev_filter_neg_val = result['negativity'];
  279 + window.prev_filter_pred_val = result['predicativity'];
  280 + window.prev_filter_opinion_val = result['opinion'];
279 281 window.prev_filter_aspect_val = result['aspect'];
280 282 window.prev_filter_position_val = result['position'];
281 283 window.prev_filter_argument_val = result['argument'];
282 284 $('#prev_frame_filter #reflex_filter').val(result['reflex']);
283 285 $('#prev_frame_filter #neg_filter').val(result['negativity']);
  286 + $('#prev_frame_filter #pred_filter').val(result['predicativity']);
  287 + $('#prev_frame_filter #opinion_filter').val(result['opinion']);
284 288 $('#prev_frame_filter #aspect_filter').val(result['aspect']);
285 289 $('#prev_frame_filter #argument_filter').val(result['argument']);
286 290 $('#prev_frame_filter #position_filter').val(result['position']);
... ... @@ -290,11 +294,15 @@ function filter_form_submit() {
290 294 {
291 295 window.filter_reflex_val = result['reflex'];
292 296 window.filter_neg_val = result['negativity'];
  297 + window.filter_pred_val = result['predicativity'];
  298 + window.filter_opinion_val = result['opinion'];
293 299 window.filter_aspect_val = result['aspect'];
294 300 window.filter_position_val = result['position'];
295 301 window.filter_argument_val = result['argument'];
296 302 $('#frame_filter #reflex_filter').val(result['reflex']);
297 303 $('#frame_filter #neg_filter').val(result['negativity']);
  304 + $('#frame_filter #pred_filter').val(result['predicativity']);
  305 + $('#frame_filter #opinion_filter').val(result['opinion']);
298 306 $('#frame_filter #aspect_filter').val(result['aspect']);
299 307 $('#frame_filter #argument_filter').val(result['argument']);
300 308 $('#frame_filter #position_filter').val(result['position']);
... ...
dictionary/templates/lemma_preview.html
... ... @@ -137,6 +137,7 @@ function unselectPrevTd(id)
137 137 window.prev_filter_reflex_val = $('#prev_frame_filter #reflex_filter').val();
138 138 window.prev_filter_neg_val = $('#prev_frame_filter #neg_filter').val();
139 139 window.prev_filter_pred_val = $('#prev_frame_filter #pred_filter').val();
  140 + window.prev_filter_opinion_val = $('#prev_frame_filter #opinion_filter').val();
140 141 window.prev_filter_position_val = $('#prev_frame_filter #position_filter').val();
141 142 window.prev_filter_argument_val = $('#prev_frame_filter #argument_filter').val();
142 143  
... ... @@ -242,6 +243,7 @@ $(document).ready(function() {
242 243 $('#prev_frame_filter #reflex_filter').change(draw_filtered_prev_frames);
243 244 $('#prev_frame_filter #neg_filter').change(draw_filtered_prev_frames);
244 245 $('#prev_frame_filter #pred_filter').change(draw_filtered_prev_frames);
  246 + $('#prev_frame_filter #opinion_filter').change(draw_filtered_prev_frames);
245 247 $('#prev_frame_filter #argument_filter').change(draw_filtered_prev_frames);
246 248 $('#prev_frame_filter #position_filter').change(draw_filtered_prev_frames);
247 249 $('#prev_filter_frames_options #options').click(function(event) {
... ... @@ -253,13 +255,15 @@ $(document).ready(function() {
253 255 window.prev_filter_aspect_val = '*';
254 256 window.prev_filter_reflex_val = '*';
255 257 window.prev_filter_neg_val = '*';
256   - window.prev_filter_pred_val = '*';
  258 + window.prev_filter_pred_val = '*';
  259 + window.prev_filter_opinion_val = '*';
257 260 $('#prev_frame_filter #argument_filter').val(window.prev_filter_argument_val);
258 261 $('#prev_frame_filter #position_filter').val(window.prev_filter_position_val);
259 262 $('#prev_frame_filter #aspect_filter').val(window.prev_filter_aspect_val);
260 263 $('#prev_frame_filter #reflex_filter').val(window.prev_filter_reflex_val);
261 264 $('#prev_frame_filter #neg_filter').val(window.prev_filter_neg_val);
262 265 $('#prev_frame_filter #pred_filter').val(window.prev_filter_pred_val);
  266 + $('#prev_frame_filter #opinion_filter').val(window.prev_filter_opinion_val);
263 267 $('#prev_frame_filter #argument_filter').trigger('change');
264 268 });
265 269 draw_filtered_prev_frames();
... ...
dictionary/templates/new_frames.html
... ... @@ -38,6 +38,7 @@
38 38 window.filter_reflex_val = $('#frame_filter #reflex_filter').val();
39 39 window.filter_neg_val = $('#frame_filter #neg_filter').val();
40 40 window.filter_pred_val = $('#frame_filter #pred_filter').val();
  41 + window.filter_opinion_val = $('#frame_filter #opinion_filter').val();
41 42 window.filter_position_val = $('#frame_filter #position_filter').val();
42 43 window.filter_argument_val = $('#frame_filter #argument_filter').val();
43 44  
... ... @@ -289,6 +290,7 @@ $(document).ready(function() {
289 290 $('#frame_filter #reflex_filter').change(draw_filtered_new_frames);
290 291 $('#frame_filter #neg_filter').change(draw_filtered_new_frames);
291 292 $('#frame_filter #pred_filter').change(draw_filtered_new_frames);
  293 + $('#frame_filter #opinion_filter').change(draw_filtered_new_frames);
292 294 $('#frame_filter #argument_filter').change(draw_filtered_new_frames);
293 295 $('#frame_filter #position_filter').change(draw_filtered_new_frames);
294 296 $('#filter_frames_options #options').click(function(event) {
... ... @@ -301,12 +303,14 @@ $(document).ready(function() {
301 303 window.filter_reflex_val = '*';
302 304 window.filter_neg_val = '*';
303 305 window.filter_pred_val = '*';
  306 + window.filter_opinion_val = '*';
304 307 $('#frame_filter #argument_filter').val(window.filter_argument_val);
305 308 $('#frame_filter #position_filter').val(window.filter_position_val);
306 309 $('#frame_filter #aspect_filter').val(window.filter_aspect_val);
307 310 $('#frame_filter #reflex_filter').val(window.filter_reflex_val);
308 311 $('#frame_filter #neg_filter').val(window.filter_neg_val);
309 312 $('#frame_filter #pred_filter').val(window.filter_pred_val);
  313 + $('#frame_filter #opinion_filter').val(window.filter_opinion_val);
310 314 $('#frame_filter #argument_filter').trigger('change');
311 315 });
312 316  
... ...