mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 18:42:45 +00:00 
			
		
		
		
	Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development
This commit is contained in:
		| @@ -144,28 +144,28 @@ class CQiWrapper(CQiClient): | ||||
|         # Save them as list into on match entry at serial number 'i' | ||||
|         ordered_matches = collections.OrderedDict() | ||||
|         for i, match_pair in enumerate(match_boundaries): | ||||
|             ordered_matches[i] = ({'match_cpos_list': | ||||
|             ordered_matches[i] = ({'match_cpos': | ||||
|                                    list(range(match_pair[0], | ||||
|                                               match_pair[1] + 1))}) | ||||
|         # Saves cpos form all match entries into one list | ||||
|         all_cpos_list = [] | ||||
|         for key in ordered_matches.keys(): | ||||
|             all_cpos_list += ordered_matches[key]['match_cpos_list'] | ||||
|             all_cpos_list += ordered_matches[key]['match_cpos'] | ||||
|  | ||||
|         # Saves all cpos from before and after context into the list: | ||||
|         # all_context_cpos_list | ||||
|         all_context_cpos_list = [] | ||||
|         for key in ordered_matches.keys(): | ||||
|             cpos_list = ordered_matches[key]['match_cpos_list'] | ||||
|             cpos_list = ordered_matches[key]['match_cpos'] | ||||
|             before_index = max([0, cpos_list[0] - self.context_len]) | ||||
|             after_index = min([self.corpus_max_len, | ||||
|                                cpos_list[-1] + self.context_len]) | ||||
|             ordered_matches[key]['context_before_cpos_list'] = list(range(before_index, | ||||
|             ordered_matches[key]['left_context_cpos'] = list(range(before_index, | ||||
|                                                                           cpos_list[0])) | ||||
|             ordered_matches[key]['context_after_cpos_list'] = list(range(cpos_list[-1] + 1, | ||||
|             ordered_matches[key]['right_context_cpos'] = list(range(cpos_list[-1] + 1, | ||||
|                                                                          after_index + 1)) | ||||
|             all_context_cpos_list += ordered_matches[key]['context_before_cpos_list'] | ||||
|             all_context_cpos_list += ordered_matches[key]['context_after_cpos_list'] | ||||
|             all_context_cpos_list += ordered_matches[key]['left_context_cpos'] | ||||
|             all_context_cpos_list += ordered_matches[key]['right_context_cpos'] | ||||
|         # Combines all_cpos_list with all_context_cpos_list as a sorted set | ||||
|         all_cpos_list += all_context_cpos_list | ||||
|         all_cpos_list = sorted(list(set(all_cpos_list))) | ||||
| @@ -178,37 +178,37 @@ class CQiWrapper(CQiClient): | ||||
|             # loops over cpos in cpos_list which holds all match cpos | ||||
|             # Replaces one cpos with the corresponding cpos information created | ||||
|             # by self.get_cpos_infos(all_cpos_list) | ||||
|             cpos_list = ordered_matches[key]['match_cpos_list'] | ||||
|             cpos_list = ordered_matches[key]['match_cpos'] | ||||
|             infos = [] | ||||
|             for cpos in cpos_list: | ||||
|                 info = {cpos: all_cpos_infos.get(cpos)} | ||||
|                 infos.append(info) | ||||
|             ordered_matches[key]['match_cpos_list'] = infos | ||||
|             ordered_matches[key]['match_cpos'] = infos | ||||
|             try: | ||||
|                 # loops over cpos in ordered_matches[key]['context_before_cpos_list'] | ||||
|                 # loops over cpos in ordered_matches[key]['left_context_cpos'] | ||||
|                 # which holds all cpos of the before context | ||||
|                 # Replaces one cpos with the corresponding cpos information created | ||||
|                 # by self.get_cpos_infos(all_cpos_list) | ||||
|                 before_context_infos = [] | ||||
|                 for context_before_cpos in ordered_matches[key]['context_before_cpos_list']: | ||||
|                 for context_before_cpos in ordered_matches[key]['left_context_cpos']: | ||||
|                     before_context_info = {context_before_cpos: | ||||
|                                            all_cpos_infos.get(context_before_cpos)} | ||||
|                     before_context_infos.append(before_context_info) | ||||
|                 ordered_matches[key]['context_before_cpos_list'] = before_context_infos | ||||
|                 ordered_matches[key]['left_context_cpos'] = before_context_infos | ||||
|             except UnboundLocalError: | ||||
|                 logger.warning('Context before cpos list is empty.') | ||||
|                 pass | ||||
|             try: | ||||
|                 # loops over cpos in ordered_matches[key]['context_after_cpos_list'] | ||||
|                 # loops over cpos in ordered_matches[key]['right_context_cpos'] | ||||
|                 # which holds all cpos of the before context | ||||
|                 # Replaces one cpos with the corresponding cpos information created | ||||
|                 # by self.get_cpos_infos(all_cpos_list) | ||||
|                 after_context_infos = [] | ||||
|                 for context_after_cpos in ordered_matches[key]['context_after_cpos_list']: | ||||
|                 for context_after_cpos in ordered_matches[key]['right_context_cpos']: | ||||
|                     after_context_info = {context_after_cpos: | ||||
|                                           all_cpos_infos.get(context_after_cpos)} | ||||
|                     after_context_infos.append(after_context_info) | ||||
|                 ordered_matches[key]['context_after_cpos_list'] = after_context_infos | ||||
|                 ordered_matches[key]['right_context_cpos'] = after_context_infos | ||||
|             except UnboundLocalError: | ||||
|                 logger.warning('Context after cpos list is empty.') | ||||
|                 pass | ||||
|   | ||||
| @@ -119,33 +119,39 @@ | ||||
|     if (results === null) { | ||||
|       M.toast({html: 'Query has no results!'}); | ||||
|     } else { | ||||
|       html_txt = '<table class="highlight"> <thead><tr><th>Left context</th><th>Match</th><th>Right Context</th></tr></thead>'; | ||||
|       console.log(results); | ||||
|       html_txt = '<table class="highlight"> <thead><tr><th>Title</th><th>Left context</th><th>Match</th><th>Right Context</th></tr></thead>'; | ||||
|       for (let [key, hit] of Object.entries(results)) { | ||||
|         var left_context = hit['context_before_cpos_list'] | ||||
|         var match = hit['match_cpos_list'] | ||||
|         var right_context = hit['context_after_cpos_list'] | ||||
|         var l_text = getResultInfos(left_context) | ||||
|         var m_text = getResultInfos(match) | ||||
|         var r_text = getResultInfos(right_context) | ||||
|         html_txt += '<tr><td>' + l_text + '</td><td>' + m_text + '</td><td>' + r_text + '</td></tr>'; | ||||
|         var left_context = hit['left_context_cpos'] | ||||
|         var match = hit['match_cpos'] | ||||
|         var right_context = hit['right_context_cpos'] | ||||
|         var l_text = getResultInfos(left_context, 'word') | ||||
|         var m_text = getResultInfos(match, 'word') | ||||
|         var r_text = getResultInfos(right_context, 'word') | ||||
|         var match_source = getResultInfos(match, 'text_title', 1) | ||||
|         html_txt += '<tr> <td>' + match_source + '</td><td>' + l_text + '</td><td>' + m_text + '</td><td>' + r_text + '</td></tr>'; | ||||
|         l_text = ''; | ||||
|         m_text = ''; | ||||
|       } | ||||
|       html_txt += '</table>'; | ||||
|       console.log(html_txt); | ||||
|       queryResultsElement.innerHTML = html_txt; | ||||
|     } | ||||
|   }); | ||||
|   function getResultInfos(matchObject) { | ||||
|     infos = ''; | ||||
|     for (var key in matchObject) { | ||||
|         var token = matchObject[key]; | ||||
|         for (var key in token) { | ||||
|           infos += token[key]['word'] + ' '; | ||||
|   function getResultInfos(matchObject, info_key, slice) { | ||||
|     var infos = []; | ||||
|     for (let [infoKey, infoValue] of Object.entries(matchObject)) { | ||||
|         var token = infoValue; | ||||
|         for (let key in token) { | ||||
|           infos.push(token[key][info_key]); | ||||
|         } | ||||
|         var infos = infos; | ||||
|     } | ||||
|     return infos | ||||
|     if (slice) { | ||||
|       console.log(infos); | ||||
|       var infos = infos[slice]; | ||||
|       return infos; | ||||
|     } else { | ||||
|       return infos; | ||||
|     } | ||||
|   } | ||||
| </script> | ||||
| {% endblock %} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user