Как обеспечить, чтобы пользователь отправлял только английский текст

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
9
0
1 018
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

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

Он также упадет с именами собственными (например, моего имени нет в словаре).

Ответ принят как подходящий

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

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

Ваша вторая идея исключила бы практически все комментарии на YouTube.

Tyson 17.07.2009 21:52

@Tyson, Отлично, еще одно преимущество, о котором я не думал ;-)

Pat 19.07.2009 21:15

Пытаться:

http://wordlist.sourceforge.net/

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

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

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

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

Но вы должны это проверить, иначе у модуля nlp возникнут проблемы.

btw0 13.10.2008 12:01

Да, ты прав. Но в таких приложениях часто полезно усилить правило «Мусор на входе, мусор на выходе», чтобы было меньше ошибок пользователя.

Tahir Akhtar 13.10.2008 12:04

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

Есть ли известный алгоритм использования этой диаграммы? Я имею в виду, будете ли вы подсчитывать баллы по каждому языку, а затем сортировать результат? Или мы можем использовать пороговое значение для каждого языка?

Tahir Akhtar 13.10.2008 12:46

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

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

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

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

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

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

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

Другие вопросы по теме