File size: 1,917 Bytes
2c542cb
ec83357
 
a511cad
 
 
 
 
 
 
 
ec83357
c39e07e
eab8d68
2c7b20a
eab8d68
 
 
73b44db
 
 
 
 
 
 
 
 
2c7b20a
73b44db
 
4b5ea7f
 
73b44db
 
 
e1bba7d
 
73b44db
 
 
e1bba7d
 
4b5ea7f
 
 
e1bba7d
4b5ea7f
73b44db
 
 
 
 
2c7b20a
 
 
eab8d68
36fd41c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()