Enfoque general para extraer texto clave de la oración (nlp)

Respuestas:

30

Shallow N atural L anguage P técnica rocesadorasde se pueden utilizar para extraer conceptos de frase.

-------------------------------------------

Pasos de la técnica de PNL superficial:

1) Convertir la oración a minúsculas

2) Elimine las palabras vacías (estas son palabras comunes que se encuentran en un idioma. Palabras como for, very y, of, are, etc., son palabras de parada comunes)

3) Extraiga n-grama, es decir, una secuencia contigua de n elementos de una secuencia de texto dada (simplemente aumentando n, el modelo puede usarse para almacenar más contexto)

4) Asignar una etiqueta sintáctica (sustantivo, verbo, etc.)

5) Extracción de conocimiento del texto a través del enfoque de análisis semántico / sintáctico, es decir, tratar de retener palabras que tengan mayor peso en una oración como Sustantivo / Verbo

-------------------------------------------

Vamos a examinar los resultados de aplicar los pasos anteriores a la oración dada Complimentary gym access for two for the length of stay ($12 value per person per day).

Resultados de 1 gramo: gimnasio, acceso, duración, estadía, valor, persona, día

Summary of step 1 through 4 of shallow NLP:

1-gram          PoS_Tag   Stopword (Yes/No)?    PoS Tag Description
-------------------------------------------------------------------    
Complimentary   NNP                             Proper noun, singular
gym             NN                              Noun, singular or mass
access          NN                              Noun, singular or mass
for             IN         Yes                  Preposition or subordinating conjunction
two             CD                              Cardinal number
for             IN         Yes                  Preposition or subordinating conjunction
the             DT         Yes                  Determiner
length          NN                              Noun, singular or mass
of              IN         Yes                  Preposition or subordinating conjunction
stay            NN                              Noun, singular or mass
($12            CD                              Cardinal number
value           NN                              Noun, singular or mass
per             IN                              Preposition or subordinating conjunction
person          NN                              Noun, singular or mass
per             IN                              Preposition or subordinating conjunction
day)            NN                              Noun, singular or mass

Step 4: Retaining only the Noun/Verbs we end up with gym, access, length, stay, value, person, day

Vamos a aumentar n para almacenar más contexto y eliminar palabras vacías.

Resultados de 2 gramos: gimnasio gratuito, acceso al gimnasio, estadía prolongada, valor de estadía

Summary of step 1 through 4 of shallow NLP:

2-gram              Pos Tag
---------------------------
access two          NN CD
complimentary gym   NNP NN
gym access          NN NN
length stay         NN NN
per day             IN NN
per person          IN NN
person per          NN IN
stay value          NN NN
two length          CD NN
value per           NN IN

Step 5: Retaining only the Noun/Verb combination we end up with complimentary gym, gym access, length stay, stay value

Resultados de 3 gramos: acceso gratuito al gimnasio, duración de la estadía, persona por día

Summary of step 1 through 4 of shallow NLP:

3-gram                      Pos Tag
-------------------------------------
access two length           NN CD NN
complimentary gym access    NNP NN NN
gym access two              NN NN CD
length stay value           NN NN NN
per person per              IN NN IN
person per day              NN IN NN
stay value per              NN NN IN
two length stay             CD NN NN
value per person            NN IN NN


Step 5: Retaining only the Noun/Verb combination we end up with complimentary gym access, length stay value, person per day

Cosas para recordar:

  • Consulte el banco de árbol Penn para comprender la descripción de la etiqueta PoS https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
  • Dependiendo de sus datos y del contexto comercial , puede decidir el valor n para extraer n-gramos de la oración
  • Agregar palabras de detención específicas del dominio aumentaría la calidad de extracción de concepto / tema
  • La técnica de PNL profunda dará mejores resultados, es decir, en lugar de n-gramo, detectará relaciones dentro de las oraciones y representará / expresará como una construcción compleja para retener el contexto. Para obtener información adicional, consulte /stats//a/133680/66708

Herramientas:

