File size: 3,721 Bytes
1e60bec
 
 
 
1af8a4a
1e60bec
77eab50
37210a6
8f1bc12
1e60bec
 
 
 
 
 
 
8f1bc12
1e60bec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d8eee50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from heapq import nlargest
import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from string import punctuation
import gradio as gr



# Stopwords
stopwords = list(STOP_WORDS)
nlp = spacy.load('en_core_web_sm')
punctuation = punctuation + '\n'
import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from string import punctuation

# Prediction 
def prediction(text):
  doc = nlp(text)
  tokens = [token.text for token in doc]
  word_frequencies = {}
  for word in doc:
    if word.text.lower() not in stopwords:
      if word.text.lower() not in punctuation:
        if word.text not in word_frequencies.keys():
          word_frequencies[word.text] = 1
        else:
          word_frequencies[word.text] += 1
  max_frequency = max(word_frequencies.values())
  for word in word_frequencies.keys():
    word_frequencies[word] = word_frequencies[word]/max_frequency
  sentence_tokens = [sent for sent in doc.sents]
  sentence_scores = {}
  for sent in sentence_tokens:
    for word in sent:
      if word.text.lower() in word_frequencies.keys():
        if sent not in sentence_scores.keys():
          sentence_scores[sent] = word_frequencies[word.text.lower()]
        else:
          sentence_scores[sent] += word_frequencies[word.text.lower()]
  select_length = int(len(sentence_tokens)*0.3)
  summary = nlargest(select_length, sentence_scores, key = sentence_scores.get)
  return summary

#text = """
# Maria Sharapova has basically no friends as tennis players on the WTA Tour. The Russian player has no problems in openly speaking about it and in a recent interview she said: 'I don't really hide any feelings too much. 
# I think everyone knows this is my job here. When I'm on the courts or when I'm on the court playing, I'm a competitor and I want to beat every single person whether they're in the locker room or across the net.
# So I'm not the one to strike up a conversation about the weather and know that in the next few minutes I have to go and try to win a tennis match. 
#I'm a pretty competitive girl. I say my hellos, but I'm not sending any players flowers as well. Uhm, I'm not really friendly or close to many players.
# I have not a lot of friends away from the courts.' When she said she is not really close to a lot of players, is that something strategic that she is doing? Is it different on the men's tour than the women's tour? 'No, not at all.
 #I think just because you're in the same sport doesn't mean that you have to be friends with everyone just because you're categorized, you're a tennis player, so you're going to get along with tennis players. 
 #I think every person has different interests. I have friends that have completely different jobs and interests, and I've met them in very different parts of my life.
 #I think everyone just thinks because we're tennis players we should be the greatest of friends. But ultimately tennis is just a very small part of what we do. 
 #There are so many other things that we're interested in, that we do.'
 #"""
#predicted_label, score = occ_predict("img1.jpg")
#inputs = gr.inputs.text(label)
#label = gr.outputs.Label(num_top_classes=2)
#EXAMPLES = ["img1.png","img2.png","img3.png","img10.png","img8.png","img9.png"]
#DESCRIPTION = "Occlusion means the act of closing, blocking or shutting something or the state of being closed or blocked"
#summary = prediction(text)
#print(summary)

demo_app = gr.Interface(
    fn=prediction, 
    inputs=gr.input.text(label = " Text", max_lines = 20),
    outputs= "text",
    title = "Text Summarization",
    #description = DESCRIPTION,
    examples = EXAMPLES,
    cache_example = True,
    live = True,
    theme = 'huggingface'
)
demo_app.launch(debug=True, enable_queue = True)