Allgemeine Vorgehensweise zum Extrahieren von Schlüsseltexten aus Sätzen (nlp)


Antworten:


30

Shallow N atural L anguage P rocessing Technik kann Konzepte von Satz zu extrahieren , verwendet werden.

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

Flache NLP-Schritte:

1) Wandle den Satz in Kleinbuchstaben um

2) Stoppwörter entfernen (dies sind gebräuchliche Wörter in einer Sprache. Wörter wie for, very und of, are usw. sind gebräuchliche Stoppwörter.)

3) N-Gramm extrahieren, dh eine zusammenhängende Folge von n Elementen aus einer gegebenen Folge von Text (einfach n erhöhen, Modell kann verwendet werden, um mehr Kontext zu speichern)

4) Weisen Sie eine syntaktische Bezeichnung zu (Substantiv, Verb usw.)

5) Wissensextraktion aus Text durch semantische / syntaktische Analyse, dh versuchen, Wörter mit höherem Gewicht in einem Satz wie Nomen / Verb zu behalten

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

Untersuchen wir die Ergebnisse der Anwendung der obigen Schritte auf Ihren gegebenen Satz Complimentary gym access for two for the length of stay ($12 value per person per day).

1 Gramm Ergebnisse: Fitnessstudio, Zugang, Länge, Aufenthalt, Wert, Person, Tag

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

Erhöhen Sie n, um mehr Kontext zu speichern und Stoppwörter zu entfernen.

2 Gramm Ergebnisse: kostenloses Fitnessstudio, Zugang zum Fitnessstudio, Daueraufenthalt, Aufenthaltswert

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

3-Gramm-Ergebnisse: kostenloser Zugang zum Fitnessstudio, Wert für einen längeren Aufenthalt, Person pro Tag

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

Dinge, an die man sich erinnern sollte:

  • Informationen zur PoS-Tag-Beschreibung finden Sie in der Penn Tree Bank unter https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
  • Abhängig von Ihren Daten und dem Geschäftskontext können Sie den n-Wert bestimmen, um n-Gramm aus dem Satz zu extrahieren
  • Das Hinzufügen domänenspezifischer Stoppwörter würde die Qualität der Konzept- / Themenextraktion erhöhen
  • Die Deep-NLP-Technik liefert bessere Ergebnisse, dh statt n-Gramm, erkennt Beziehungen innerhalb der Sätze und repräsentiert / drückt sie als komplexe Konstruktion aus, um den Kontext beizubehalten. Weitere Informationen finden Sie unter https://stats.stackexchange.com/a/133680/66708

Werkzeuge:

Sie können OpenNLP / StanfordNLP als Teil der Sprachkennzeichnung verwenden. Die meisten Programmiersprachen unterstützen eine Bibliothek für OpenNLP / StanfordNLP. Sie können die Sprache ganz nach Ihrem Komfort auswählen. Unten sehen Sie den Beispiel-R-Code, den ich für die PoS-Kennzeichnung verwendet habe.

Beispiel R-Code:

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" 

Zusätzliche Lesungen zu Shallow & Deep NLP:

  • Flache und tiefe NLP-Verarbeitung für das Lernen der Ontologie: Ein kurzer Überblick Klicken Sie hier

  • Integration von Shallow und Deep NLP zur Informationsextraktion Klicken Sie hier


Hervorragende Antwort (+1). Nur ein Vorschlag: Geben Sie nach Möglichkeit Literatur oder zumindest allgemeine Referenzen für die von Ihnen erwähnte flache NLP-Technik an .
Aleksandr Blekh

1
Ich danke dir sehr. Zwei Fragen, kann ich das mit nltk machen? Könnte ich tf-idf verwenden, um dasselbe zu tun, und dann die eindeutigsten Wörter (höchste Punktzahl) als Schlüsselwörter verwenden?
William Falcon

@ Aleksandr Blekh, danke. Ich habe zusätzliche Leselinks hinzugefügt, um mehr über flaches und tiefes NLP zu erfahren. Hoffe, das hilft
Manohar Swamynathan

@ William Falcon, danke. 1) Ja, Sie können nltk verwenden. 2) Absolut, TF-IDF kann verwendet werden, wenn Sie versuchen, das Konzept oder Thema auf Dokumentebene zu finden.
Manohar Swamynathan

3

Sie müssen die Satzstruktur analysieren und entsprechende interessierende syntaktische Kategorien extrahieren (in diesem Fall würde es sich meiner Meinung nach um eine Nominalphrase handeln , bei der es sich um eine phrasale Kategorie handelt ). Einzelheiten finden Sie im entsprechenden Wikipedia-Artikel und im Kapitel "Analysieren der Satzstruktur" des NLTK-Buches.

In Bezug auf verfügbare Softwaretools für die Implementierung des oben genannten Ansatzes und darüber hinaus würde ich vorschlagen, entweder NLTK (wenn Sie Python bevorzugen) oder StanfordNLP-Software (wenn Sie Java bevorzugen) in Betracht zu ziehen. Informationen zu vielen anderen NLP-Frameworks, Bibliotheken und zur Unterstützung verschiedener Sprachen finden Sie in den entsprechenden Abschnitten (NLP) in dieser hervorragenden kuratierten Liste .


0

Wenn Sie ein R-Benutzer sind, finden Sie unter http://www.rdatamining.com viele gute praktische Informationen . Schauen Sie sich die Text Mining-Beispiele an.
Schauen Sie sich auch das tm-Paket an.
Dies ist auch eine gute Aggregationssite - http://www.tapor.ca/


Links gelten nicht als gültige Antworten auf dieser Site. Bitte beantworten Sie die ursprüngliche Frage in Ihrem Beitrag und verwenden Sie Links, um Ihre Antwort zu ergänzen.
Sheldonkreger
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.