import gradio as gr from bs4 import BeautifulSoup from bs4.element import Comment import bibtexparser from dateutil import parser import json import requests import tldextract from collections import defaultdict import re import mwparserfromhell from transformers import pipeline from source_eval_model import check_source_quality from talk_page_analysis import tone_talkpage def combined_function(wiki_url): tones = tone_talkpage(wiki_url) flags = check_source_quality(wiki_url) negative_tones = set(["anger", "disgust", "fear", "sadness", "pessimism"]) final_text = "" if set(i[0] for i in tones).intersection(negative_tones): final_text += "Beware! This page might be controversial among editors. We have detected extreme emotions in the Talk page. The tones detected and their probabilities are: \n" else: final_text += "The tones detected and their probabilities are: \n" for tone in tones: final_text += tone[0] + ": " + str(round(tone[1]*100, 2)) + "% \n" red = flags[0] yellow = flags[1] unknown = flags[2] final_text += "There are " + str(len(red))+ " red flags: \n" for red_ele in red: final_text += red_ele[0] + " published by " + red_ele[1] + "\n" final_text += "There are " + str(len(yellow))+ " yellow flags: \n" for yel_ele in yellow: final_text += yel_ele[0] + " published by " + yel_ele[1] + "\n" final_text += "There are " + str(len(unknown))+ " unknowns: \n" for unk_ele in unknown: final_text += unk_ele[0] return final_text iface = gr.Interface(fn=combined_function, inputs="text", outputs="text") iface.launch()