Методы автоматической обработки текстов (курс лекций, В.В.Китов)/2016
Материал из MachineLearning.
(→Объявления) |
|||
(23 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] | ||
+ | |||
+ | ==Объявления== | ||
+ | |||
+ | Для прохождения спецкурса и получения оценки необходимо выслать мне на почту презентации ваших отчетов по прикладным проектам или kaggle-соревнованиям до 23:59 25 июня. | ||
+ | |||
+ | Структура презентации: | ||
+ | * постановка задачи, визуализация особенностей данных | ||
+ | * baseline решение (наиболее простое и логичное, или которым все пользуются в рассматриваемой области) - описание, точность (в kaggle-соревнованиях этот пункт не нужен). | ||
+ | * ваше решение - описание, точность | ||
+ | * альтернативные решения, которые вы пробовали - описание, точность | ||
+ | * пару слов: что еще можно было бы улучшить и попробовать | ||
+ | |||
+ | Для получения максимальной оценки должны быть представлены все пункты в презентации. | ||
==Описание== | ==Описание== | ||
Строка 8: | Строка 21: | ||
==Оценивание== | ==Оценивание== | ||
+ | |||
Оценка за курс выставляется на основе выполнения практического проекта, реализующего согласованную с преподавателем задачу автоматической обработки текстов. Варианты задачи: | Оценка за курс выставляется на основе выполнения практического проекта, реализующего согласованную с преподавателем задачу автоматической обработки текстов. Варианты задачи: | ||
* лингвистическое исследование различий диалекта языка для разного времени, разных авторов и разных источников информации | * лингвистическое исследование различий диалекта языка для разного времени, разных авторов и разных источников информации | ||
Строка 15: | Строка 29: | ||
* автоматическая суммаризация текстов | * автоматическая суммаризация текстов | ||
* извлечение объектов определенного типа (персоны, географические названия и др.) из текста и определение отношений между ними | * извлечение объектов определенного типа (персоны, географические названия и др.) из текста и определение отношений между ними | ||
- | и другие темы, которые использовали бы методы, изучаемые на занятиях, и имеющие элементы научной новизны | + | и другие темы, которые использовали бы методы, изучаемые на занятиях, и имеющие элементы научной новизны. |
+ | ==Задание== | ||
+ | Если вы не определились и не согласовали ваш проект по анализу текстов, вам предлагается поучастовать в каждом из 2х kaggle соревнований: | ||
+ | 1. [https://kaggle.com/join/predict_salary Определение зарплаты по описанию вакансии в интернете] | ||
+ | |||
+ | 2. [https://kaggle.com/join/recipe_counties_prediction Определение страны происхождения рецепта] | ||
+ | |||
+ | Даже если у вас есть собственный согласованный со мной проект, участие хотя бы в одном из этих соревнований все равно рекомендуется - это интересно, это расширит ваш кругозор и даст дополнительные бонусы при определении итоговой оценки за спецкурс. | ||
+ | |||
+ | [[Media:VKitov_-_Working_with_text.pdf|Работа с текстом - рекомендации]]. | ||
+ | |||
+ | [[Media:Data_Classification-Text_mining.pdf|Классификация текстов - обзор]]. | ||
+ | |||
+ | = Туториалы = | ||
+ | * [https://github.com/Apogentus/demonstrations Короткие базовые демонстрации по работе с python, jupiter notebook, numpy, scikit-learn и т.д.] | ||
+ | * [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | ||
+ | * [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html Numpy] | ||
+ | * [http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb Matplotlib] | ||
+ | * [http://pandas.pydata.org/pandas-docs/stable/10min.html Pandas] | ||
+ | * [http://scikit-learn.org/stable/tutorial/basic/tutorial.html Scikit-learn] | ||
+ | * [http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html Работа с текстом в scikit-learn] | ||
+ | * [http://www.scipy-lectures.org/ Scipy Lecture Notes] | ||
+ | |||
+ | = Материалы семинаров = | ||
+ | ipynb скрипты расположены [https://github.com/Apogentus/NLP здесь]. Поскольку большинство примеров бралось из [http://www.nltk.org/book/ Natural Language Processing with Python.] и [http://scikit-learn.org/stable/tutorial/index.html scikit-learn documentation], то рекомендуется обращаться к этим источникам за деталями. | ||
= Материалы = | = Материалы = | ||
- | [http://www.nltk.org/book/ Natural Language Processing with Python. Stewen Bird et. al. 2-nd edition. 2016.] | + | '''Основной учебник этого спецкурса''': [http://www.nltk.org/book/ Natural Language Processing with Python. Stewen Bird et. al. 2-nd edition. 2016.] |
- | Speech and Language Processing. Dan Jurafsky and James H. Martin. 2-nd edition. 2009. | + | Speech and Language Processing. Dan Jurafsky and James H. Martin. 2-nd edition. 2009. |
= Питон и необходимые библиотеки = | = Питон и необходимые библиотеки = | ||
- | * [https://www.continuum.io/downloads Anaconda - дистрибутив питона | + | * [https://www.continuum.io/downloads Anaconda - дистрибутив питона с предустановленными научными библиотеками] |
* [http://www.nltk.org/install.html библиотека NLTK по работе с текстами] | * [http://www.nltk.org/install.html библиотека NLTK по работе с текстами] | ||
* [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | * [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | ||
Строка 35: | Строка 73: | ||
* [http://scikit-learn.org/stable/tutorial/basic/tutorial.html Scikit-learn] | * [http://scikit-learn.org/stable/tutorial/basic/tutorial.html Scikit-learn] | ||
- | |||
- | |||
- | [https://tech.yandex.ru/mystem/ Морфологический анализатор от Яндекса] | + | = Дополнительные библиотеки = |
+ | |||
+ | * [https://tech.yandex.ru/mystem/ Морфологический анализатор от Яндекса] | ||
+ | * [https://pythonhosted.org/pymorphy/intro.html Библиотека морфологической работы с русскими текстами PyMorphy] | ||
+ | * [https://nlpub.ru/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0 Каталог утилит для работы с русскими и английскими текстами] | ||
- | |||
Строка 58: | Строка 97: | ||
- | = | + | = Темы занятий = |
===Основные объекты библиотеки NLTK=== | ===Основные объекты библиотеки NLTK=== |
Текущая версия
Содержание |
Объявления
Для прохождения спецкурса и получения оценки необходимо выслать мне на почту презентации ваших отчетов по прикладным проектам или kaggle-соревнованиям до 23:59 25 июня.
Структура презентации:
- постановка задачи, визуализация особенностей данных
- baseline решение (наиболее простое и логичное, или которым все пользуются в рассматриваемой области) - описание, точность (в kaggle-соревнованиях этот пункт не нужен).
- ваше решение - описание, точность
- альтернативные решения, которые вы пробовали - описание, точность
- пару слов: что еще можно было бы улучшить и попробовать
Для получения максимальной оценки должны быть представлены все пункты в презентации.
Описание
В спецкурсе "Методы автоматической обработки текстов" рассматриваются практические задачи работы с текстами используя язык программирования Python, математические библиотеки и библиотеки по работе с текстами NLTK, а также другие средства, нацеленные на работу с русским языком. Целью спецкурса является познакомить слушателей с основными задачами по работе с текстами и дать навыки практической работы.
Курс длится в течение весеннего семестра 2016 года. От студентов предполагается знание языка Python с научными библиотеками numpy, scipy, matplotlib, pandas, а также знакомство с основами статистики и основами машинного обучения.
Оценивание
Оценка за курс выставляется на основе выполнения практического проекта, реализующего согласованную с преподавателем задачу автоматической обработки текстов. Варианты задачи:
- лингвистическое исследование различий диалекта языка для разного времени, разных авторов и разных источников информации
- построение классификатора текстов по темам, авторам, жанрам и т.д.
- эмоциональный анализ отзывов
- извлечение тем из коллекции текстов
- автоматическая суммаризация текстов
- извлечение объектов определенного типа (персоны, географические названия и др.) из текста и определение отношений между ними
и другие темы, которые использовали бы методы, изучаемые на занятиях, и имеющие элементы научной новизны.
Задание
Если вы не определились и не согласовали ваш проект по анализу текстов, вам предлагается поучастовать в каждом из 2х kaggle соревнований:
1. Определение зарплаты по описанию вакансии в интернете
2. Определение страны происхождения рецепта
Даже если у вас есть собственный согласованный со мной проект, участие хотя бы в одном из этих соревнований все равно рекомендуется - это интересно, это расширит ваш кругозор и даст дополнительные бонусы при определении итоговой оценки за спецкурс.
Работа с текстом - рекомендации.
Классификация текстов - обзор.
Туториалы
- Короткие базовые демонстрации по работе с python, jupiter notebook, numpy, scikit-learn и т.д.
- A Crash Course in Python for Scientists
- Numpy
- Matplotlib
- Pandas
- Scikit-learn
- Работа с текстом в scikit-learn
- Scipy Lecture Notes
Материалы семинаров
ipynb скрипты расположены здесь. Поскольку большинство примеров бралось из Natural Language Processing with Python. и scikit-learn documentation, то рекомендуется обращаться к этим источникам за деталями.
Материалы
Основной учебник этого спецкурса: Natural Language Processing with Python. Stewen Bird et. al. 2-nd edition. 2016.
Speech and Language Processing. Dan Jurafsky and James H. Martin. 2-nd edition. 2009.
Питон и необходимые библиотеки
- Anaconda - дистрибутив питона с предустановленными научными библиотеками
- библиотека NLTK по работе с текстами
- A Crash Course in Python for Scientists
- Numpy
- Matplotlib
- Scipy Lecture Notes
- Pandas
- Scikit-learn
Дополнительные библиотеки
- Морфологический анализатор от Яндекса
- Библиотека морфологической работы с русскими текстами PyMorphy
- Каталог утилит для работы с русскими и английскими текстами
Интересные ссылки
Национальный корпус русского языка - всевозможные коллекции русских текстов с разметкой
Генератор случайных текстов по заданной тематике
Вопросно-ответная система WolframAlpha
Каталог старых газет на русском
Каталог старых газет от Google