Spaces:
Running
Running
import gradio as gr | |
from sentence_transformers import SentenceTransformer | |
import torch | |
# Load the model | |
model = SentenceTransformer('panagoa/LaBSE-kbd-v0.1') | |
def cosine_similarity(vec1, vec2): | |
""" | |
Compute cosine similarity between two vectors using torch | |
""" | |
vec1 = torch.FloatTensor(vec1) | |
vec2 = torch.FloatTensor(vec2) | |
cos = torch.nn.CosineSimilarity(dim=0) | |
similarity = cos(vec1, vec2).item() | |
return similarity | |
def analyze_texts(text1, text2): | |
# Encode the texts | |
embeddings = model.encode([text1, text2]) | |
# Compute cosine similarity | |
similarity = cosine_similarity(embeddings[0], embeddings[1]) | |
# Create a result string | |
result = f"Similarity score: {similarity:.4f}" | |
return result | |
# Define examples | |
examples = [ | |
# Positive examples - same meaning in different languages | |
["As-tu vu le film le Titanic ?", "\"Титаник\" фильмыр плъэгъуа?"], | |
["A package arrived from Australia.", "Австралием къикI посылкэр къэсащ."], | |
["Ein Flugzeug fliegt über der Stadt.", "Кхъухьлъатэр къалэм щхьэщолъэт."], | |
["A proverb has meaning in society.", "Псалъэжьым жылагъуэм мыхьэнэ щиIэщ."], | |
# Negative examples - different meanings | |
["Австралием къикI посылкэр къэсащ.", "Кхъухьлъатэр къалэм щхьэщолъэт."], | |
["Австралием къикI посылкэр къэсащ.", "Махуэ дапщэкIэ Австралием ущыIэну?,"], | |
["A proverb has meaning in society.", "\"Титаник\" фильмыр плъэгъуа?"], | |
] | |
# Create Gradio interface | |
with gr.Blocks(title="LaBSE-kbd Cross-Lingual Sentence Similarity") as demo: | |
gr.Markdown("# Cross-Lingual Sentence Similarity with LaBSE-kbd") | |
gr.Markdown("This demo uses the panagoa/LaBSE-kbd-v0.1 model to compute similarity between sentences in different languages. The model supports 110+1 languages including Kabardian.") | |
with gr.Row(): | |
with gr.Column(): | |
text1 = gr.Textbox(label="Text 1", placeholder="Enter text in any language (e.g., Russian, English, Turkish)") | |
text2 = gr.Textbox(label="Text 2", placeholder="Enter text in any language (e.g., Kabardian, Russian, English)") | |
submit_btn = gr.Button("Compute Similarity") | |
with gr.Column(): | |
result = gr.Textbox(label="Results", lines=6) | |
gr.Examples(examples, inputs=[text1, text2]) | |
submit_btn.click(fn=analyze_texts, inputs=[text1, text2], outputs=[result]) | |
gr.Markdown("## About LaBSE-kbd-v0.1") | |
gr.Markdown(""" | |
It can be used to map 110+1 languages (including Kabardian) to a shared vector space, | |
allowing for cross-lingual sentence similarity comparisons. | |
The model is particularly effective at finding semantic similarities across different languages, | |
meaning you can compare the meaning of sentences regardless of what language they're written in. | |
""") | |
# Launch the app | |
if __name__ == "__main__": | |
demo.launch() |