Puede considerar usar OpenNLP / StanfordNLP para el etiquetado de parte de voz. La mayoría del lenguaje de programación tiene una biblioteca de soporte para OpenNLP / StanfordNLP. Puede elegir el idioma según su comodidad. A continuación se muestra el código R de muestra que utilicé para el etiquetado PoS.

Código R de muestra:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 32-bit version
library(rJava)
require("openNLP")
require("NLP")

s <- paste("Complimentary gym access for two for the length of stay $12 value per person per day")

tagPOS <-  function(x, ...) {
  s <- as.String(x)
    word_token_annotator <- Maxent_Word_Token_Annotator()
    a2 <- Annotation(1L, "sentence", 1L, nchar(s))
    a2 <- annotate(s, word_token_annotator, a2)
    a3 <- annotate(s, Maxent_POS_Tag_Annotator(), a2)
    a3w <- a3[a3$type == "word"]
    POStags <- unlist(lapply(a3w$features, `[[`, "POS"))
    POStagged <- paste(sprintf("%s/%s", s[a3w], POStags), collapse = " ")
    list(POStagged = POStagged, POStags = POStags)
  }

  tagged_str <-  tagPOS(s)
  tagged_str

#$POStagged
#[1] "Complimentary/NNP gym/NN access/NN for/IN two/CD for/IN the/DT length/NN of/IN stay/NN $/$ 12/CD value/NN per/IN     person/NN per/IN day/NN"
#
#$POStags
#[1] "NNP" "NN"  "NN"  "IN"  "CD"  "IN"  "DT"  "NN"  "IN"  "NN"  "$"   "CD" 
#[13] "NN"  "IN"  "NN"  "IN"  "NN" 

Lecturas adicionales en PNL superficial y profunda:

  • Procesamiento de PNL superficial y profundo para el aprendizaje de ontología: una descripción rápida Haga clic aquí

  • Integrando PNL superficial y profundo para extracción de información Haga clic aquí

Manohar Swamynathan
fuente
Excelente respuesta (+1). Solo una sugerencia: si es posible, proporcione literatura o, al menos, referencias generales para la técnica superficial de PNL que ha mencionado.
Aleksandr Blekh
1
Muchas gracias. Dos preguntas, ¿puedo hacer esto con nltk? ¿Podría usar tf-idf para hacer lo mismo, luego tomar las palabras más singulares (puntajes más altos) como mis palabras clave?
William Falcon
@ Aleksandr Blekh, gracias. He agregado enlaces de lectura adicionales para aprender más sobre PNL superficial y profunda. Espero que esto ayude
Manohar Swamynathan
@ William Falcon, gracias. 1) Sí, puede usar nltk 2) Absolutamente, TF-IDF se puede usar si está tratando de encontrar el concepto o tema a nivel de documento (s).
Manohar Swamynathan
3

Debe analizar la estructura de la oración y extraer las categorías sintácticas de interés correspondientes (en este caso, creo que sería una frase sustantiva , que es una categoría de frase ). Para más detalles, vea el artículo correspondiente de Wikipedia y el capítulo "Análisis de la estructura de la oración" del libro NLTK.

Con respecto a las herramientas de software disponibles para implementar el enfoque mencionado anteriormente y más allá, sugeriría considerar NLTK (si prefiere Python) o el software StanfordNLP (si prefiere Java). Para muchos otros marcos de trabajo de PNL, bibliotecas y soporte de varios idiomas de programación, vea las secciones correspondientes (PNL) en esta excelente lista seleccionada .

Aleksandr Blekh
fuente
0

Si usted es un usuario de R, hay una gran cantidad de buena información práctica en http://www.rdatamining.com . Mira sus ejemplos de minería de texto.
Además, eche un vistazo al paquete tm.
Este también es un buen sitio de agregación: http://www.tapor.ca/

Michael Cox
fuente
Los enlaces no se consideran respuestas válidas en este sitio. Responda la pregunta original en su publicación y use enlaces para complementar su respuesta.
sheldonkreger