Статистическая классификация текста

32

Я программист без статистического образования, и в настоящее время я смотрю на различные методы классификации для большого количества различных документов, которые я хочу классифицировать по заранее определенным категориям. Я читал о KNN, SVM и NN. Однако у меня есть некоторые проблемы с началом работы. Какие ресурсы вы рекомендуете? Я достаточно хорошо знаю одно переменное и многопараметрическое исчисление, поэтому моя математика должна быть достаточно сильной. У меня также есть книга Бишопа по нейронным сетям, но в качестве введения она оказалась немного плотной.

Эмиль Н
источник

Ответы:

19

Я рекомендую эти книги - они также высоко ценятся на Amazon:

"Text Mining" Вайса

«Программирование текстового майнинга», Кончади

Для программного обеспечения я рекомендую RapidMiner (с текстовым плагином), бесплатный и с открытым исходным кодом.

Это мой "процесс добычи текста":

  • собирать документы (обычно это веб-сканирование)
    • [образец, если слишком большой]
    • отметка времени
    • убрать разметку
  • tokenize: разбить на символы, слова, n-граммы или скользящие окна
  • stemming (он же лемматизация)
    • [включить синонимы]
    • см. местоимения алгоритма портера или снежинки и статьи, как правило, плохие предикторы
  • удалить стоп-слова
  • Векторизация
    • двоичный (появляется или нет)
    • количество слов
    • Относительная частота: TF-IDF
    • получение информации, площадь чи
    • [иметь минимальное значение для включения]
  • взвешивание
    • вес слова вверху документа выше?

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

Вы можете посмотреть мою серию видео о майнинге текста здесь

Нил Макгиган
источник
Это отличный ответ! Я рассмотрю ваши предложения по книге, и описание вашего процесса также великолепно. Мне особенно нравятся предложения по векторизации объектов.
Эмиль Х
(Если бы кто-то хотел бы уточнить детали в части векторизации, это было бы здорово.)
Эмиль Х
11

Отличным вводным текстом, охватывающим упомянутые вами темы, является « Введение в поиск информации» , которое доступно в Интернете в виде полного текста бесплатно.

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

Фабиан Стиг
источник
Я на самом деле сканировал это на работе вчера. Это интересное чтение - хотелось бы, чтобы у меня было больше времени, чтобы впитать материал, но я должен был получить то, что мне нужно, и двигаться дальше.
Томас Оуэнс
согласился, это отличная книга. Это в значительной степени объясняет, как работает Google :)
Нил Макгиган
5

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


источник
+1 для случайных лесов. Определенно хороший классификатор, чтобы попробовать 1-й, так как они не подходят.
Зак
4

Если вы работаете со стороны программирования, одним из вариантов является использование Natural Language Toolkit (NLTK) для Python. Есть книга O'Reilly, доступная бесплатно , которая может быть менее плотным и более практичным введением в построение классификаторов для документов среди прочего.

Если вы заинтересованы в расширении статистических данных, книга Роджера Леви « Вероятностные модели в изучении языка» может быть неплохой для прочтения. Это написано для аспирантов / студентов, начинающих со статистических методов НЛП.

АРС
источник
3

Во-первых, я могу порекомендовать вам книгу « Основы статистической обработки естественного языка » Мэннинга и Шютце.

Методы, которые я бы использовал, - это частотные распределения слов и модели языка ngram. Первый работает очень хорошо, когда вы хотите классифицировать по теме, а ваши темы являются конкретными и экспертными (с ключевыми словами). Ngram моделирование - лучший способ для классификации стилей письма и т. Д.

Питер Смит
источник
0

Наивный байесовский анализ обычно является отправной точкой для классификации текста, вот статья доктора Доббса о том, как ее реализовать. Это также часто является конечной точкой для классификации текста, потому что она настолько эффективна и хорошо распараллеливается, что используют SpamAssassin и POPFile.

Ярослав Булатов
источник