Clasificación estadística del texto.

32

Soy un programador sin antecedentes estadísticos, y actualmente estoy buscando diferentes métodos de clasificación para una gran cantidad de documentos diferentes que quiero clasificar en categorías predefinidas. He estado leyendo sobre kNN, SVM y NN. Sin embargo, tengo algunos problemas para comenzar. ¿Qué recursos me recomiendan? Conozco bastante bien el cálculo de una sola variable y de múltiples variables, por lo que mis matemáticas deberían ser lo suficientemente fuertes. También tengo el libro de Bishop sobre redes neuronales, pero ha demostrado ser un poco denso como introducción.

Emil H
fuente

Respuestas:

19

Recomiendo estos libros, también están altamente calificados en Amazon:

"Minería de texto" por Weiss

"Programación de aplicaciones de minería de texto", por Konchady

Para el software, recomiendo RapidMiner (con el complemento de texto), gratuito y de código abierto.

Este es mi "proceso de minería de texto":

  • recopilar los documentos (generalmente un rastreo web)
    • [muestra si es demasiado grande]
    • marca de tiempo
    • quitar el marcado
  • tokenizar: dividir en caracteres, palabras, n-gramas o ventanas deslizantes
  • stemming (también conocido como lematización)
    • [incluir sinónimos]
    • ver los pronombres y los artículos del algoritmo de portador o copo de nieve suelen ser malos predictores
  • eliminar palabras vacías
  • vectorización de características
    • binario (aparece o no)
    • el recuento de palabras
    • frecuencia relativa: tf-idf
    • ganancia de información, chi cuadrado
    • [tener un valor mínimo para la inclusión]
  • ponderación
    • pondera las palabras en la parte superior del documento más arriba?

Entonces puede comenzar el trabajo de clasificarlos. kNN, SVM o Naive Bayes, según corresponda.

Puedes ver mi serie de videos de minería de texto aquí

Neil McGuigan
fuente
¡Esta es una respuesta genial! Revisaré las sugerencias de tu libro, y la descripción de tu proceso también es excelente. Me gustan especialmente las sugerencias para las vectorizaciones de características.
Emil H
(Si a alguien le gustaría dar más detalles sobre la parte de vectorización, sería genial.)
Emil H
11

Un excelente texto introductorio que cubre los temas que mencionó es Introducción a la recuperación de información , que está disponible en línea en texto completo de forma gratuita.

Introducción a la recuperación de información

Fabian Steeg
fuente
De hecho, escaneé eso en el trabajo ayer. Es una lectura interesante: desearía tener más tiempo para absorber el material, pero tenía que conseguir lo que necesitaba y seguir adelante.
Thomas Owens
De acuerdo, ese es un excelente libro. Explica más o menos cómo funciona Google :)
Neil McGuigan
5

La red neuronal puede ser lenta para una gran cantidad de documentos (también esto ahora es bastante obsoleto).
Y también puede marcar Random Forest entre los clasificadores; Es bastante rápido, se escala bien y no necesita ajustes complejos.


fuente
+1 para bosques aleatorios. Definitivamente un buen clasificador para probar primero, ya que no se sobreajustan.
Zach
4

Si viene del lado de la programación, una opción es usar el Kit de herramientas de lenguaje natural (NLTK) para Python. Hay un libro de O'Reilly, disponible gratuitamente , que podría ser una introducción menos densa y más práctica para crear clasificadores de documentos, entre otras cosas.

Si está interesado en reforzar el aspecto estadístico, el libro de Roger Levy en curso, Modelos probabilísticos en el estudio del lenguaje , podría no ser malo para leerlo. Está escrito para estudiantes de posgrado cogsci / compsci que comienzan con técnicas estadísticas de PNL.

ars
fuente
3

En primer lugar, puedo recomendar el libro Fundamentos del procesamiento estadístico del lenguaje natural de Manning y Schütze.

Los métodos que usaría son distribuciones de frecuencia de palabras y modelos de lenguaje ngram. El primero funciona muy bien cuando quieres clasificar un tema y tus temas son específicos y expertos (con palabras clave). El modelado de Ngram es la mejor manera de clasificar estilos de escritura, etc.

Peter Smit
fuente
0

Naive Bayes suele ser el punto de partida para la clasificación de texto, aquí hay un artículo del Dr. Dobbs sobre cómo implementar uno. También es a menudo el punto final para la clasificación de texto porque es muy eficiente y se paraleliza bien, SpamAssassin y POPFile lo usan.

Yaroslav Bulatov
fuente