Подтвердить что ты не робот

Обработка естественного языка - Идеи для начинающих проектов

Я новичок в NLP и NLTK. Я очень заинтересован в НЛП и, следовательно, присоединился к курсу выходных на AI в каком-то местном учреждении, которое требует от меня сделать проект для завершения курса, и я решил сделать это в НЛП. Проблема в том, что преподаватель не очень хорош для этого курса (по мне она это просто шарлатан) (или может не очень заинтересоваться преподаванием как это ее последняя партия, после которой институт собирается отправить ее). Поэтому я застрял в ситуации, когда я должен закончить этот проект за месяц до полутора месяцев, но как наивный человек в поле. Мне очень сложно понять вещи, необходимые для принятия решения по проекту. (Кроме того, поскольку я работаю полным время, я не нахожу достаточно времени, чтобы посвятить этому).

Я рассмотрел использование инструментария NLTK в python для проекта по следующим причинам. (1) Python славится простотой использования, быстрым прототипированием и очень активным сообществом (учитывая очень короткий промежуток времени, который у меня есть, и поскольку я программист по профессии, мне нужен язык, на котором я могу быстро учиться и просто использование).

(2) NLTk имеет хороший обзор, обширную документацию и очень активное сообщество.

Итак, проблема в том, какой проект мне взять, чтобы я мог чему-то научиться и смогу завершить проект вовремя. (Я почти ничего не знаю в НЛП, даже не знаю, что именно есть...:()

Итак, пожалуйста, предложите мне несколько тем, которые я должен рассмотреть для проекта.

Привет,

MicroKernel:)

4b9b3361

Ответ 1

Большинство "начинающих" проектов нацелены на повторное использование известных алгоритмов, поэтому новичок может учиться, проверяя их результаты против известных решений. Для этого я бы рекомендовал что-то простое, например, фильтр спама по электронной почте. Вы должны начать с создания учебного файла, то есть скопировать текст нескольких настоящих электронных писем в файл CSV и вручную пометить их спамом или спамом, например:

text|is_spam
hi bob! how are you?|0
what time are you coming over|0
how to buy viagra now!|1

Затем вы должны создать тестовый файл в идентичном формате для учебного файла, но, очевидно, с разными примерами.

Затем вы должны создать свой фильтр классификатора/спама. Существует множество способов реализации спам-фильтра, но наиболее простым является простое подсчет частоты, с которой появляется слово с is_spam = 0 и is_spam = 1. Например, на основе вышеописанного учебного файла слово "viagra" связано с 1 классификацией спама, но 0 классификациями без спама, поэтому, вероятно, будущие письма, содержащие слово "viagra", также будут классифицироваться как спам. Точно так же слово "как" появляется в 1 спаме и 1 не спам-письме, поэтому он менее вероятно указывает на окончательную классификацию.

Затем вы обучили свой классификатор учебному файлу и вычислили его точность, запустив его в тестовом файле.

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

Конечно, есть немного больше, чем это, но эти методы хорошо документированы в Интернете, и это ваш проект, чтобы вы могли исследовать его дальше. Удачи.

Ответ 2

Некоторые идеи:

  • Программа, которая угадывает язык, на котором написан входной файл. Вам понадобятся образцы разных языков; Википедия - отличный источник.

  • Программа, основанная на текстовом корпусе, строит слова или предложения, похожие на те, что содержатся в корпусе.

  • Найдите что-то интересное с Рукописью Войнича. Здесь вы можете найти транскрипции .

(Кстати, "corpus" - просто причудливое слово для "кучи текста". Из Wikipedia: "большой и структурированный набор текстов (в настоящее время обычно хранятся и обрабатываются в электронном виде). ​​" Слово обычно относится к текстам, которые вы используете для обучения и тестирования вашего алгоритма, в отличие от неизвестных текстов, которые он встретит в поле.)

Ответ 4

Вы можете использовать NLP для записи некоторых частей вызова службы поддержки клиентов на телефоне VOIP. Другие параметры, вводимые пользователем, можно взять с клавиатуры. С помощью этой системы вы можете устранить необходимость в обслуживающем персонале. Например - reset пароль для идентификатора электронной почты в организации с голосовым авторизацией.