POS Tagging με NLTK και Chunking σε NLP (ΠΑΡΑΔΕΙΓΜΑΤΑ)

Πίνακας περιεχομένων:

Anonim

Ετικέτα POS

POS Tagging (Parts of Speech Tagging) είναι μια διαδικασία σήμανσης των λέξεων σε μορφή κειμένου για ένα συγκεκριμένο μέρος μιας ομιλίας με βάση τον ορισμό και το περιβάλλον της. Είναι υπεύθυνο για την ανάγνωση κειμένου σε μια γλώσσα και την εκχώρηση συγκεκριμένου διακριτικού (Parts of Speech) σε κάθε λέξη. Ονομάζεται επίσης γραμματική επισήμανση.

Ας μάθουμε με ένα παράδειγμα NLTK Part of Speech:

Είσοδος: Όλα για να μας επιτρέψετε.

Έξοδος : [(«Όλα», NN), («έως», TO), («άδεια», VB), («us», PRP)]

Βήματα που περιλαμβάνονται στο παράδειγμα προσθήκης ετικετών POS:

  • Tokenize κείμενο (word_tokenize)
  • εφαρμόστε pos_tag στο παραπάνω βήμα που είναι nltk.pos_tag (tokenize_text)

Τα παραδείγματα ετικετών NLTK POS είναι τα παρακάτω:

Συντομογραφία Εννοια
CC συντονισμός συντονισμού
CD βασικό ψηφίο
DT καθοριστής
ΠΡΩΗΝ υπαρξια εκεί
FW ξένη λέξη
ΣΕ πρόθεση / δευτερεύουσα σύνδεση
Τζ Αυτή η ετικέτα NLTK POS είναι ένα επίθετο (μεγάλο)
JJR επίθετο, συγκριτικό (μεγαλύτερο)
JJS επίθετο, υπερθετικό (μεγαλύτερο)
LS αγορά καταλόγου
MD τροπική (θα μπορούσε, θα)
ΝΝ ουσιαστικό, μοναδικό (γάτα, δέντρο)
NNS πληθυντικός (γραφεία)
ΝΝΡ σωστό ουσιαστικό, ενικό (sarah)
NNPS σωστό ουσιαστικό, πληθυντικός (Ινδοί ή Αμερικανοί)
PDT προκαθοριστής (όλα, και τα δύο, μισά)
POS κτητικό τέλος (γονέας)
PRP προσωπική αντωνυμία (δική της, ο ίδιος, αυτός, ο ίδιος)
PRP $ κτητική αντωνυμία (αυτή, δική μου, δική μου, δική μας)
RB επίρρημα (περιστασιακά, γρήγορα)
RBR επίρρημα, συγκριτικό (μεγαλύτερο)
RBS επίρρημα, υπερθετικό (μεγαλύτερο)
RP σωματίδιο (περίπου)
ΠΡΟΣ ΤΗΝ άπειρος δείκτης (έως)
Ω παρεμβολή (αντίο)
VB ρήμα (ρωτήστε)
VBG ρήμα gerund (κρίνοντας)
VBD ρήμα παρελθόν (παρακαλούμενο)
VBN ρήμα past participle (επανενώθηκε)
VBP ρήμα, παρόν τεταμένο όχι τρίτο άτομο ενικό (περιτύλιγμα)
VBZ ρήμα, παρούσα ένταση με 3ο άτομο ενικό (βάσεις)
WDT wh-determiner (ότι, τι)
WP whoun (ποιος)
WRB wh- επίρρημα (πώς)

Η παραπάνω λίστα ετικετών NLTK POS περιέχει όλες τις ετικέτες POS NLTK. Το NLTK POS tagger χρησιμοποιείται για την εκχώρηση γραμματικών πληροφοριών για κάθε λέξη της πρότασης. Η εγκατάσταση, η εισαγωγή και η λήψη όλων των πακέτων του POS NLTK έχει ολοκληρωθεί.

Τι είναι το Chunking στο NLP;

Το Chunking στο NLP είναι μια διαδικασία για τη λήψη μικρών πληροφοριών και την ομαδοποίησή τους σε μεγάλες μονάδες. Η κύρια χρήση του Chunking είναι η δημιουργία ομάδων "ουσιαστικών φράσεων". Χρησιμοποιείται για την προσθήκη δομής στην πρόταση ακολουθώντας POS tagging σε συνδυασμό με κανονικές εκφράσεις. Η προκύπτουσα ομάδα λέξεων ονομάζεται "κομμάτια". Ονομάζεται επίσης ρηχή ανάλυση.

