Как обеспечить, чтобы пользователь отправлял только текст на английском языке - PullRequest
9 голосов
/ 13 октября 2008

Я строю проект, связанный с обработкой естественного языка, поскольку модуль nlp в настоящее время работает только с английским текстом, поэтому я должен убедиться, что пользователь отправил контент (не длинный, только несколько слов) на английском языке. Существуют ли установленные способы для достижения этой цели? Python или Javascript предпочтительнее.

Ответы [ 10 ]

7 голосов
/ 13 октября 2008

Если содержимое достаточно длинное, я бы предложил частотный анализ в письмах.

Но для нескольких слов, я думаю, вам лучше сравнить их с английским словарем и принять ввод, если половина из них совпадает.

6 голосов
/ 13 октября 2008

Проверьте таблицу распознавания языка

5 голосов
/ 13 октября 2008

У Google есть JavaScript-API, в котором реализовано определение языка. Я только тестировал с ним, никогда не использовал его в производстве.

http://code.google.com/apis/ajaxlanguage/documentation/#Detect

5 голосов
/ 13 октября 2008

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

Вы можете отобразить раскрывающийся список выбора языка над своей текстовой областью с опциями Английский / Другой. Когда пользователь выбирает «Другое», отключите текстовую область сообщением о том, что на данный момент поддерживается только английский язык.

3 голосов
/ 13 октября 2008

Вы уже выполняете НЛП, если ваш модуль не понимает, на каком языке был текст, либо модуль не работает, либо ввод не был на правильном языке.

3 голосов
/ 13 октября 2008

Попробуйте основанное на n-граммах статистическое распознавание языка. Это ссылка на демонстрацию алгоритма, использующего эту технику, также есть ссылка на статью, описывающую алгоритм там. Попробуйте демо-версию, она отлично работает даже на очень коротких текстах (3-4 слова).

1 голос
/ 13 октября 2008

Попробуйте:

http://wordlist.sourceforge.net/

Список английских слов.

Вам нужно быть осторожным с именами, например, «Канберра» или «Билл Клинтон». Они не появятся в списке слов. Я предлагаю просто проверить, написана ли первая буква заглавными буквами в качестве первой попытки.

0 голосов
/ 17 июля 2009

Может быть, " Обеспечение того, что пользователь отправляет только текст на английском языке [PHP] ", поможет вам. Код написан на PHP, но достаточно мал, чтобы его можно было легко переписать.

0 голосов
/ 13 октября 2008

Расширение Dictionary Switcher Firefox имеет возможность определять правильный словарь при вводе текста.
Я думаю, он проверяет слова по установленным словарям и выбирает тот, который дает меньше ошибок ...

Вы не можете ожидать, что все слова текста будут в словаре: сокращения, имена собственные, опечатки ... Кроме того, некоторые слова являются общими для нескольких языков: французская рок-группа даже сделала названия своих дисков имеют (разное) значение как на французском, так и на английском языке. Так что это статистическая вещь: если в хорошем словаре английского языка найдено более x% слов, скорее всего, это типы пользователей на этом языке (даже если есть ошибки, как, вероятно, в этом ответе, поскольку я не являюсь носителем английского языка) .

0 голосов
/ 13 октября 2008

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

Это также может привести к существительным (мое имя, например, отсутствует в словаре).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...