La realización de las tareas de clasificación para el aprendizaje automático

Se puede poner el procesamiento de texto en uso para la máquina de aprendizaje con las tareas de clasificación. Al clasificar los textos, se asigna un documento a una clase por los temas que se discuten.

Puede descubrir los temas en un documento de diferentes maneras. El enfoque más simple es impulsado por la idea de que si un grupo de personas que habla o escribe sobre un tema, las personas tienden a utilizar palabras de un vocabulario limitado, porque se refieren o se refieren a un mismo tema. Cuando se comparte algún significado o son parte de un mismo grupo, se tiende a utilizar el mismo lenguaje.

En consecuencia, si usted tiene una colección de textos y no sabe qué temas las referencias de texto, se puede invertir el razonamiento anterior - sólo tiene que buscar grupos de palabras que tienden a asociar, por lo que su grupo recién formado por la reducción de dimensionalidad puede insinuar en los temas que le gustaría conocer. Esta es una tarea típica de aprendizaje no supervisado.

Esta tarea de aprendizaje es una aplicación perfecta para la descomposición en valores singulares (SVD) de la familia de algoritmos, porque al reducir el número de columnas, las características (que, en un documento, son las palabras) se reunirán en dimensiones, y se puede descubrir los temas mediante la comprobación de palabras de alta puntuación. SVD y el Análisis de Componentes Principales (PCA) proporcionan características de relacionarse tanto positiva como negativamente a las dimensiones de nueva creación.

Por lo que resulta un tema puede ser expresada por la presencia de una palabra (de alto valor positivo) o por la ausencia de ella (de alto valor negativo), haciendo la interpretación tanto complicado y contrario a la intuición para los seres humanos. El paquete scikit-learn incluye la clase de descomposición no negativo matriz de factorización (NMF), que permite una característica original que sólo se refieren positivamente con las dimensiones resultantes.

Este ejemplo comienza con un nuevo experimento después de cargar el 20newsgroups conjunto de datos, un conjunto de datos recogida de grupos de noticias raspado de la web, seleccionando sólo los mensajes con respecto a los objetos en venta y quitar automáticamente los encabezados, pies de página y citas. Es posible que reciba un mensaje de advertencia en el sentido de, ADVERTENCIA: sklearn.datasets.twenty_newsgroups: Descarga de datos de ..., con la URL del sitio utilizado para la descarga cuando se trabaja con este código.

advertencias de importación

(warnings.filterwarnings"ignorar")

de fetch_20newsgroups sklearn.datasets importación

conjunto de datos = fetch_20newsgroups (shuffle = Verdadero,

categorías = [ `misc.forsale`],

eliminar = ( `cabeceras`, ``, `pies de página de cotizaciones`), random_state = 101)

print ( `Mensajes:% i` % len (dataset.data))

Mensajes: 585

los TfidVectorizer clase es importado y configurado para eliminar las palabras vacías (palabras comunes como el o y) Y mantener sólo las palabras distintivas, produciendo una matriz cuyas columnas apuntar a palabras distintas.

TfidfVectorizer de importación sklearn.feature_extraction.text

Vectorizer = TfidfVectorizer (max_df = 0,95,

min_df = 2, stop_words = `Inglés`)

TFIDF = vectorizer.fit_transform (dataset.data)

sklearn.decomposition de importación NMF

n_topics = 5

NMF = NMF (n_components = n_topics, random_state = 101) .fit (TFIDF)

frecuencia inversa documento término de frecuencia (TF-IDF) es un simple cálculo basado en la frecuencia de una palabra en el documento. Se pondera por la rareza de la palabra entre todos los documentos disponibles. Ponderación palabras es una forma efectiva para descartar palabras que no pueden ayudar a clasificar o identificar el documento al procesar el texto. Por ejemplo, puede eliminar las partes comunes del habla u otras palabras comunes.

Al igual que con otros algoritmos de la sklearn.decomposition módulo, el n_components parámetro indica el número de componentes deseados. Si desea buscar más temas, se utiliza un número más alto. A medida que el número requerido de temas aumenta, la método reconstruction_err_ reporta menores tasas de error. Depende de usted decidir cuándo parar dada la disyuntiva entre más tiempo en los cálculos y más temas.

La última parte de la secuencia de comandos da salida a las cinco temas resultantes. Al leer las palabras impresas, puede decidir sobre el significado de los temas extraídos, gracias a las características del producto (por ejemplo, las palabras conducir, duro, tarjeta, y flexible referirse a los ordenadores) o el producto exacto (por ejemplo, cómics, coche, equipo de música, juegos).

FEATURE_NAMEs = vectorizer.get_feature_names ()

n_top_words = 15

para topic_idx, tema en enumerate (nmf.components_):

impresión ("Tema #% d:" % (Topic_idx + 1),)

impresión (" ".join ([FEATURE_NAMEs [i] para i de

topic.argsort () [: - n_top_words - 1: -1]]))

Video: GAMES #13: Autoencoders

Tema # 1:

conducir tarjeta de disco floppy monitor de meg marca placa base disco RAM VGA SCSI

módem interno de color

Tema # 2:

00 50 20 10 15 dos de la cubierta 1. ° 25 de precios hombre de 40 cómics envío

Tema # 3:

condición excelente oferta de venta pidiendo mejor coche viejo buenas nuevas millas 10 000

cinta cd

Tema # 4:

correo electrónico en busca de correo juegos de juego interesados ​​enviar como paquete de precios gracias

lista de venta quieren saber

Tema # 5:

estéreo vídeo del envío trabaja obo incluye amplificador más grandes vhs volumen Mathes unc

Gibbs Radley

Usted puede explorar el modelo resultante mirando en el atributo components_ Del modelo de NMF entrenado. Consiste en una NumPy ndarray sosteniendo valores positivos para las palabras relacionadas con el tema. Mediante el uso de la argsort método, es posible obtener los índices de las principales asociaciones, cuyos valores altos indican que son las palabras más representativas.

impresión (. nmf.components_ [0,:] argsort () [: - n_top_words-1: -1])

# Obtiene palabras superiores de 0 tema

[1337 1749 889 1572 2342 2263 2803 1290 2353 3615 3017 806 1022 1938

2334]

La decodificación de los índices de las palabras crea cadenas legibles por llamarlos de la matriz derivada de la get_feature_names método aplicado a la TfidfVectorizer que se equipó previamente.

impresión (vectorizer.get_feature_names () [1337])

# Transforma índice de 1337 volver al texto

manejar

Artículos Relacionados