Some fixes

This commit is contained in:
Stephan Porada 2019-11-25 11:51:56 +01:00
parent eeed9268bb
commit d23656ae80
2 changed files with 38 additions and 32 deletions

View File

@ -144,28 +144,28 @@ class CQiWrapper(CQiClient):
# Save them as list into on match entry at serial number 'i' # Save them as list into on match entry at serial number 'i'
ordered_matches = collections.OrderedDict() ordered_matches = collections.OrderedDict()
for i, match_pair in enumerate(match_boundaries): for i, match_pair in enumerate(match_boundaries):
ordered_matches[i] = ({'match_cpos_list': ordered_matches[i] = ({'match_cpos':
list(range(match_pair[0], list(range(match_pair[0],
match_pair[1] + 1))}) match_pair[1] + 1))})
# Saves cpos form all match entries into one list # Saves cpos form all match entries into one list
all_cpos_list = [] all_cpos_list = []
for key in ordered_matches.keys(): 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: # Saves all cpos from before and after context into the list:
# all_context_cpos_list # all_context_cpos_list
all_context_cpos_list = [] all_context_cpos_list = []
for key in ordered_matches.keys(): 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]) before_index = max([0, cpos_list[0] - self.context_len])
after_index = min([self.corpus_max_len, after_index = min([self.corpus_max_len,
cpos_list[-1] + self.context_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])) 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)) after_index + 1))
all_context_cpos_list += ordered_matches[key]['context_before_cpos_list'] all_context_cpos_list += ordered_matches[key]['left_context_cpos']
all_context_cpos_list += ordered_matches[key]['context_after_cpos_list'] all_context_cpos_list += ordered_matches[key]['right_context_cpos']
# Combines all_cpos_list with all_context_cpos_list as a sorted set # Combines all_cpos_list with all_context_cpos_list as a sorted set
all_cpos_list += all_context_cpos_list all_cpos_list += all_context_cpos_list
all_cpos_list = sorted(list(set(all_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 # loops over cpos in cpos_list which holds all match cpos
# Replaces one cpos with the corresponding cpos information created # Replaces one cpos with the corresponding cpos information created
# by self.get_cpos_infos(all_cpos_list) # by self.get_cpos_infos(all_cpos_list)
cpos_list = ordered_matches[key]['match_cpos_list'] cpos_list = ordered_matches[key]['match_cpos']
infos = [] infos = []
for cpos in cpos_list: for cpos in cpos_list:
info = {cpos: all_cpos_infos.get(cpos)} info = {cpos: all_cpos_infos.get(cpos)}
infos.append(info) infos.append(info)
ordered_matches[key]['match_cpos_list'] = infos ordered_matches[key]['match_cpos'] = infos
try: 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 # which holds all cpos of the before context
# Replaces one cpos with the corresponding cpos information created # Replaces one cpos with the corresponding cpos information created
# by self.get_cpos_infos(all_cpos_list) # by self.get_cpos_infos(all_cpos_list)
before_context_infos = [] 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: before_context_info = {context_before_cpos:
all_cpos_infos.get(context_before_cpos)} all_cpos_infos.get(context_before_cpos)}
before_context_infos.append(before_context_info) 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: except UnboundLocalError:
logger.warning('Context before cpos list is empty.') logger.warning('Context before cpos list is empty.')
pass pass
try: 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 # which holds all cpos of the before context
# Replaces one cpos with the corresponding cpos information created # Replaces one cpos with the corresponding cpos information created
# by self.get_cpos_infos(all_cpos_list) # by self.get_cpos_infos(all_cpos_list)
after_context_infos = [] 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: after_context_info = {context_after_cpos:
all_cpos_infos.get(context_after_cpos)} all_cpos_infos.get(context_after_cpos)}
after_context_infos.append(after_context_info) 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: except UnboundLocalError:
logger.warning('Context after cpos list is empty.') logger.warning('Context after cpos list is empty.')
pass pass

View File

@ -119,33 +119,39 @@
if (results === null) { if (results === null) {
M.toast({html: 'Query has no results!'}); M.toast({html: 'Query has no results!'});
} else { } 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)) { for (let [key, hit] of Object.entries(results)) {
var left_context = hit['context_before_cpos_list'] var left_context = hit['left_context_cpos']
var match = hit['match_cpos_list'] var match = hit['match_cpos']
var right_context = hit['context_after_cpos_list'] var right_context = hit['right_context_cpos']
var l_text = getResultInfos(left_context) var l_text = getResultInfos(left_context, 'word')
var m_text = getResultInfos(match) var m_text = getResultInfos(match, 'word')
var r_text = getResultInfos(right_context) var r_text = getResultInfos(right_context, 'word')
html_txt += '<tr><td>' + l_text + '</td><td>' + m_text + '</td><td>' + r_text + '</td></tr>'; 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 = ''; l_text = '';
m_text = ''; m_text = '';
} }
html_txt += '</table>'; html_txt += '</table>';
console.log(html_txt);
queryResultsElement.innerHTML = html_txt; queryResultsElement.innerHTML = html_txt;
} }
}); });
function getResultInfos(matchObject) { function getResultInfos(matchObject, info_key, slice) {
infos = ''; var infos = [];
for (var key in matchObject) { for (let [infoKey, infoValue] of Object.entries(matchObject)) {
var token = matchObject[key]; var token = infoValue;
for (var key in token) { for (let key in token) {
infos += token[key]['word'] + ' '; 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> </script>
{% endblock %} {% endblock %}