The first sentence embedding model specifically designed for Romanised Indian code-mixed text.
This is Tanglish — Tamil and English mixed in Roman script. It's how 80+ million Tamil speakers communicate on WhatsApp, YouTube, Instagram, and Reddit every day.
Existing sentence transformers fail on this text because they were trained on formal multilingual corpora with no exposure to code-switching patterns. We built the model that understands how Indians actually type.
TanglishSTS Benchmark
We introduce Morgan-Tanglish-v7 — the first human-annotated semantic similarity benchmark for Romanised Tamil-English code-mixed text. 325 sentence pairs scored 0-5 by a native Tamil speaker across 4 similarity levels.
Main Results (Spearman Correlation ↑)
Model
TanglishSTS
Nuanced STS
Domain Avg
Parameters
Morgan-Tanglish-v7(ours)
0.8689
0.5451
0.7446
118M
L3Cube-IndicSBERT
0.7642
0.1514
0.5729
—
BAAI/bge-m3
0.7583
0.1204
0.6804
570M
all-MiniLM-L6-v2
0.7510
0.2062
0.6094
22.7M
paraphrase-multilingual-MiniLM-L12-v2
0.7279
0.2788
0.5930
118M
Key results:
+15.79 points over all-MiniLM-L6-v2 on TanglishSTS
+11.06 points over BAAI/bge-m3 (570M params) with only 118M params
+10.47 points over L3Cube-IndicSBERT (existing Indian model)
4.5x better nuanced similarity understanding than BAAI/bge-m3
Domain-Specific Performance
Domain
all-MiniLM
bge-m3
IndicSBERT
Morgan-tanglish-st-1
Gym/Fitness
0.667
0.660
0.478
0.782
Movies
0.631
0.810
0.660
0.861
College
0.732
0.773
0.591
0.866
Work/Salary
0.709
0.743
0.597
0.825
Tech (GPU/Phone)
0.628
0.728
0.635
0.701
Social Media
0.298
0.485
0.443
0.385
Food/Family
0.624
0.668
0.698
0.702
Cricket
0.635
0.657
0.462
0.781
Startups
0.602
0.614
0.545
0.750
Wins 8 out of 9 domains. Social media domain remains competitive with ongoing improvements in v2.
Visualizations
Embedding Space (t-SNE)
Sentences cluster by semantic domain without any explicit domain labels — the model learns domain structure purely from meaning.
t-SNE Embedding Space
Benchmark Comparison
Benchmark Comparison
Ablation Study — Every Component's Contribution
Ablation Study
Similarity Score Distribution
How well each model separates human similarity scores 0-5. Better models show clear separation between score levels.
Score Distribution
Ranking Quality
IDENTICAL-SIMILAR gap determines RAG retrieval accuracy. Larger gap = better document retrieval.
Ranking Quality
Usage
Basic Sentence Similarity
python
1from sentence_transformers import SentenceTransformer
2from sentence_transformers.util import cos_sim
34model = SentenceTransformer("vishnuexe/Morgan-Tanglish-v7")56sentences =[7"bro office ku late ah vanthen romba tired ah iruku",8"machan office reach aaga late aachu semma tiredness ah iruku",9"nalla movie da climax twist semma mass irundhuchu",10]1112embeddings = model.encode(sentences)1314# embeddings[0] and embeddings[1] → HIGH similarity (same meaning)15# embeddings[0] and embeddings[2] → LOW similarity (different topic)16print(cos_sim(embeddings[0], embeddings[1]))# ~0.7817print(cos_sim(embeddings[0], embeddings[2]))# ~0.03
Semantic Search / RAG
python
1from sentence_transformers import SentenceTransformer
2from sentence_transformers.util import semantic_search
34model = SentenceTransformer("vishnuexe/Morgan-Tanglish-v7")56# knowledge base in Tanglish7corpus =[8"office la overtime pannanum nu manager sonna",9"salary hike this quarter expect panna vendam nu HR sonnanga",10"work from home policy change aagudhu next month",11"team outing next friday plan pannirukanga",12"new project kick off monday la iruku prepare pannikonga",13]1415query ="boss enna extra work kudutharu da"1617corpus_embeddings = model.encode(corpus, convert_to_tensor=True)18query_embedding = model.encode(query, convert_to_tensor=True)1920results = semantic_search(query_embedding, corpus_embeddings, top_k=2)21for hit in results[0]:22print(f"Score: {hit['score']:.4f} | {corpus[hit['corpus_id']]}")
Novel contribution — Concept Cluster Training:
Generated 6 maximally different Tanglish expressions of the same concept, then paired all C(6,2)=15 combinations. This directly addresses the lexical gap problem — where models fail when sentences mean the same thing but share zero vocabulary.
Stage 3 — Training
Loss: CachedMultipleNegativesRankingLoss + CoSENTLoss (multi-task)
Domains: college, work, cricket, food, relationships, tech, social media, daily life
First benchmark of its kind for code-mixed Tamil-English
Use it to evaluate your own models:
python
1import json
2from scipy.stats import spearmanr
3from sentence_transformers import SentenceTransformer
4from sentence_transformers.util import cos_sim
56pairs =[json.loads(l)for l inopen("tanglish_sts.jsonl")]7model = SentenceTransformer("your-model")89human_scores =[p["human_score"]for p in pairs]10model_scores =[11 cos_sim(model.encode([p["s1"]]), model.encode([p["s2"]]))[0][0].item()12for p in pairs
13]1415spearman = spearmanr(human_scores, model_scores)[0]16print(f"TanglishSTS Spearman: {spearman:.4f}")
Limitations
Hinglish coverage is limited — trained primarily on Tanglish. Hinglish (Hindi-English) performance untested. v2 will include L3Cube HingCorpus fine-tuning.
Formal Tamil — not the target domain. Use IndicSBERT for native-script formal Tamil.
Social media lexicon drift — internet slang evolves. Model may underperform on very recent slang not present in training data.
Short texts — optimised for 6-50 word sentences typical of social media. Performance on documents not evaluated.
Intended Use
Recommended for:
Semantic search over Tanglish/Indian English text corpora
RAG systems for Indian language chatbots
Duplicate detection in Indian social media content
Customer support ticket matching for Indian companies
Resume and job description matching for Indian job portals
Not recommended for:
Formal Tamil native script (use IndicSBERT)
Pure English tasks (use all-MiniLM-L6-v2)
Cross-lingual retrieval at scale (use BGE-M3)
About
Built by Vishnu N, 2nd year B.E. CSE student at Sri Sairam Institute of Technology, Chennai.
Previously built TamilSense — fine-tuned MuRIL for Tamil/Tanglish sentiment analysis (94.7% accuracy, 65+ organic downloads).
This project fills a gap that neither academic NLP research nor industry has addressed: a production-grade sentence embedding model for how real Tamil speakers actually communicate online.
Training data sources: DravidianCodeMix (Zenodo, CC BY 4.0), YouTube public comments, Reddit public posts.
Paraphrase generation: Groq API (Llama 3.3 70B), ChatGPT, Gemini, Meta AI.
Base model: sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 (Apache 2.0).