LaBSE-kbd-v0.1 / app.py
panagoa's picture
Add application file
b12348e
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()