def list(self, request): query = request.GET.get('query', '') response = {'text': query} start = time.time() trees = parse(query) if len(trees) > 0: tree = trees[0] response['parse'] = tree.pprint() response['concepts'] = list(extract_noun_phrases(tree)) response['entities'] = list(entities(query)) else: response['parse'] = None response['concepts'] = [] response['entities'] = [] # Add the status response["time"] = time.time() - start if response['parse'] is not None: status = 'parsed in %0.4f seconds; extracted %i concepts and %i entities' status = status % (response['time'], len(response['concepts']), len(response['entities'])) else: status = 'unable to parse input' response['status'] = status return Response(response)
def get_text_parse(self): """ Returns a string of the parse tree and the time it took to parse """ start = time.time() # Syntactic Parsing trees = parse(self.text) tree = trees[0].pprint() if len(trees) > 0 else None return (tree, time.time() - start)
def parse(self): """ Returns the parse of the question text. Memoizes for quick access. """ return parse(self.question)