File size: 1,544 Bytes
ef2d525
08aa470
 
ef2d525
 
08aa470
6db9bc4
 
 
 
 
 
 
 
 
 
 
084c06a
6db9bc4
 
084c06a
ef2d525
084c06a
079d879
ef2d525
21b168b
 
3efeb73
ef2d525
a857c3a
ef2d525
21b168b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3efeb73
21b168b
 
 
 
 
3efeb73
21b168b
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
from gensim.models import KeyedVectors
import gradio as gr

word_vectors_path = "classical_bo.wordvectors"
wv = KeyedVectors.load(str(word_vectors_path), mmap='r')

def format_to_html(sim_output):
  table = """
  <table>
    <tr>
      <th>Word</th>
      <th>Similarity (0-1)</th>
    </tr>
    {}
  </table>
  """
  rows = ""
  for word, sim in sim_output:
    rows += f"<tr><td>{word}</td><td style='text-align: right'>{round(sim, 4)}</td></tr>"
  return table.format(rows)

def find_most_similar(word):
  sim_output = wv.most_similar(word)
  return format_to_html(sim_output)

def find_similarity(wordA, wordB):
  return max([wv.similarity(wordA, wordB), 0])

title = "Classical Bo Word2Vec word vectors"
examples = ["སེམས་", "བླ་མ་", "སྟོབས་"]

print(find_similarity(examples[0], examples[1]))

demo = gr.Interface(
  fn=find_similarity,
  inputs=[gr.inputs.Textbox("Word A"), gr.inputs.Textbox("Word B")],
  outputs="number",
  title=title,
  # examples=examples
).launch()

# demo = gr.Blocks()

# with demo:
#   # Find top 10 most similar words
#   print(gr.__version__)
#   word = gr.inputs.Textbox("Word")
#   top_10_similar_words = gr.inputs.HTML()
#   b1 = gr.Button("Find similar words")
#   b1.click(find_most_similar, inputs=word, outputs=top_10_similar_words)
  
#   wordA = gr.inputs.Textbox("Word A")
#   wordB = gr.inputs.Textbox("Word B")
#   similarity = gr.Number()
#   b2 = gr.Button("Find similarity")
#   b2.click(similarity, inputs=[wordA, wordB], outputs=similarity)
  
# demo.launch()