Approccio generale per estrarre il testo chiave dalla frase (nlp)


Risposte:


30

Shallow N atural L anguage P tecnica rocessing possono essere utilizzati per estrarre i concetti da sentenza.

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

Passaggi della tecnica NLP superficiale:

1) Converti la frase in minuscolo

2) Rimuovere le parole d'ordine (sono parole comuni trovate in una lingua. Parole come, molto, e, di, sono, ecc. Sono parole d'ordine comuni)

3) Estrai n-grammo, cioè una sequenza contigua di n elementi da una determinata sequenza di testo (semplicemente aumentando n, il modello può essere usato per memorizzare più contesto)

4) Assegna un'etichetta sintattica (nome, verbo ecc.)

5) Estrazione della conoscenza dal testo attraverso un approccio di analisi semantica / sintattica, cioè, cerca di trattenere parole che hanno un peso maggiore in una frase come Noun / Verb

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

Esaminiamo i risultati dell'applicazione dei passaggi precedenti alla frase specificata Complimentary gym access for two for the length of stay ($12 value per person per day).

Risultati di 1 grammo: palestra, accesso, lunghezza, permanenza, valore, persona, giorno

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

Consente di aumentare n per memorizzare più contesto e rimuovere le password.

Risultati di 2 grammi: palestra gratuita, accesso alla palestra, durata del soggiorno, valore del soggiorno

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

Risultati di 3 grammi: accesso gratuito alla palestra, durata del soggiorno, persona al giorno

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

Cose da ricordare:

  • Fare riferimento alla banca degli alberi Penn per comprendere la descrizione del tag PoS https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
  • A seconda dei dati e del contesto aziendale, puoi decidere il valore n per estrarre n-grammi dalla frase
  • L'aggiunta di parole d'ordine specifiche del dominio aumenterebbe la qualità dell'estrazione di concetti / temi
  • La tecnica NLP profonda fornirà risultati migliori, cioè, piuttosto che n-grammo, rileverà le relazioni all'interno delle frasi e rappresenterà / esprimerà come una costruzione complessa per conservare il contesto. Per ulteriori informazioni, consultare /stats//a/133680/66708

Utensili:

Puoi prendere in considerazione l'utilizzo di OpenNLP / StanfordNLP per la codifica di parte del discorso. La maggior parte del linguaggio di programmazione ha una libreria di supporto per OpenNLP / StanfordNLP. Puoi scegliere la lingua in base al tuo comfort. Di seguito è riportato il codice R di esempio che ho usato per la codifica PoS.

Codice R di esempio:

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" 

Letture aggiuntive sulla PNL superficiale e profonda:

  • Elaborazione NLP superficiale e profonda per l'apprendimento dell'ontologia: una rapida panoramica Fare clic qui

  • Integrazione della PNL superficiale e profonda per l'estrazione delle informazioni Fare clic qui


Risposta eccellente (+1). Solo un suggerimento: se possibile, fornire letteratura o, almeno, riferimenti generali per la tecnica PNL superficiale che hai menzionato.
Aleksandr Blekh,

1
Grazie mille. Due domande, posso farlo con nltk? Potrei usare tf-idf per fare lo stesso, quindi prendere le parole più uniche (i punteggi più alti) come parole chiave?
William Falcon,

@ Aleksandr Blekh, grazie. Ho aggiunto ulteriori collegamenti di lettura per saperne di più sulla PNL superficiale e profonda. Spero che questo aiuti
Manohar Swamynathan il

@ William Falcon, grazie. 1) Sì, puoi usare nltk 2) Assolutamente, puoi usare TF-IDF Se stai cercando di trovare il concetto o il tema a livello di documento.
Manohar Swamynathan,

3

Devi analizzare la struttura della frase ed estrarre le corrispondenti categorie sintattiche di interesse (in questo caso, penso che sarebbe una frase di sostantivo , che è una categoria di frase ). Per i dettagli, consultare l' articolo Wikipedia corrispondente e il capitolo "Analisi della struttura delle frasi" del libro NLTK.

Per quanto riguarda gli strumenti software disponibili per l'implementazione dell'approccio sopra menzionato e oltre, suggerirei di prendere in considerazione il software NLTK (se preferite Python) o StanfordNLP (se preferite Java). Per molti altri framework NLP, librerie e programmazione di supporto per varie lingue, vedere le sezioni corrispondenti (NLP) in questo eccellente elenco .


0

Se sei un utente R, ci sono molte buone informazioni pratiche su http://www.rdatamining.com . Guarda i loro esempi di mining di testo.
Inoltre, dai un'occhiata al pacchetto tm.
Questo è anche un buon sito di aggregazione- http://www.tapor.ca/


I collegamenti non sono considerati risposte valide su questo sito. Rispondi alla domanda originale nel tuo post e utilizza i link per integrare la tua risposta.
sheldonkreger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.