Машинное обучение и обработка естественного языка [закрываются]

Предположите знание студента, который хочет изучить Машинное обучение и Обработку естественного языка.

На каких определенных предметах информатики они должны сфокусироваться и какие языки программирования специально предназначены для решения этих типов проблем?

Я не ищу Ваши любимые предметы и инструменты, а скорее промышленные стандарты.

Пример: я предполагаю, что знание Prolog и Matlab могло бы помочь им. Они также могли бы хотеть изучить Дискретные Структуры*, Исчисление и Статистика.

*Графики и деревья. Функции: свойства, рекурсивные определения, решая повторения. Отношения: свойства, эквивалентность, частичный порядок. Методы доказательства, индуктивное доказательство. Подсчет методов и дискретной вероятности. Логика: исчисление высказываний, исчисление предикатов первого порядка. Формальное обоснование: естественный вычет, разрешение. Приложения для программирования правильности и автоматического обоснования. Введение в алгебраические структуры в вычислениях.

41
задан Stephano 18 July 2018 в 20:25
поделиться

8 ответов

На этот связанный вопрос о переполнении стека есть несколько хороших ответов: Что является хорошей отправной точкой для тех, кто интересуется обработкой естественного языка?

Это очень большое поле.Предпосылки в основном состоят из вероятности / статистики, линейной алгебры и фундаментальной информатики, хотя обработка естественного языка требует для начала более интенсивного опыта в области компьютерных наук (часто охватывающего некоторые базовые ИИ). Относительно конкретных языков: Lisp был создан «запоздалой мыслью» для исследования AI , в то время как Prolog (с его корнями в формальной логике) специально нацелен на обработку естественного языка, и многие курсы будут использовать Prolog, Scheme, Matlab, R или другой функциональный язык (например, OCaml используется для этого курса в Корнелле ), поскольку они очень подходят для такого рода анализа.

Вот еще несколько конкретных указателей:

Для машинного обучения, Stanford CS 229: Machine Learning великолепен: он включает в себя все, включая полные видео лекций (также есть в iTunes), курс заметки, наборы задач и т. д., и этому очень хорошо научил Эндрю Нг .

Обратите внимание на предварительные требования:

Ожидается, что учащиеся будут обладать следующим опытом: Знание основных принципов и навыков информатики на уровне, достаточном для написания достаточно нетривиального компьютера. программа. Знакомство с основами теории вероятностей. Знакомство с базовой линейной алгеброй.

В курсе используются Matlab и / или Octave. Он также рекомендует следующие материалы для чтения (хотя сами примечания к курсу очень полны):

Для обработки естественного языка группа НЛП в Стэнфорде предоставляет много полезных ресурсов. Вводный курс Stanford CS 224: Natural Language Processing включает все лекции в Интернете и имеет следующие предпосылки:

Достаточный опыт программирования и формальных структур. Программные проекты будут написаны на Java 1.5, поэтому знание Java (или желание учиться самостоятельно). Знание стандартных концепций в искусственном интеллекте и / или компьютерной лингвистике. Базовое знакомство с логикой, векторными пространствами, и вероятностью.

Вот некоторые рекомендуемые тексты:

Обязательный курс вычислительной лингвистики требует базовых знаний компьютерного программирования и структур данных и использует те же учебники. Требуемый курс искусственного интеллекта также доступен в Интернете вместе с всеми конспектами лекций и использует:

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

Я сам использую R для машинного обучения и очень рекомендую его. Для этого я бы посоветовал взглянуть на Элементы статистического обучения , полный текст которого доступен онлайн бесплатно. Вы можете обратиться к представлениям Машинное обучение и Обработка естественного языка на CRAN для получения информации о конкретных функциях.

54
ответ дан 27 November 2019 в 00:30
поделиться

Я бы порекомендовал одно или все (в зависимости от его количества и области интересов) из следующих:

Оксфордский справочник по компьютерной лингвистике :

The Oxford Handbook of Computational Linguistics
(источник: oup.com )

Основы статистической обработки естественного языка :

Foundations of Statistical Natural Language Processing

Введение в поиск информации :

Introduction to Information Retrieval

7
ответ дан 27 November 2019 в 00:30
поделиться

Строковые алгоритмы, включая деревья суффиксов. Исчисление и линейная алгебра. Различные разновидности статистики. Алгоритмы оптимизации искусственного интеллекта. Методы кластеризации данных ... и еще миллион вещей. Сейчас это очень активная сфера деятельности, в зависимости от того, что вы собираетесь делать.

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

5
ответ дан 27 November 2019 в 00:30
поделиться

Jurafsky and Martin's Speech and Language Processing http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/ очень хороша. К сожалению, черновые главы второго издания больше не доступны в Интернете после публикации :(

Кроме того, если вы приличный программист, никогда не рано попробовать себя в NLP-программах. На ум приходит NLTK (Python). У него есть книга, которую можно бесплатно читать онлайн, которая была опубликована (кажется, компанией OReilly).

3
ответ дан 27 November 2019 в 00:30
поделиться

Как насчет Markdown и введения в грамматику выражений (PEG), опубликованного cletus на его сайте cforcoding?

ANTLR кажется хорошим местом для начала обработки естественного языка. Хотя я не эксперт.

2
ответ дан 27 November 2019 в 00:30
поделиться

Общий вопрос, но я определенно думаю, что знание конечных автоматов и скрытых марковских моделей было бы полезно. Это требует знания статистического обучения, оценки байесовских параметров и энтропии.

Скрытое семантическое индексирование - это широко распространенный, но недавно используемый инструмент для решения многих задач машинного обучения. Некоторые методы довольно просты для понимания. Есть множество потенциальных базовых проектов.

  1. Найдите совпадений в корпусах текста для кластеризации документов / абзацев / предложений.
  2. Классифицируйте настроение текстового корпуса.
  3. Автоматически аннотировать или резюмировать документ.
  4. Найдите взаимосвязей между отдельными документами, чтобы автоматически создать «график» среди документов.

РЕДАКТИРОВАТЬ: Факторизация неотрицательной матрицы (NMF) - это инструмент, популярность которого значительно выросла благодаря своей простоте и эффективности. Это легко понять. В настоящее время я исследую использование NMF для поиска музыкальной информации; NMF также оказался полезным для скрытого семантического индексирования текстовых корпусов. Вот одна статья. PDF

2
ответ дан 27 November 2019 в 00:30
поделиться

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

Тогда я бы сказал, что базовые знания CS также могут быть полезны, например, Алгоритмы , Формальные языки и базовая теория сложности .

5
ответ дан 27 November 2019 в 00:30
поделиться

Stanford CS 224: Natural Language Processing, который уже упоминался, включает в себя также видео онлайн (в дополнение к другим материалам курса). Видео не связаны на веб-сайте курса, поэтому многие люди могут их не заметить.

5
ответ дан 27 November 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: