def normalize_word(word): word = word.replace(get_node_value("normalize:replacements"), "") url = get_node_value("normalize:normalization_url") file = urllib.request.urlopen(url.format(urllib.parse.quote(word))) res = json.loads(file.read().decode()) return res['root']
def translate_sentence(sentence): if get_node_value("translation:enabled"): return Translator().translate( text=sentence, src=get_node_value("translation:languages:from"), dest=get_node_value("translation:languages:to")).text else: return sentence
def get_answer_from_api(question, tag, original): data = load_response(question, tag) keywords = question.split() # Take questions that have been answered and that are relevant to the language we are looking for filtered = list( filter(lambda data: data["is_answered"] and tag in data["tags"], data)) if (len(data) == 0): return get_node_value("answer:not_found"), 0.0 if len(filtered) == 0: filtered = data contains_keywords = group_by_keywords(keywords, filtered) relevance = sorted(contains_keywords.keys(), reverse=True)[0] best_option = contains_keywords[relevance] if ('accepted_answer_id' not in best_option): return 0.0, form_nice_answer(best_option, "Puudub", original), False else: accepted_answer = best_option['accepted_answer_id'] answer = load_answer(accepted_answer) return relevance, form_nice_answer(best_option, answer, original), False
def form_nice_answer(best_option, answer, original): if answer == "Puudub": return "Kahjuks ei leidnud aktsepteeritud vastust StackOver Flowst" return get_node_value("answer:template").format( original, best_option['title'], best_option['link'], parse_response(answer['body']))
def normalize(text): if get_node_value("normalize:enabled"): sentence_words = text.split() normalized = [] for word in sentence_words: normalized.append(normalize_word(word)) return " ".join(normalized) else: return text
def form_api_url(query, tag): return get_node_value("stack_app:url").format( get_node_value("stack_app:version"), get_node_value("stack_app:method"), get_node_value("stack_app:site"), urllib.parse.quote(query), urllib.parse.quote(tag))
def get_answer_ulr(id): return get_node_value('stack_app_answer:url').format( get_node_value('stack_app_answer:version'), get_node_value('stack_app_answer:method'), id, get_node_value('stack_app_answer:site'))