我需要一个语言检测脚本。我尝试了Textblob库,该库现在为我提供了该语言的两个字母缩写。如何获得完整的语言扩展?
这会检测到该语言,并用两个字母的缩写表示该语言
from textblob import TextBlob
b = TextBlob("cómo estás")
language = b.detect_language()
print(language)
实际结果:es
预期结果:西班牙语
我从此链接中获得了语言列表及其缩写。
https://developers.google.com/admin-sdk/directory/v1/languages
答案 0 :(得分:1)
您使用的代码为您提供了两个字母的缩写,符合ISO 639-2
国际协议。您可以查找这些对应关系的列表(例如this page,并建立一种仅输入一个并输出另一个的方法,但是鉴于您使用python进行编程,已经有人为您完成了此操作。
我推荐pycountry
-用于此类任务的通用库,其中还包含许多其他标准。用于此问题的示例:
from textblob import TextBlob
import pycountry
b = TextBlob("நீங்கள் எப்படி இருக்கிறீர்கள்")
iso_code = b.detect_language()
# iso_code = "ta"
language = pycountry.languages.get(alpha_2=iso_code)
# language = Language(alpha_2='ta', alpha_3='tam', name='Tamil', scope='I', type='L')
print(language.name)
,并按预期打印Tamil
。同样适用于西班牙语:
>>> pycountry.languages.get(alpha_2='es').name
'Spanish'
以及您可能正在做的任何其他大多数语言。.