def postag_api(version=1): """ API to parse text and return POS tagged tokens in a verbose JSON format """ if not (1 <= version <= 1): # Unsupported version return better_jsonify(valid=False, reason="Unsupported version") try: text = text_from_request(request) except Exception: return better_jsonify(valid=False, reason="Invalid request") with SessionContext(commit=True) as session: pgs, stats, register = TreeUtility.tag_text(session, text, all_names=True) # Amalgamate the result into a single list of sentences pa: List[List[TokenDict]] = [] if pgs: # Only process the first paragraph, if there are many of them if len(pgs) == 1: pa = pgs[0] else: # More than one paragraph: gotta concatenate 'em all for pg in pgs: pa.extend(pg) for sent in pa: # Transform the token representation into a # nice canonical form for outside consumption # err = any("err" in t for t in sent) for t in sent: canonicalize_token(t) # Return the tokens as a JSON structure to the client return better_jsonify(valid=True, result=pa, stats=stats, register=register)
def postag_api(version=1): """ API to parse text and return POS tagged tokens in a verbose JSON format """ if not (1 <= version <= 1): # Unsupported version return better_jsonify(valid=False, reason="Unsupported version") try: text = text_from_request(request) except: return better_jsonify(valid=False, reason="Invalid request") with SessionContext(commit=True) as session: pgs, stats, register = TreeUtility.tag_text(session, text, all_names=True) # Amalgamate the result into a single list of sentences if pgs: # Only process the first paragraph, if there are many of them if len(pgs) == 1: pgs = pgs[0] else: # More than one paragraph: gotta concatenate 'em all pa = [] for pg in pgs: pa.extend(pg) pgs = pa for sent in pgs: # Transform the token representation into a # nice canonical form for outside consumption # err = any("err" in t for t in sent) for t in sent: canonicalize_token(t) # Return the tokens as a JSON structure to the client return better_jsonify(valid=True, result=pgs, stats=stats, register=register)
def analyze_api(version=1): """ Analyze text manually entered by the user, i.e. not coming from an article. This is a lower level API used by the Greynir web front-end. """ if not (1 <= version <= 1): return better_jsonify(valid=False, reason="Unsupported version") # try: text = text_from_request(request) # except: # return better_jsonify(valid=False, reason="Invalid request") with SessionContext(commit=True) as session: pgs, stats, register = TreeUtility.tag_text(session, text, all_names=True) # Return the tokens as a JSON structure to the client return better_jsonify(valid=True, result=pgs, stats=stats, register=register)