Как получить расширение языка в библиотеке определения языка Python Textblob - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужен скрипт для определения языка.Я попробовал библиотеку 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

1 Ответ

0 голосов
/ 04 февраля 2019

Код, который вы используете, дает вам двухбуквенное сокращение, соответствующее международному протоколу ISO 639-2.Вы можете посмотреть список этих соответствий (например, эта страница ) и настроить метод для ввода только одного и вывода другого, но, если вы программируете на 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'

и, вероятно, для большинства других языков, с которыми вы столкнетесь, независимо от того, что вы делаете ..

...