File size: 1,304 Bytes
60fcf3b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fe6b89
60fcf3b
 
 
 
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
# !pip install gradio
# !pip install -q keybert

from keybert import KeyBERT
import gradio as gr

def greet(text, ngram_min, ngram_max, top_n, diversity, seed_keywords):
  model_name = 'all-mpnet-base-v2'
  model = KeyBERT(model_name)

  if ngram_min > ngram_max:
    return "ngram_min should no greater than ngram_max!"
  else:
    keywords = model.extract_keywords(text, keyphrase_ngram_range=(ngram_min, ngram_max), top_n=top_n, use_mmr=True,
                                      diversity=diversity, seed_keywords=seed_keywords)
    res = ""
    for keyword in keywords:
      res += keyword[0] + "\n"
    return res


demo = gr.Interface(
    fn=greet,
    inputs=[gr.Textbox(placeholder="Put the text here and click 'submit' to get the keyphrases", label="Input Text"), gr.Slider(1, 5, step = 1, label="Minimum number of words in a keyphrase"), gr.Slider(1, 5, step = 1, label="Maximum number of words in a keyphrase"),
            gr.Slider(1, 10, step = 1, label="Number of keyphrases"), gr.Slider(0, 1, step = 0.05, label="Diversity of the returned keyphrases"),
            gr.Textbox(placeholder='This field can be empty', label="Seed Keyword:\nguide the extraction by steering the similarities towards it.")],
    outputs=[gr.Textbox(label='Extracted Keyphrases')],
)
demo.launch(debug=True)