Σε ρηχή ανάλυση, υπάρχει ένα μέγιστο επίπεδο μεταξύ των ριζών και των φύλλων, ενώ η βαθιά ανάλυση αποτελείται από περισσότερα από ένα επίπεδα. Η ρηχή ανάλυση ονομάζεται επίσης ελαφριά ανάλυση ή περικοπή.

Κανόνες για Chunking:

Δεν υπάρχουν προκαθορισμένοι κανόνες, αλλά μπορείτε να τους συνδυάσετε ανάλογα με τις ανάγκες και τις απαιτήσεις.

Για παράδειγμα, πρέπει να επισημάνετε το ουσιαστικό, το ρήμα (past tense), το επίθετο και τη συνένωση συντονισμού από την πρόταση. Μπορείτε να χρησιμοποιήσετε τον κανόνα όπως παρακάτω

κομμάτι: {*** ?}

Ο παρακάτω πίνακας δείχνει τι σημαίνει τα διάφορα σύμβολα:

Όνομα συμβόλου Περιγραφή
. Οποιοσδήποτε χαρακτήρας εκτός από τη νέα γραμμή
* Ταιριάξτε 0 ή περισσότερες επαναλήψεις
; Ταιριάξτε 0 ή 1 επαναλήψεις

Τώρα ας γράψουμε τον κώδικα για να κατανοήσουμε καλύτερα τον κανόνα

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Παραγωγή

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Το συμπέρασμα από το παραπάνω μέρος της ετικέτας Python με ετικέτα ομιλίας: "make" είναι ένα ρήμα που δεν περιλαμβάνεται στον κανόνα, επομένως δεν επισημαίνεται ως mychunk

Χρησιμοποιήστε το Case of Chunking

Το Chunking χρησιμοποιείται για την ανίχνευση οντοτήτων. Μια οντότητα είναι εκείνο το μέρος της πρότασης με την οποία η μηχανή λαμβάνει την αξία για οποιαδήποτε πρόθεση

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Με άλλα λόγια, το chunking χρησιμοποιείται ως επιλογή των υποομάδων των διακριτικών. Ακολουθήστε τον παρακάτω κώδικα για να κατανοήσετε πώς χρησιμοποιείται το chunking για την επιλογή των διακριτικών. Σε αυτό το παράδειγμα, θα δείτε το γράφημα που θα αντιστοιχεί σε ένα κομμάτι ουσιαστικής φράσης. Θα γράψουμε τον κώδικα και θα σχεδιάσουμε το γράφημα για καλύτερη κατανόηση.

Κωδικός για επίδειξη θήκης χρήσης

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Έξοδος :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Γραφική παράσταση

Γράφημα κομματιού φράσης

Από το γράφημα, μπορούμε να συμπεράνουμε ότι το "μάθετε" και το "γκουρού99" είναι δύο διαφορετικά διακριτικά, αλλά κατηγοριοποιούνται ως φράση ουσιαστικού, ενώ το διακριτικό "από" δεν ανήκει στη φράση ουσιαστικών.

Το Chunking χρησιμοποιείται για την κατηγοριοποίηση διαφορετικών μαρκών στο ίδιο κομμάτι. Το αποτέλεσμα θα εξαρτηθεί από τη γραμματική που έχει επιλεγεί. Περαιτέρω Chunking NLTK χρησιμοποιείται για την επισήμανση μοτίβων και για την εξερεύνηση κειμένων.

Περίληψη

  • Το POS Tagging σε NLTK είναι μια διαδικασία σήμανσης των λέξεων σε μορφή κειμένου για ένα συγκεκριμένο μέρος μιας ομιλίας με βάση τον ορισμό και το περιβάλλον της.
  • Μερικά παραδείγματα ετικετών NLTK POS είναι: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO κ.λπ.
  • Το POS tagger χρησιμοποιείται για την εκχώρηση γραμματικών πληροφοριών για κάθε λέξη της πρότασης. Η εγκατάσταση, η εισαγωγή και η λήψη όλων των πακέτων του τμήματος του Speech tagging με το NLTK έχει ολοκληρωθεί.
  • Το Chunking στο NLP είναι μια διαδικασία για τη λήψη μικρών πληροφοριών και την ομαδοποίησή τους σε μεγάλες μονάδες.
  • Δεν υπάρχουν προκαθορισμένοι κανόνες, αλλά μπορείτε να τους συνδυάσετε ανάλογα με τις ανάγκες και τις απαιτήσεις.
  • Το Chunking χρησιμοποιείται για την ανίχνευση οντοτήτων. Μια οντότητα είναι εκείνο το μέρος της πρότασης με την οποία η μηχανή λαμβάνει την αξία για οποιαδήποτε πρόθεση
  • Το Chunking χρησιμοποιείται για την κατηγοριοποίηση διαφορετικών μαρκών στο ίδιο κομμάτι.