NEw analysis stuff

This commit is contained in:
Stephan Porada
2020-01-27 16:11:34 +01:00
parent b4427cd3ec
commit 4b0e9392a7
3 changed files with 97 additions and 71 deletions

View File

@ -44,7 +44,6 @@ class CQiWrapper(CQiClient):
'''
p_attrs = self.corpus_positional_attributes(self.corpus_name)
struct_attrs = self.corpus_structural_attributes(self.corpus_name)
logger.warning('struct_attrs: {}'.format(struct_attrs))
self.attr_strings = {}
self.attr_strings['positional_attrs'] = {}
self.attr_strings['struct_attrs'] = {}
@ -137,9 +136,15 @@ class CQiWrapper(CQiClient):
self.attr_strings['positional_attrs']['word']
)
self.nr_matches = min(result_len, self.match_count)
if self.nr_matches == 0:
if self.match_count == 0:
logger.warning('Query resulted in 0 matches.')
return None
self.results = {'code': 0,
'result': {'matches': [],
'match_count': self.match_count,
'cpos_lookup': {},
'text_lookup': {}}
}
return self.results
else:
# Get match cpos boundries
# match_boundries shows the start and end cpos of one match as a
@ -200,7 +205,7 @@ class CQiWrapper(CQiClient):
'result': {'matches': all_matches,
'match_count': self.match_count,
'cpos_lookup': all_cpos_infos,
'text_lookup': text_lookup,}
'text_lookup': text_lookup}
}
return self.results

View File

@ -20,7 +20,7 @@ corpus_analysis_clients = {}
@socketio.on('corpus_analysis_init')
@login_required
def init_corpus_analysis(corpus_id):
logger.warning("a")
logger.warning("Initiating corpus analysis.")
socketio.start_background_task(corpus_analysis_session_handler,
current_app._get_current_object(),
corpus_id, current_user.id, request.sid)
@ -45,27 +45,32 @@ def corpus_analysis(message):
client.query_subcorpus(query)
except Exception as e:
logger.warning(e)
socketio.emit('corpus_analysis', str(e), room=request.sid)
response = str(e)
if response == "CQI_CQP_ERROR_GENERAL":
response = {'code': 1,
'result': {'matches': [],
'match_count': 0,
'cpos_lookup': {},
'text_lookup': {}}
}
socketio.emit('corpus_analysis_query', response, room=request.sid)
else:
logger.warning('====== Initial query {} ======'.format(query))
results = client.show_query_results(result_len=result_len,
context_len=context_len,
result_offset=result_offset)
result_offset += result_len # initial offfset is plus result len because client.show_query_results has been already executed once
socketio.emit('corpus_analysis', results, room=request.sid)
response = client.show_query_results(result_len=result_len,
context_len=context_len,
result_offset=result_offset)
result_offset += result_len # initial offset is plus result len because client.show_query_results has already been executed once
socketio.emit('corpus_analysis_query', response, room=request.sid)
while result_offset < client.match_count:
logger.warning('====== While loop start for {} ======'.format(query))
logger.warning('result_offset: {}'.format(result_offset))
results = client.show_query_results(result_len=result_len,
context_len=context_len,
result_offset=result_offset)
# results['matches'].extend(results_append['matches'])
# results['cpos_lookup'].update(results_append['cpos_lookup'])
# results['text_lookup'].update(results_append['text_lookup'])
response = client.show_query_results(result_len=result_len,
context_len=context_len,
result_offset=result_offset)
result_offset += result_len
result_offset = min(result_offset, client.match_count)
logger.warning('result_offset end of while loop: {}'.format(result_offset))
socketio.emit('corpus_analysis', results, room=request.sid)
socketio.emit('corpus_analysis_query', response, room=request.sid)
@socketio.on('inspect_match')