Как обеспечить отправку пользователем только текста на английском языке
Я создаю проект, связанный с обработкой естественного языка, поскольку модуль nlp в настоящее время имеет дело только с английским текстом, поэтому я должен убедиться, что пользовательский контент (не длинный, всего несколько слов) на английском языке. Существуют ли установленные способы достижения этого? Предпочтительный способ Python или Javascript.
10 ответов
Если содержание достаточно долго, я бы предложил некоторые частотный анализ на письма.
но для нескольких слов я думаю, что лучше всего сравнить их с английским словарем и принять ввод, если половина из них совпадают.
Я думаю, что наиболее эффективным способом было бы попросить пользователей, чтобы отправить только текст на английском языке :)
вы можете показать раскрывающийся список выбора языка над текстовой областью с английским / другим в качестве опций. Когда пользователь выбирает "другое", отключите текстовую область с сообщением, что поддерживается только английский язык [на данный момент].
Google имеет javascript API, который имеет реализацию обнаружения языка. Я только играл с ним, никогда не использовал его в производстве.
http://code.google.com/apis/ajaxlanguage/documentation/#Detect
попробуйте N-грамм на основе статистического распознавания языка. Это ссылке для демонстрации алгоритма, использующего эту технику, есть также ссылка на статью, описывающую алгоритм. Попробуйте демо, он отлично работает даже на очень коротких текстах (3-4 слова).
вы уже делаете НЛП, если ваш модуль не понимает, на каком языке был текст, то либо модуль не работает, либо ввод был не на правильном языке.
попробуй:
http://wordlist.sourceforge.net/
для списка английских слов.
вам нужно будет быть осторожным с именами, например "Канберра"или" Билл Клинтон". Они не появятся в списке слов. Я предлагаю просто проверить, является ли первая буква заглавной как первая попытка.
вы можете разбить фразу на слова и проверить словарь (есть некоторые, которые вы можете скачать, этой может представлять интерес), но для этого потребуется, чтобы словарь, который вы использовали, был достаточно хорош.
Он также будет падать для собственных существительных (мое имя, например, не в словаре).
на Словарь Переключатель расширения Firefox имеет возможность определить правильный словарь по мере ввода.
Я предполагаю, что он проверяет слова против установленных словарей и выбирает тот, который дает меньше ошибок...
вы не можете ожидать, что все слова текста будут в словаре: аббревиатуры, имена собственные, опечатки... Кроме того, некоторые слова являются общими для нескольких языков: французская рок-группа даже сделала названия своих дисков иметь (другое) значение и на французском, и на английском. Так что это статистическая вещь: если более x% слов найдено в хорошем английском словаре, скорее всего, это типы пользователей на этом языке (даже если есть ошибки, как, вероятно, в этом ответе, так как я не родной английский).
может,"обеспечение того, чтобы пользователь отправлял только английский текст [PHP]" статьи поможет вам. Код написан на PHP, но достаточно мал, чтобы его можно было легко переписать.