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

Каковы предпосылки для изучения обработки естественного языка?

В этом году я планирую изучать обработку естественного языка.

Но когда я начинаю читать вступительные книги по этой теме, я обнаружил, что пропущу много вопросов, касающихся в основном математики.

Итак, я здесь ищу то, что должен изучать, прежде чем я смогу научиться nlp, ну, более плавно?

Спасибо заранее.

4b9b3361

Ответ 1

В настоящее время существует два основных подхода к НЛП: один - это языковой подход, подробно описанный Юрафским и Мартином (Речевая и языковая обработка) а другой - подход с вероятностью и статистикой (Основы статистической естественной обработки текстов).

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

Хотя я согласен с лаурой в том, что формальная теория языка очень полезна, я на самом деле думаю, что в настоящее время, если вы просто хотите попасть в фактические части НЛП НЛП, вы можете оставить официальные языки позже, поскольку есть достаточно инструментов, которые будут делать ваш лексический анализ/разбор/токенизация/текстовые преобразования, которые вы можете использовать, а не сворачивать свои собственные.

Вот книга, описывающая три таких инструмента - я владею им и рекомендую его как хорошее введение ко всем трем. Приложения для поиска здания: Lucene, LingPipe и Gate

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

Ответ 3

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

Изучение логики полезно для работы со значениями представления. Грамматики, языки и т.д. Полезны для синтаксического разбора и т.д., Но язык не укладывается аккуратно в красивую легко разобрать грамматику, потому что, ну, мы человеческие:)

В предыдущем плакате говорилось о статистике и вероятности - очень важно в современных подходах. Вы также можете посмотреть на работу Иудеи Перл по вероятностным сетям вывода.

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

Некоторые люди из проекта CYC работали над семантической сетью, что также связано с представлением смысла, и вы заметите, что представление семантического Интернета снова является эквивалентом XML логики предикатов первого порядка.

Ответ 4

Одной из вещей, которые вам обязательно понадобятся, является хорошее знание в области формального языка (автоматы, контекстно-свободные грамматики, контекстно-зависимые грамматики). Большая часть материала, который я видел, в значительной степени зависит от этого - лучшая книга для начинающих - это, на мой взгляд, "Введение в формальные языки" Хопкрофта, Ульмана и др.

Я также видел некоторые методы, относящиеся к нейронным сетям, но я мало знаю об этом.

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

Ответ 5

Я просто занимаюсь этим полем, но если вы не знаете, с какого языка программирования начинать, я бы рекомендовал Python. Это простой ответ на множество исследований по этой теме. Python легко подбирать, чрезвычайно универсален, практичен для широкого круга вычислительных задач и широко применяется. Идеально подходит для НЛП. Для введения в Python и того, как использовать его в NLP, я бы рекомендовал книгу:

Обработка естественного языка с помощью Python --- Анализ текста с помощью инструментария Natural Language Toolkit Стивен Берд, Эван Клейн и Эдвард Лопер

http://nltk.org/book/

И Codecademy также изучает Python. http://www.codecademy.com

Надеюсь, что это поможет.