Я тестирую пакет polyglot
в Python для обнаружения языков в документе со смешанными языками.
Я не ожидаю от него самого точного прогноза, но начало с пакета не возвращает ничего, кромеодин язык в качестве ответа даже для текстов, в которых есть 2 или 3 языка.
Тексты, которые я использую, содержат в среднем 20 слов, таких как:
text = 'Je travaillais en France. Je suis tres heureux. I work in London. I grew up in Manchester.'
Я всегдаполучите что-то вроде следующего - нет ответов на нескольких языках:
Prediction is reliable: True
Language 1: name: English code: en confidence: 98.0 read bytes: 682
Language 2: name: un code: un confidence: 0.0 read bytes: 0
Language 3: name: un code: un confidence: 0.0 read bytes: 0
Это далеко не пример в его документах:
> China (simplified Chinese: 中国; traditional Chinese: 中國),
>
> name: English code: en confidence: 71.0 read bytes: 887
> name: Chinese code: zh_Hant confidence: 11.0 read bytes: 1755
> name: un code: un confidence: 0.0 read bytes: 0
Даже если честнокогда я запускаю детектор с китайско-английским примером выше, я получаю ответ на смешанный язык.
Код просто следующий:
from polyglot.detect import Detector
text = 'Je travaillais en France. Je suis tres heureux. I work in London. I grew up in Manchester.'
answer = Detector(text)
print(answer)
Почему это происходит?
PS
Кроме того, в случае обнаружения языка одного (даже очень распространенного) слова polyglot
довольно плохо. Например, для слова quantita
(которое является итал.иан) он возвращает английский.
Я знаю, что многие из этих пакетов могут быть в основном успешными при наличии большого текста, но удивительно, что они не могут даже захватить даже эти простые слова.
Textblob
, кажется, даже хорош для отдельных слов, но вы можете отправить очень ограниченное количество запросов к нему (в обоих случаях, возможно, потому что он использует Google API).