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'
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

View File

@ -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 %}