2013-04-07 3 views
2

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

  • Пользователь вводит название книги.
  • Определить, что это турецкий или английский.
  • Установите поле со списком языка на соответствующий язык, чтобы помочь пользователю заполнить форму.

Мой друг предложил мне «подключиться к Google Translate и использовать его», что кажется разумным, но алгоритм без подключения внешней службы или базы данных будет более подходящим для меня. (Я также искал турецкие/английские специфические персонажи, такие как ç, ş, İ/w, x). Поэтому я ищу алгоритм для выполнения этой работы, возможно, на основе частот букв или чего-то подобного. Все, что доступно в литературе? Заранее спасибо. (Я использую php, mysql, если это важно)

+4

HTTP: //stackoverflow.com/questions/1441562/detect-language-from-string-in-php вы также можете проверить http://wiki.apache.org/solr/LanguageDetection Solr может дать вам язык с вероятностью (для этого предложения составляет 90% Engl ish или 10% турецкий) – fsw

+3

как насчет слов, которые оба? – 2013-04-07 21:09:42

+2

спасибо за ответы. Дагон, я не ожидаю 100% точного алгоритма, frenchie это хобби проект, и я думаю, что предоставление такой функции может быть приятным. fsw, ваши ссылки подходят для меня. Я бы принял ваш ответ, если бы вы написали его как ответ, а не комментарий. –

ответ

3

Если образец, который вы тестируете, является небольшим (одно слово или фраза), тогда простые эвристики, такие как частота букв, не будут очень полезны, так как английская фраза «Jazz Quizzes», вероятно, будет соответствовать профилю многих языков более легко, чем английский.

Возможно, вы сможете использовать частоту символов и триграфов (2- и 3-буквенные комбинации), так как английский и турецкий языки не имеют отношения к комбинациям, которые встречаются только в одном.

Скорее всего, однако, вам придется использовать базу данных фактических слов с двух языков. В этом случае вам, вероятно, лучше всего использовать сторонний API или базу данных, а не идти на все усилия по созданию собственных корпусов, внедрению статистических алгоритмов и т. Д.

Смежные вопросы