diff --git a/app/main/lib/langid.py b/app/main/lib/langid.py index 12f3d385..213e20e7 100644 --- a/app/main/lib/langid.py +++ b/app/main/lib/langid.py @@ -83,10 +83,12 @@ class FastTextLangidProvider: @staticmethod def langid(text): prediction = FastTextLangidProvider.fasttext_model.predict(text) + language = prediction[0][0].split("__")[-1] + language = "fil" if language=="tl" # Use 'fil' for Filipino rather than tl for Tagalog # prediction is a list of tuples, e.g., (('__label__en',), array([0.22517213])) return { 'result': { - 'language': prediction[0][0].split("__")[-1], + 'language': language, 'confidence': prediction[1][0] }, 'raw': prediction diff --git a/app/test/test_langid.py b/app/test/test_langid.py index 50cdeaa5..a0682de6 100644 --- a/app/test/test_langid.py +++ b/app/test/test_langid.py @@ -13,19 +13,19 @@ class TestLangidBlueprint(BaseTestCase): TESTS = [ - { 'cld3': 'hi', 'microsoft': 'hi', 'google': 'hi', 'text': 'नमस्ते मेरा नाम करीम है' }, - { 'cld3': 'hi-Latn', 'microsoft': 'en', 'google': ['hi', 'hi-Latn'], 'text': 'namaste mera naam Karim hai' }, - { 'cld3': 'mr', 'microsoft': 'hi', 'google': 'mr', 'text': 'हॅलो माझे नाव करीम आहे' }, - { 'cld3': 'bn', 'microsoft': 'bn', 'google': 'bn', 'text': 'হ্যালো আমার নাম কারিম' }, - { 'cld3': 'hi-Latn', 'microsoft': 'id', 'google': ['bn', 'bn-Latn'], 'text': 'hyalo amara nama Karim' }, - { 'cld3': 'gu', 'microsoft': 'gu', 'google': 'gu', 'text': 'હેલો, મારું નામ કરીમ છે' }, - { 'cld3': 'ja-Latn', 'microsoft': 'ms', 'google': ['gu', 'gu-Latn'], 'text': 'helo, marum nama Karim che' }, - { 'cld3': 'ml', 'microsoft': 'ml', 'google': 'ml', 'text': 'ഹലോ എന്റെ പേര് കരീം ആണ്' }, - { 'cld3': 'ta', 'microsoft': 'ta', 'google': 'ta', 'text': 'வணக்கம் என் பெயர் கரிம்' }, - { 'cld3': 'id', 'microsoft': 'fr', 'google': ['ta', 'ta-Latn'], 'text': 'vanakkam en peyar Karim' }, - { 'cld3': 'te', 'microsoft': 'te', 'google': 'te', 'text': 'హలో నా పేరు కరీం' }, - { 'cld3': 'fil', 'microsoft': 'tl', 'google': ['fil', 'tl', 'tl-Latn'], 'text': 'kamusta ang aking pangalan ay Karim' }, - { 'cld3': 'ja', 'microsoft': 'und', 'google': 'und', 'text': '🙋🏽👨‍🎤' } + { 'fasttext': 'hi', 'cld3': 'hi', 'microsoft': 'hi', 'google': 'hi', 'text': 'नमस्ते मेरा नाम करीम है' }, + { 'fasttext': 'nl', 'cld3': 'hi-Latn', 'microsoft': 'en', 'google': ['hi', 'hi-Latn'], 'text': 'namaste mera naam Karim hai' }, + { 'fasttext': 'mr', 'cld3': 'mr', 'microsoft': 'hi', 'google': 'mr', 'text': 'हॅलो माझे नाव करीम आहे' }, + { 'fasttext': 'bn', 'cld3': 'bn', 'microsoft': 'bn', 'google': 'bn', 'text': 'হ্যালো আমার নাম কারিম' }, + { 'fasttext': 'id', 'cld3': 'hi-Latn', 'microsoft': 'id', 'google': ['bn', 'bn-Latn'], 'text': 'hyalo amara nama Karim' }, + { 'fasttext': 'gu', 'cld3': 'gu', 'microsoft': 'gu', 'google': 'gu', 'text': 'હેલો, મારું નામ કરીમ છે' }, + { 'fasttext': 'it', 'cld3': 'ja-Latn', 'microsoft': 'ms', 'google': ['gu', 'gu-Latn'], 'text': 'helo, marum nama Karim che' }, + { 'fasttext': 'ml', 'cld3': 'ml', 'microsoft': 'ml', 'google': 'ml', 'text': 'ഹലോ എന്റെ പേര് കരീം ആണ്' }, + { 'fasttext': 'ta', 'cld3': 'ta', 'microsoft': 'ta', 'google': 'ta', 'text': 'வணக்கம் என் பெயர் கரிம்' }, + { 'fasttext': 'fr', 'cld3': 'id', 'microsoft': 'fr', 'google': ['ta', 'ta-Latn'], 'text': 'vanakkam en peyar Karim' }, + { 'fasttext': 'te', 'cld3': 'te', 'microsoft': 'te', 'google': 'te', 'text': 'హలో నా పేరు కరీం' }, + { 'fasttext': 'fil', 'cld3': 'fil', 'microsoft': 'tl', 'google': ['fil', 'tl', 'tl-Latn'], 'text': 'kamusta ang aking pangalan ay Karim' }, + { 'fasttext': 'fa', 'cld3': 'ja', 'microsoft': 'und', 'google': 'und', 'text': '🙋🏽👨‍🎤' } ] def setUp(self): @@ -80,7 +80,7 @@ def test_langid_cld3(self): def test_langid_fasttext(self): for test in TestLangidBlueprint.TESTS: result = FastTextLangidProvider.langid(test['text']) - self.assertEqual(test['cld3'], result['result']['language'], test['text']) + self.assertEqual(test['fasttext'], result['result']['language'], test['text']) def test_langid_api_get(self): response = self.client.post(