¿Se puede utilizar el análisis semántico latente para la clasificación de documentos?

Si y no,

Disculpas si te he confundido. Explicaré la parte del “Sí” primero.

I. Por qué sí:

————-

No solo LSA, sino que cualquier sistema de comparación de documentos puede usarse teóricamente para la clasificación de documentos.

Una clase en sí misma puede modelarse como un documento compuesto. Si, por ejemplo, desea tener dos clases, diga “Deportes” y “No deportes”. Para entrenar la categoría (o clase) “Deportes”, puede copiar y pegar una serie de documentos relacionados con el deporte en un solo archivo, y de manera similar, para los documentos “No deportivos” puede copiar algunos documentos en un solo archivo que No pertenece al deporte. Al final de su entrenamiento, tiene dos archivos, digamos “Sports.txt” y “Not_Sports.txt”. Estas son esencialmente sus clases que indexa en su sistema de búsqueda de documentos.

Configurar su sistema LSA para la clasificación posteriormente tiene, en términos generales, los siguientes pasos:

1. Entrene su sistema con el vocabulario y los contextos de su idioma. En términos simples, indexe sus corpus.

2. Indice sus documentos de categoría / clase – “Sports.txt” y “Not_Sports.txt” en este caso.

La clasificación a partir de entonces es una consulta con filtrado

Continuando con el ejemplo anterior, suponga que tiene un documento entrante “ABC.txt” que desea clasificar. Puede configurar “ABC.txt” como documento de consulta y buscar en todos los corpus documentos similares. El sistema le devolverá todos los documentos ordenados por similitud. Posteriormente, filtra la posición de “Sports.txt” y “Not_Sports.txt” de esta lista de similitudes ordenada. Dependiendo del documento que aparezca en la lista ordenada, clasifica “ABC.txt” en esa clase. Entonces, si “Sports.txt” aparece antes que “Not_Sports.txt” en el puntaje de similitud, entonces podemos decir que “ABC.txt” pertenece a la clase “Sports”. Si se invierte el orden de similitud, entonces “ABC.txt” se clasifica como “No deportivo”.

Por supuesto, puede optimizar el cálculo de similitud solo para “Sports.txt” y “Not_Sports.txt”. Pero esta no será su principal preocupación. Su principal preocupación se explica en la siguiente sección.

II Porque no:

———-

Entonces, la parte teórica es, por supuesto, “Sí”. La parte “No” se refiere principalmente al aspecto práctico, aunque no es un no difícil.

La practicidad se ve obstaculizada por dos preocupaciones:

1. La complejidad computacional de LSA – LSA requiere SVD (Descomposición de valor singular). Para el término mxn por matriz de documentos, la complejidad computacional de SVD es O (m ^ 2.n + n ^ 2.m + n ^ 3) a tiempo. Puede ignorar el aspecto del espacio a partir de ahora, la RAM es barata. La complejidad temporal de SVD es el principal factor limitante de este enfoque. Me gustaría agregar aquí que puede reducir este tiempo significativamente al tener una representación optimizada de la matriz td dispersa (y reducir el enfoque orientado a objetos. El operador de puntos en OO es un asesino absoluto aquí).

2. Requisito de indexación incremental: para cada documento entrante como “ABC.txt”, deberá indexarlo en el sistema antes de poder realizar una búsqueda de similitud. La indexación de un nuevo documento en el sistema requiere el recálculo de SVD y la recombinación de las matrices U, E y V en dimensiones reducidas. Además, con cada reentrenamiento (o actualización de los archivos de clase), tendrá que repetir el mismo ejercicio. A menos y hasta que tenga todos los documentos que deben clasificarse de antemano, en ese caso puede indexar de una vez, pero aún necesitará volver a calcular SVD si decide volver a capacitar a sus clases.

III. Alternativas

———————

Entonces, el “No” no es un “NO” difícil. Existen alternativas y mejores enfoques para el cálculo de SVD:

1. Tener una mejor representación de matriz dispersa / compacta para la matriz td.

2. Pruebe métodos alternativos de cálculo SVD

Echa un vistazo a esto :

Modificaciones rápidas de bajo rango de la descomposición Think Singular Value [Matthew Brand]: http://www.merl.com/publications…

Otros enfoques para optimizar SVD son las redes estocásticas y neuronales, etc. No he explorado tanto.

3. Pruebe otros métodos de reducción de dimensionalidad como la indexación aleatoria (basada en el lema de Johnson-Lindenstrauss). El proyecto de vectores semánticos semanticvectors / semanticvectors se basa en estos principios. Da agrupación de documentos. También puede crear clasificación de documentos extendiéndola. Tenemos un sistema en producción basado en principios similares y está funcionando bien.


Saludos.


More Interesting

Andrew Ng: ¿Por qué ya no es necesario entrenar capas a través de codificadores automáticos para Deep Learning?

¿Puede cualquier máquina interpretar y actuar sobre las respuestas que da Watson en lenguaje humano?

¿Cuáles son los mejores algoritmos de aprendizaje sin supervisión para la corrección ortográfica?

¿Cuál es el mejor instituto de capacitación para el aprendizaje automático en Hyderabad?

¿Qué tipo de empresas necesitan / necesitarán ingenieros de Machine Learning?

¿Qué tan significativo es el artículo de FractalNet?

Quiero escribir un trabajo de investigación sobre análisis de sentimientos, pero no sé nada sobre el análisis de sentimientos. ¿Cómo debo proceder?

RNN para modelado de idiomas en Tensorflow. ¿Cómo puedo rellenar las secuencias si mi entrada está constituida por la incorporación de palabras?

¿Las implementaciones físicas de las redes neuronales son claramente preferibles a las GPU?

Cómo comenzar una investigación independiente en aprendizaje profundo

¿Por qué Python es tan brillantemente superior a R en aprendizaje automático y tan totalmente inferior en estadística médica e investigación de drogas?

Cómo construir un conjunto de datos para el aprendizaje automático

¿Qué tan buenas son mis posibilidades de conseguir un trabajo de científico de datos con un doctorado en el campo de la visión por computadora?

¿Cuáles son las consecuencias y desventajas de usar datos agregados? ¿Cómo podemos combatirlos si no hay datos de nivel granular?

¿Cuál es la diferencia entre Hadoop y Teradata aster?