Approche générale pour extraire le texte clé d'une phrase (nlp)


Réponses:


30

Faible profondeur N atural L angue P technique rocessing peuvent être utilisées pour extraire des concepts de phrase.

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

Étapes de technique NLP peu profondes:

1) Convertissez la phrase en minuscules

2) Supprimer les mots vides (ce sont des mots courants trouvés dans une langue. Les mots comme pour, très, et, de, sont, etc., sont des mots vides courants)

3) Extraire n-gramme, c'est-à-dire une séquence contiguë de n éléments à partir d'une séquence de texte donnée (simplement augmenter n, le modèle peut être utilisé pour stocker plus de contexte)

4) Attribuer une étiquette syntaxique (nom, verbe etc.)

5) Extraction de connaissances à partir du texte grâce à une approche d'analyse sémantique / syntaxique, c'est-à-dire, essayez de conserver les mots qui ont plus de poids dans une phrase comme Noun / Verb

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

Examinons les résultats de l'application des étapes ci-dessus à votre phrase donnée Complimentary gym access for two for the length of stay ($12 value per person per day).

Résultats 1 gramme: gym, accès, durée, séjour, valeur, personne, jour

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

Permet d'augmenter n pour stocker plus de contexte et supprimer les mots vides.

Résultats de 2 grammes: gymnase gratuit, accès au gymnase, durée du séjour, valeur du séjour

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

Résultats de 3 grammes: accès gratuit à la salle de sport, durée du séjour, personne par jour

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

Choses à retenir:

  • Reportez-vous à la banque d'arbres Penn pour comprendre la description de la balise PoS https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
  • En fonction de vos données et du contexte commercial, vous pouvez décider de la valeur n pour extraire n-grammes de la phrase
  • L'ajout de mots vides spécifiques à un domaine augmenterait la qualité de l'extraction de concept / thème
  • La technique PNL profonde donnera de meilleurs résultats, c'est-à-dire qu'au lieu de n-gramme, détectera les relations au sein des phrases et représentera / exprimera comme une construction complexe pour conserver le contexte. Pour plus d'informations, veuillez consulter /stats//a/133680/66708

Outils:

Vous pouvez envisager d'utiliser OpenNLP / StanfordNLP pour le balisage Part of Speech. La plupart des langages de programmation ont une bibliothèque de support pour OpenNLP / StanfordNLP. Vous pouvez choisir la langue en fonction de votre confort. Voici l'exemple de code R que j'ai utilisé pour le marquage PoS.

Exemple de code R:

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" 

Lectures supplémentaires sur la PNL peu profonde et profonde:

  • Traitement NLP peu profond et profond pour l'apprentissage de l'ontologie: un aperçu rapide Cliquez ici

  • Intégration de la PNL peu profonde et profonde pour l'extraction d'informations Cliquez ici


Excellente réponse (+1). Une seule suggestion: si possible, fournissez de la documentation ou, au moins, des références générales pour la technique de PNL peu profonde que vous avez mentionnée.
Aleksandr Blekh

1
Merci beaucoup. Deux questions, puis-je le faire avec nltk? Puis-je utiliser tf-idf pour faire de même, puis prendre les mots les plus uniques (scores les plus élevés) comme mots clés?
William Falcon

@ Aleksandr Blekh, merci. J'ai ajouté des liens de lecture supplémentaires pour en savoir plus sur la PNL peu profonde et profonde. J'espère que cela vous aidera
Manohar Swamynathan

@ William Falcon, merci. 1) Oui, vous pouvez utiliser nltk 2) Absolument, TF-IDF peut être utilisé Si vous essayez de trouver le concept ou le thème au niveau du (des) document (s).
Manohar Swamynathan

3

Vous devez analyser la structure de la phrase et extraire les catégories syntaxiques d'intérêt correspondantes (dans ce cas, je pense que ce serait un syntagme nominal , qui est une catégorie phrasale ). Pour plus de détails, voir l'article Wikipédia correspondant et le chapitre "Analyse de la structure des phrases" du livre NLTK.

En ce qui concerne les outils logiciels disponibles pour la mise en œuvre de l'approche susmentionnée et au-delà, je suggère de considérer soit le NLTK (si vous préférez Python), soit le logiciel StanfordNLP (si vous préférez Java). Pour de nombreux autres frameworks NLP, bibliothèques et programmation de la prise en charge de divers langages, voir les sections correspondantes (NLP) dans cette excellente liste organisée .


0

Si vous êtes un utilisateur R, il y a beaucoup de bonnes informations pratiques sur http://www.rdatamining.com . Regardez leurs exemples d'exploration de texte.
Jetez également un œil au package tm.
C'est aussi un bon site d'agrégation - http://www.tapor.ca/


Les liens ne sont pas considérés comme des réponses valides sur ce site. Veuillez répondre à la question d'origine dans votre message et utiliser des liens pour compléter votre réponse.
sheldonkreger
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.