Как определить язык текста?

У меня есть форма, которая позволяет пользователям вводить текстовые фрагменты. Итак, как можно выяснить язык введенного текста?

конкретно эти языки на данный момент:

арабский: هذه هي بع

китайский: 这是一些阿拉伯文字

японский: いくつかのアラビア語のテキストです これは、

[Edit] обнаружение имеет работу над текстом, который также извлекается через API (без участия браузера)

5 ответов


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

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

например, ваш китайский текст начинается (в hex) 0x8FD9 0x662F 0x4E00 - и все они находятся в разделе " CJK Unified Ideographs, который китайский. Вот несколько диапазонов, чтобы вы начали:

арабский (0600–06FF)

японский

  • Хирагана (3040–309F)
  • катакана (30A0–30FF)
  • Kanbun (3190–319F)

китайский

  • CJK унифицированные идеограммы (4E00–9FFF)

(Я получил hex для вашего китайского языка, используя Китайский в Юникод конвертер.)


можно использовать Google Ajax API для обнаружения языка фрагмента текста.


предположительно угадывание языка пользователя заключается в отображении ответов на соответствующем языке. Как насчет изучения настроек браузера для предпочитаемых языков? Получите это из заголовка HTTP Accept-Language. См. раздел 14.4 здесь.


Я исследую то же самое, для серверной части. До сих пор я нашел https://code.google.com/p/language-detection/. Надеюсь, это кому-то поможет.


можно использовать https://detectlanguage.com/, который является веб-построить вокруг CLD2.