Автор Тема: Как определить язык текста?  (Прочитано 1476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Сергей Горбачевский

  • Administrator
  • Знаменитый писатель
  • *****
  • Сообщений: 84787
  • Пол: Мужской
  • Есть вопросы? Пишите в личку
    • Награды
Как определить язык текста?
« : 23, Апреля 2017, Воскресенье, 18:25:39 pm »
Несколько дней с программистом пытались решать вроде бы достаточно тривиальную задачу - как определить язык текста? Те, кто пользуются Фейсбуком, возможно заметили, что если в ленте есть текст на не родном языке, то ниже появляется кнопка "Посмотреть перевод".

Это стандартная потребность многоязычных сайтов. Наш форум, минимум, двуязычен - русский и украинский. Не скажу, что для форума это прямо-таки первостепенная потребность, но попробовать организовать быстрый перевод интересно.

Помимо чисто лингвистической задачи есть ещё ограничения нагрузки на сервер и требование бесплатности.

Товарищи из Google сделали очень хитрожопо - у них сервис определения языка (Google Language API) платен, а сам перевод (Googlе Translate) бесплатен.

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

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

В случае, если язык браузера отличается от определяемого языка поста, мод выводит кнопочку "Перевести".

Качество мода протестировать в полной мере пока не получилось, но должно быть лучше, чем без него.

Языки:

  • => albanian
  • [1] => arabic
        [2] => azeri
        [3] => bengali
        [4] => bulgarian
        [5] => cebuano
        [6] => croatian
        [7] => czech
        [8] => danish
        [9] => dutch
        [10] => english
        [11] => estonian
        [12] => farsi
        [13] => finnish
        [14] => french
        [15] => german
        [16] => hausa
        [17] => hawaiian
        [18] => hindi
        [19] => hungarian
        [20] => icelandic
        [21] => indonesian
        [22] => italian
        [23] => kazakh
        [24] => kyrgyz
        [25] => latin
        [26] => latvian
        [27] => lithuanian
        [28] => macedonian
        [29] => mongolian
        [30] => nepali
        [31] => norwegian
        [32] => pashto
        [33] => pidgin
        [34] => polish
        [35] => portuguese
        [36] => romanian
        [37] => russian
        [38] => serbian
        [39] => slovak
        [40] => slovene
        [41] => somali
        [42] => spanish
        [43] => swahili
        [44] => swedish
        [45] => tagalog
        [46] => turkish
        [47] => ukrainian
        [48] => urdu
        [49] => uzbek
        [50] => vietnamese
        [51] => welsh

    Для программистов
Просмотр ссылок доступен только зарегистрированным пользователям на php.


Оффлайн Сергей Горбачевский

  • Administrator
  • Знаменитый писатель
  • *****
  • Сообщений: 84787
  • Пол: Мужской
  • Есть вопросы? Пишите в личку
    • Награды
Re: Как определить язык текста?
« Ответ #1 : 23, Апреля 2017, Воскресенье, 18:37:33 pm »
Попутно добавил украинскую локализацию форума. Потестировать руки не дошли, но должно работать. Выбирайте в профиле украинский язык.


Оффлайн Сергей Горбачевский

  • Administrator
  • Знаменитый писатель
  • *****
  • Сообщений: 84787
  • Пол: Мужской
  • Есть вопросы? Пишите в личку
    • Награды
Re: Как определить язык текста?
« Ответ #2 : 24, Апреля 2017, Понедельник, 09:30:43 am »
Перешли на определение языка по технологии и API Яндекс - Просмотр ссылок доступен только зарегистрированным пользователям

Яндекс условно-бесплатный:

2.3. Яндекс оставляет за собой право устанавливать любые лимиты и ограничения, включая далее перечисленное, но не ограничиваясь этим:

на объем переводимого текста - в размере до 1 000 000 символов в сутки, но не более 10 000 000 символов месяц.

2.4. Яндекс может менять лимиты и ограничения по собственному усмотрению, без предварительного письменного уведомления Пользователей.

2.5. При превышении установленных Яндексом ограничений на размер проверяемого текста и/или на количество обращений к Сервису, Яндекс оставляет за собой право отказать в доступе к Сервису.

Использование API от Яндекс должно дать прирост в правильности распознавания языка на коротких фразах. Сервис перевода по-прежнему от Google.

Оффлайн Сергей Горбачевский

  • Administrator
  • Знаменитый писатель
  • *****
  • Сообщений: 84787
  • Пол: Мужской
  • Есть вопросы? Пишите в личку
    • Награды
Re: Как определить язык текста?
« Ответ #3 : 26, Апреля 2017, Среда, 08:05:32 am »
Нам удалось на несколько дней опередить сам Google...

Google Maps переведут все на язык пользователя автоматически

Компания Google в очередной раз расширила возможности своего картографического сервиса Google Maps. На этот раз большая функциональность была достигнута за счет применения технологии нейронных сетей Google Neural Machine Translation System, позволяющей автоматически переводить поисковые запросы, отзывы, а также названия на карте на язык, выбранный пользователем системы. Эти же технологии перевода используются в сервисе перевода Google Translate, так что теперь пользователь просто избавляется от необходимости копирования текста в окно переводчика.