File size: 2,862 Bytes
50fdd96 062d5b7 50fdd96 964330b 062d5b7 50fdd96 948505c 50fdd96 964330b 50fdd96 964330b 50fdd96 062d5b7 50fdd96 948505c 964330b 062d5b7 c92b6f6 68721f5 4297bcd 68721f5 bdd5c64 c92b6f6 bdd5c64 c92b6f6 68721f5 bdd5c64 68721f5 bdd5c64 68721f5 bdd5c64 |
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 |
import numpy as np
import gradio as gr
from sentence_transformers import SentenceTransformer, util
# Function to load the selected model
def load_model(model_name):
return SentenceTransformer(model_name)
# Function to compute similarity and classify relationship
def predict(original_sentence_input, *sentences_to_compare):
model_name = "sartifyllc/African-Cross-Lingua-Embeddings-Model"
model = load_model(model_name)
result = {
"Model Name": model_name,
"Original Sentence": original_sentence_input,
"Sentences to Compare": sentences_to_compare,
"Similarity Scores": {}
}
if original_sentence_input and sentences_to_compare:
sentences = [original_sentence_input] + list(sentences_to_compare)
embeddings = model.encode(sentences)
original_embedding = embeddings[0]
for i, sentence in enumerate(sentences_to_compare, start=1):
similarity_score = util.pytorch_cos_sim(original_embedding, embeddings[i]).item()
result["Similarity Scores"][f"Sentence {i}"] = similarity_score
return result
# Define inputs and outputs for Gradio interface
model_name_display = gr.Markdown(value="**Model Name**: sartifyllc/African-Cross-Lingua-Embeddings-Model")
original_sentence_input = gr.Textbox(lines=2, placeholder="Enter the original sentence here...", label="Original Sentence")
# Initial sentence comparison inputs
sentence_to_compare_inputs = [
gr.Textbox(lines=2, placeholder="Enter the sentence you want to compare...", label="Sentence to Compare 1"),
gr.Textbox(lines=2, placeholder="Enter the sentence you want to compare...", label="Sentence to Compare 2"),
gr.Textbox(lines=2, placeholder="Enter the sentence you want to compare...", label="Sentence to Compare 3")
]
num_sentences_input = gr.Slider(minimum=1, maximum=10, step=1, value=3, label="Number of Sentences to Compare")
outputs = gr.JSON(label="Detailed Similarity Scores")
# Function to dynamically update the interface
def update_interface(num_sentences):
return [gr.Textbox(lines=2, placeholder="Enter the sentence you want to compare...", label=f"Sentence to Compare {i}") for i in range(1, num_sentences + 1)]
def create_interface():
inputs_dynamic = [model_name_display, original_sentence_input, num_sentences_input]
inputs_dynamic += update_interface(3)
return gr.Interface(
fn=predict,
title="African Cross-Lingua Embeddings Model's Demo",
description="Compute the semantic similarity across various sentences among any African Languages using African-Cross-Lingua-Embeddings-Model.",
inputs=inputs_dynamic,
outputs=outputs,
live=False,
allow_flagging="never"
)
# Create and launch the initial interface
interface = create_interface()
interface.launch(debug=True, share=True)
|