wikicredibility / app.py
add spacing for more readability
e1bba7d
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]
green = flags[2]
unknown = flags[3]
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"
print("\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"
print("\n")
final_text += "There are " + str(len(green))+ " green flags: \n"
for green_ele in green:
final_text += green_ele[0] + " published by " + green_ele[1] + "\n"
print("\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()