Προσθήκη ετικετών POS με NLTK και Chunking στο NLP [ΠΑΡΑΔΕΙΓΜΑΤΑ]
Προσθήκη ετικετών POS
Προσθήκη ετικετών POS (Parts of Speech Tagging) είναι μια διαδικασία για τη σήμανση των λέξεων σε μορφή κειμένου για ένα συγκεκριμένο μέρος μιας ομιλίας με βάση τον ορισμό και το περιεχόμενό της. Είναι υπεύθυνο για την ανάγνωση κειμένου σε μια γλώσσα και για την ανάθεση κάποιου συγκεκριμένου διακριτικού (Μέρη ομιλίας) σε κάθε λέξη. Ονομάζεται επίσης γραμματική σήμανση.
Ας μάθουμε με ένα παράδειγμα NLTK Part of Speech:
εισόδου: Όλα για να μας επιτρέψουν.
Παραγωγή: [('Όλα', NN),('προς', TO), ('άδεια', VB), ('εμάς', PRP)]
Βήματα που περιλαμβάνονται στο παράδειγμα προσθήκης ετικετών POS
- Tokenize κείμενο (word_tokenize)
- εφαρμόστε το pos_tag στο παραπάνω βήμα που είναι nltk.pos_tag(tokenize_text)
Τα παραδείγματα ετικετών POS NLTK είναι τα παρακάτω:
Συντομογραφία | Νόημα |
---|---|
CC | συντονιστικός σύνδεσμος |
CD | βασικό ψηφίο |
DT | καθοριστικό |
EX | υπαρξιακή εκεί |
FW | ξένη λέξη |
IN | πρόθεση / δευτερεύων σύνδεσμος |
JJ | Αυτή η ετικέτα POS NLTK είναι επίθετο (μεγάλο) |
JJR | επίθετο, συγκριτικό (μεγαλύτερο) |
Jjs | επίθετο, υπερθετικός (μεγαλύτερος) |
LS | αγορά καταλόγου |
MD | τροπικός (θα μπορούσε, θα) |
NN | ουσιαστικό, ενικό (γάτα, δέντρο) |
NNS | ουσιαστικό πληθυντικού (γραφεία) |
NNP | κύριο ουσιαστικό, ενικό (sarah) |
NNPS | κύριο ουσιαστικό, πληθυντικός (Ινδιάνοι ή Αμερικανοί) |
PDT | προκαθοριστής (όλα, και τα δύο, μισά) |
POS | κτητική κατάληξη (γονέας) |
PRP | προσωπική αντωνυμία (της, η ίδια, αυτός, ο ίδιος) |
PRP$ | κτητική αντωνυμία (αυτή, του, δική μου, μου, μας) |
RB | επίρρημα (περιστασιακά, γρήγορα) |
Επέκταση RBR | επίρρημα, συγκριτικό (μεγαλύτερο) |
RBS | επίρρημα, υπερθετικός (μεγαλύτερος) |
RP | σωματίδιο (περίπου) |
ΠΡΟΣ ΤΗΝ | άπειρος δείκτης (προς) |
UH | επιφώνημα (αντίο) |
VB | ρήμα (ρωτώ) |
GBV | ρήμα γερούνδιο (κρίνω) |
VBD | παρελθόντος ρήματος (παρακαλώ) |
VBN | ρήμα παρατατικό (επανενωμένο) |
VBP | ρήμα, ενεστώτα όχι 3ο ενικό πρόσωπο (αναδίπλωση) |
VBZ | ρήμα, ενεστώτα με 3ο ενικό πρόσωπο (βάσεις) |
wdt | προσδιοριστής wh (αυτό, τι) |
WP | wh- αντωνυμία (ποιος) |
WRB | wh- επίρρημα (πώς) |
Η παραπάνω λίστα ετικετών POS NLTK περιέχει όλες τις ετικέτες POS NLTK. Η ετικέτα NLTK POS χρησιμοποιείται για την εκχώρηση γραμματικών πληροφοριών για κάθε λέξη της πρότασης. Ολοκληρώθηκε η εγκατάσταση, η εισαγωγή και η λήψη όλων των πακέτων του POS NLTK.
Τι είναι το Chunking στο NLP;
Τσούνκιν στο NLP είναι μια διαδικασία λήψης μικρών κομματιών πληροφοριών και ομαδοποίησης τους σε μεγάλες μονάδες. Η κύρια χρήση του Chunking είναι η δημιουργία ομάδων «ουσιατικών φράσεων». Χρησιμοποιείται για την προσθήκη δομής στην πρόταση ακολουθώντας ετικέτες POS σε συνδυασμό με κανονικές εκφράσεις. Η προκύπτουσα ομάδα λέξεων ονομάζεται "κομμάτια". Ονομάζεται επίσης ρηχή ανάλυση.
Στην ρηχή ανάλυση, υπάρχει το πολύ ένα επίπεδο μεταξύ ριζών και φύλλων, ενώ η βαθιά ανάλυση περιλαμβάνει περισσότερα από ένα επίπεδα. Η ρηχή ανάλυση ονομάζεται επίσης ελαφριά ανάλυση ή τεμαχισμός.
Κανόνες για το Chunking
Δεν υπάρχουν προκαθορισμένοι κανόνες, αλλά μπορείτε να τους συνδυάσετε ανάλογα με τις ανάγκες και τις απαιτήσεις.
Για παράδειγμα, πρέπει να προσθέσετε ετικέτα ουσιαστικού, ρήματος (παρελθόντος χρόνου), επίθετου και συντονιστικού συνδέσμου από την πρόταση. Μπορείτε να χρησιμοποιήσετε τον κανόνα όπως παρακάτω
μεγάλο κομμάτι:{ * * * ?}
Ο παρακάτω πίνακας δείχνει τι σημαίνει τα διάφορα σύμβολα:
Όνομα συμβόλου | Τεχνικές Περιγραφές |
---|---|
. | Οποιοσδήποτε χαρακτήρας εκτός από τη νέα γραμμή |
* | Αντιστοιχίστε 0 ή περισσότερες επαναλήψεις |
? | Ταιριάξτε 0 ή 1 επαναλήψεις |
Τώρα ας γράψουμε τον κώδικα για να κατανοήσουμε καλύτερα τον κανόνα
from nltk import pos_tag from nltk import RegexpParser text ="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:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}""" 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: <ChunkRule: '<NN.?>*<VBD.?>*<JJ.?>*<CC>?'> After Chunking (S (mychunk learn/JJ) (mychunk php/NN) from/IN (mychunk guru99/NN and/CC) make/VB (mychunk study/NN easy/JJ))
Το συμπέρασμα από την παραπάνω επισήμανση μέρους του λόγου Python παράδειγμα: "κάνω" είναι ένα ρήμα που δεν περιλαμβάνεται στον κανόνα, επομένως δεν επισημαίνεται ως mychunk
Χρήση Case of Chunking
Το Chunking χρησιμοποιείται για τον εντοπισμό οντοτήτων. Μια οντότητα είναι εκείνο το μέρος της πρότασης με το οποίο η μηχανή παίρνει την τιμή για οποιαδήποτε πρόθεση.
Example: Temperature of New York. Here Temperature is the intention and New York is an entity.
Με άλλα λόγια, το chunking χρησιμοποιείται για την επιλογή των υποσυνόλων των διακριτικών. Ακολουθήστε τον παρακάτω κώδικα για να κατανοήσετε πώς χρησιμοποιείται το chunking για την επιλογή των διακριτικών. Σε αυτό το παράδειγμα, θα δείτε το γράφημα που θα αντιστοιχεί σε ένα κομμάτι μιας ουσιαστικής φράσης. Θα γράψουμε τον κώδικα και θα σχεδιάσουμε το γράφημα για καλύτερη κατανόηση.
Κώδικας για επίδειξη περίπτωσης χρήσης
import nltk text = "learn php from guru99" tokens = nltk.word_tokenize(text) print(tokens) tag = nltk.pos_tag(tokens) print(tag) grammar = "NP: {<DT>?<JJ>*<NN>}" 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
Διάγραμμα
Από το γράφημα, μπορούμε να συμπεράνουμε ότι το "learn" και το "guru99" είναι δύο διαφορετικά διακριτικά, αλλά κατηγοριοποιούνται ως Ουσιαστική Φράση, ενώ το διακριτικό "από" δεν ανήκει στη Φράση Ουσιαστικού.
Το Chunking χρησιμοποιείται για την κατηγοριοποίηση διαφορετικών διακριτικών στο ίδιο κομμάτι. Το αποτέλεσμα θα εξαρτηθεί από τη γραμματική που έχει επιλεγεί. Το Περαιτέρω Chunking NLTK χρησιμοποιείται για την προσθήκη ετικετών σε μοτίβα και για την εξερεύνηση σωμάτων κειμένου.
ΜΕΤΡΗΣΗ ΕΤΙΚΕΤΩΝ POS
Έχουμε συζητήσει διάφορα post_tag στην προηγούμενη ενότητα. Σε αυτό το συγκεκριμένο σεμινάριο, θα μελετήσετε πώς να μετράτε αυτές τις ετικέτες. Η καταμέτρηση ετικετών είναι ζωτικής σημασίας για την ταξινόμηση του κειμένου καθώς και για την προετοιμασία των χαρακτηριστικών για τις λειτουργίες που βασίζονται σε φυσική γλώσσα. Θα συζητήσω μαζί σας την προσέγγιση που ακολούθησε ο guru99 κατά την προετοιμασία του κώδικα μαζί με μια συζήτηση για την έξοδο. Ελπίζω ότι αυτό θα σας βοηθήσει.
Πώς να μετρήσετε ετικέτες:
Εδώ πρώτα θα γράψουμε κώδικα εργασίας και μετά θα γράψουμε διάφορα βήματα για να εξηγήσουμε τον κώδικα.
from collections import Counter import nltk text = "Guru99 is one of the best sites to learn WEB, SAP, Ethical Hacking and much more online." lower_case = text.lower() tokens = nltk.word_tokenize(lower_case) tags = nltk.pos_tag(tokens) counts = Counter( tag for word, tag in tags) print(counts)
Παραγωγή:
Μετρητής({'NN': 5, ',': 2, 'TO': 1, 'CC': 1, 'VBZ': 1, 'NNS': 1, 'CD': 1, '.': 1 , 'DT': 1, 'JJS': 1, 'JJ': 1, 'JJR': 1, 'IN': 1, 'VB': 1, 'RB': 1})
Επεξεργασία του κώδικα
- Για να μετρήσετε τις ετικέτες, μπορείτε να χρησιμοποιήσετε το πακέτο Μετρητής από τη μονάδα της συλλογής. Ο μετρητής είναι μια υποκατηγορία λεξικού που λειτουργεί με βάση την αρχή της λειτουργίας κλειδιού-τιμής. Είναι μια μη ταξινομημένη συλλογή όπου τα στοιχεία αποθηκεύονται ως κλειδί λεξικού ενώ η καταμέτρηση είναι η τιμή τους.
- Εισαγάγετε το nltk το οποίο περιέχει λειτουργικές μονάδες για τη δημιουργία διακριτικών του κειμένου.
- Γράψτε το κείμενο του οποίου το pos_tag θέλετε να μετρήσετε.
- Ορισμένες λέξεις είναι με κεφαλαία και κάποιες με πεζά, επομένως είναι σκόπιμο να μεταμορφωθούν όλες οι λέξεις με πεζά πριν από την εφαρμογή του tokenization.
- Περάστε τις λέξεις μέσω του word_tokenize από το nltk.
- Υπολογίστε το pos_tag κάθε διακριτικού
Output = [('guru99', 'NN'), ('is', 'VBZ'), ('one', 'CD'), ('of', 'IN'), ('the', 'DT'), ('best', 'JJS'), ('site', 'NN'), ('to', 'TO'), ('learn', 'VB'), ('web', 'NN'), (',', ','), ('sap', 'NN'), (',', ','), ('ethical', 'JJ'), ('hacking', 'NN'), ('and', 'CC'), ('much', 'RB'), ('more', 'JJR'), ('online', 'JJ')]
- Τώρα έρχεται ο ρόλος του μετρητή λεξικού. Έχουμε εισαγάγει στη γραμμή κώδικα 1. Οι λέξεις είναι το κλειδί και οι ετικέτες είναι η τιμή και ο μετρητής θα μετράει το συνολικό πλήθος κάθε ετικέτας που υπάρχει στο κείμενο.
Κατανομή συχνότητας
Η κατανομή συχνότητας αναφέρεται ως ο αριθμός των φορών που εμφανίζεται ένα αποτέλεσμα ενός πειράματος. Χρησιμοποιείται για την εύρεση της συχνότητας κάθε λέξης που εμφανίζεται σε ένα έγγραφο. Χρησιμοποιεί FreqDistclass και ορίζεται από το nltk.πιθανότητα μονάδα μέτρησης.
Μια κατανομή συχνότητας δημιουργείται συνήθως με την καταμέτρηση των δειγμάτων επανειλημμένης εκτέλεσης του πειράματος. Ο αριθμός των μετρήσεων αυξάνεται κατά ένα, κάθε φορά. Π.χ
freq_dist = FreqDist()
για το διακριτικό στο έγγραφο:
freq_dist.inc(token.type())
Για οποιαδήποτε λέξη, μπορούμε να ελέγξουμε πόσες φορές εμφανίστηκε σε ένα συγκεκριμένο έγγραφο. Π.χ
- Μέθοδος καταμέτρησης: freq_dist.count('and') Αυτή η έκφραση επιστρέφει την τιμή του αριθμού των φορών που συνέβη το 'and'. Ονομάζεται μέθοδος μέτρησης.
- Μέθοδος συχνότητας: freq_dist.freq('and') Αυτή η έκφραση επιστρέφει τη συχνότητα ενός δεδομένου δείγματος.
Θα γράψουμε ένα μικρό πρόγραμμα και θα εξηγήσουμε τη λειτουργία του λεπτομερώς. Θα γράψουμε κάποιο κείμενο και θα υπολογίσουμε την κατανομή συχνότητας κάθε λέξης του κειμένου.
import nltk a = "Guru99 is the site where you can find the best tutorials for Software Testing Tutorial, SAP Course for Beginners. Java Tutorial for Beginners and much more. Please visit the site guru99.com and much more." words = nltk.tokenize.word_tokenize(a) fd = nltk.FreqDist(words) fd.plot()
Επεξήγηση κωδικού:
- Εισαγωγή μονάδας nltk.
- Γράψτε το κείμενο του οποίου η κατανομή λέξεων πρέπει να βρείτε.
- Προσαρμόστε κάθε λέξη στο κείμενο που χρησιμοποιείται ως είσοδος στη μονάδα FreqDist του nltk.
- Εφαρμόστε κάθε λέξη στο nlk.FreqDist με τη μορφή λίστας
- Σχεδιάστε τις λέξεις στο γράφημα χρησιμοποιώντας plot()
Παρακαλούμε οραματιστείτε το γράφημα για καλύτερη κατανόηση του κειμένου που γράφτηκε
ΣΗΜΕΙΩΣΗ: Πρέπει να έχετε εγκαταστήσει το matplotlib για να δείτε το παραπάνω γράφημα
Παρατηρήστε το παραπάνω γράφημα. Αντιστοιχεί στην καταμέτρηση της εμφάνισης κάθε λέξης στο κείμενο. Βοηθά στη μελέτη του κειμένου και περαιτέρω στην εφαρμογή συναισθηματικής ανάλυσης που βασίζεται σε κείμενο. Με λίγα λόγια, μπορούμε να συμπεράνουμε ότι το nltk έχει μια ενότητα για την καταμέτρηση της εμφάνισης κάθε λέξης στο κείμενο που βοηθά στην προετοιμασία των στατιστικών στοιχείων των χαρακτηριστικών της φυσικής γλώσσας. Παίζει σημαντικό ρόλο στην εύρεση των λέξεων-κλειδιών στο κείμενο. Μπορείτε επίσης να εξαγάγετε το κείμενο από το pdf χρησιμοποιώντας βιβλιοθήκες όπως το extract, PyPDF2 και να τροφοδοτήσετε το κείμενο στο nlk.FreqDist.
Ο βασικός όρος είναι "tokenize". Μετά το tokenizing, ελέγχει για κάθε λέξη σε μια δεδομένη παράγραφο ή έγγραφο κειμένου για να προσδιορίσει πόσες φορές εμφανίστηκε. Δεν χρειάζεστε την εργαλειοθήκη NLTK για αυτό. Μπορείτε επίσης να το κάνετε με τις δικές σας δεξιότητες προγραμματισμού python. Η εργαλειοθήκη NLTK παρέχει μόνο έναν έτοιμο προς χρήση κώδικα για τις διάφορες λειτουργίες.
Η καταμέτρηση κάθε λέξης μπορεί να μην είναι πολύ χρήσιμη. Αντίθετα, θα πρέπει να εστιάσετε στη συνεγκατάσταση και τα διγράμματα που ασχολούνται με πολλές λέξεις σε ένα ζευγάρι. Αυτά τα ζεύγη προσδιορίζουν χρήσιμες λέξεις-κλειδιά για καλύτερες λειτουργίες φυσικής γλώσσας που μπορούν να τροφοδοτηθούν στο μηχάνημα. Δείτε παρακάτω για τις λεπτομέρειες τους.
Συνθέσεις: Διγράμματα και τρίγραμμα
Τι είναι οι Συνεγκαταστάσεις;
Οι συνθέσεις είναι τα ζεύγη λέξεων που εμφανίζονται μαζί πολλές φορές σε ένα έγγραφο. Υπολογίζεται από τον αριθμό αυτών των ζευγών που εμφανίζονται μαζί στο συνολικό πλήθος λέξεων του εγγράφου.
Εξετάστε το ηλεκτρομαγνητικό φάσμα με λέξεις όπως υπεριώδεις ακτίνες, υπέρυθρες ακτίνες.
Οι λέξεις υπεριώδες και ακτίνες δεν χρησιμοποιούνται μεμονωμένα και ως εκ τούτου μπορούν να αντιμετωπιστούν ως Συνεγκατάσταση. Ένα άλλο παράδειγμα είναι η αξονική τομογραφία. Δεν λέμε CT και Scan ξεχωριστά, και ως εκ τούτου αντιμετωπίζονται επίσης ως συντοπισμός.
Μπορούμε να πούμε ότι η εύρεση συντοπισμών απαιτεί τον υπολογισμό των συχνοτήτων των λέξεων και την εμφάνισή τους στο πλαίσιο άλλων λέξεων. Αυτές οι συγκεκριμένες συλλογές λέξεων απαιτούν φιλτράρισμα για τη διατήρηση χρήσιμων όρων περιεχομένου. Κάθε γραμμάριο λέξεων μπορεί στη συνέχεια να βαθμολογηθεί σύμφωνα με κάποιο μέτρο συσχέτισης, για να προσδιοριστεί η σχετική πιθανότητα κάθε Ingram να είναι συνεγκατάσταση.
Η συνεγκατάσταση μπορεί να κατηγοριοποιηθεί σε δύο τύπους-
- Bigrams γσυνδυασμός δύο λέξεων
- Τρίγραμμασυνδυασμός τριών λέξεων
Τα διγράμματα και τα τριγράμματα παρέχουν πιο ουσιαστικά και χρήσιμα χαρακτηριστικά για το στάδιο εξαγωγής χαρακτηριστικών. Αυτά είναι ιδιαίτερα χρήσιμα στη συναισθηματική ανάλυση που βασίζεται σε κείμενο.
Bigrams Παράδειγμα κώδικα
import nltk text = "Guru99 is a totally new kind of learning experience." Tokens = nltk.word_tokenize(text) output = list(nltk.bigrams(Tokens)) print(output)
Παραγωγή:
[('Guru99', 'is'), ('is', 'totally'), ('totally', 'new'), ('new', 'kind'), ('kind', 'of'), ('of', 'learning'), ('learning', 'experience'), ('experience', '.')]
Τρίγραμμα Παράδειγμα Κώδικας
Μερικές φορές είναι σημαντικό να δείτε ένα ζευγάρι τριών λέξεων στην πρόταση για στατιστική ανάλυση και μέτρηση συχνότητας. Αυτό και πάλι παίζει καθοριστικό ρόλο στη διαμόρφωση NLP (χαρακτηριστικά επεξεργασίας φυσικής γλώσσας) καθώς και συναισθηματική πρόβλεψη με βάση το κείμενο.
Ο ίδιος κωδικός εκτελείται για τον υπολογισμό των τριγραμμάτων.
import nltk text = “Guru99 is a totally new kind of learning experience.” Tokens = nltk.word_tokenize(text) output = list(nltk.trigrams(Tokens)) print(output)
Παραγωγή:
[('Guru99', 'is', 'totally'), ('is', 'totally', 'new'), ('totally', 'new', 'kind'), ('new', 'kind', 'of'), ('kind', 'of', 'learning'), ('of', 'learning', 'experience'), ('learning', 'experience', '.')]
Προσθήκη ετικετών σε προτάσεις
Η προσθήκη ετικετών στην πρόταση με μια ευρύτερη έννοια αναφέρεται στην προσθήκη ετικετών του ρήματος, του ουσιαστικού κ.λπ., από το πλαίσιο της πρότασης. Η αναγνώριση των ετικετών POS είναι μια περίπλοκη διαδικασία. Επομένως, η γενική προσθήκη ετικετών στο POS δεν είναι δυνατή με μη αυτόματο τρόπο, καθώς ορισμένες λέξεις μπορεί να έχουν διαφορετικές (διφορούμενες) έννοιες ανάλογα με τη δομή της πρότασης. Η μετατροπή του κειμένου σε μορφή λίστας είναι ένα σημαντικό βήμα πριν από την προσθήκη ετικετών, καθώς κάθε λέξη στη λίστα επαναλαμβάνεται και μετράται για μια συγκεκριμένη ετικέτα. Δείτε τον παρακάτω κώδικα για να τον καταλάβετε καλύτερα
import nltk text = "Hello Guru99, You have to build a very good site, and I love visiting your site." sentence = nltk.sent_tokenize(text) for sent in sentence: print(nltk.pos_tag(nltk.word_tokenize(sent)))
Παραγωγή:
[('Γεια', 'NNP'), ('Guru99', 'NNP'), (',', ','), ('Εσείς', 'PRP'), ('έχω', 'VBP') , ('build', 'VBN'), ('a', 'DT'), ('πολύ', 'RB'), ('καλό', 'JJ'), ('site', 'NN') , ('και', 'CC'), ('I', 'PRP'), ('love', 'VBP'), ('Visiting', 'VBG'), ('σου', 'PRP$'" ), ('site', 'NN'), ('.', '.')]
Επεξήγηση κώδικα:
- Κώδικας για εισαγωγή nltk (Εργαλειοθήκη φυσικής γλώσσας που περιέχει υποενότητες όπως η πρόταση tokenize και η λέξη tokenize.)
- Κείμενο του οποίου οι ετικέτες πρόκειται να εκτυπωθούν.
- Tokenization πρότασης
- Ο βρόχος For υλοποιείται όπου οι λέξεις ονομάζονται από πρόταση και η ετικέτα κάθε λέξης εκτυπώνεται ως έξοδος.
Στο Corpus υπάρχουν δύο τύποι ετικετών POS:
- Βασισμένο σε κανόνες
- Stochastic POS Taggers
1.Ετικέτα POS βάσει κανόνων: Για τις λέξεις που έχουν διφορούμενη σημασία, εφαρμόζεται προσέγγιση βασισμένη σε κανόνες με βάση πληροφορίες συμφραζομένων. Αυτό γίνεται ελέγχοντας ή αναλύοντας τη σημασία της προηγούμενης ή της επόμενης λέξης. Οι πληροφορίες αναλύονται από το περιβάλλον της λέξης ή μέσα της. Επομένως, οι λέξεις επισημαίνονται με τους γραμματικούς κανόνες μιας συγκεκριμένης γλώσσας, όπως η κεφαλαία και η στίξη. π.χ., το tagger του Brill.
2.Stochastic POS Tagger: Σε αυτή τη μέθοδο εφαρμόζονται διαφορετικές προσεγγίσεις όπως η συχνότητα ή η πιθανότητα. Εάν μια λέξη έχει ως επί το πλείστον ετικέτα με μια συγκεκριμένη ετικέτα στο σετ εκπαίδευσης, τότε στη δοκιμαστική πρόταση δίνεται η συγκεκριμένη ετικέτα. Η λέξη ετικέτα δεν εξαρτάται μόνο από τη δική της ετικέτα αλλά και από την προηγούμενη ετικέτα. Αυτή η μέθοδος δεν είναι πάντα ακριβής. Ένας άλλος τρόπος είναι να υπολογίσετε την πιθανότητα εμφάνισης μιας συγκεκριμένης ετικέτας σε μια πρόταση. Έτσι, η τελική ετικέτα υπολογίζεται ελέγχοντας την υψηλότερη πιθανότητα μιας λέξης με μια συγκεκριμένη ετικέτα.
Προσθήκη ετικετών POS με το Hidden Markov Model
Τα προβλήματα προσθήκης ετικετών μπορούν επίσης να μοντελοποιηθούν χρησιμοποιώντας HMM. Αντιμετωπίζει τα διακριτικά εισόδου ως παρατηρήσιμες ακολουθίες, ενώ οι ετικέτες θεωρούνται ως κρυφές καταστάσεις και στόχος είναι να προσδιοριστεί η ακολουθία κρυφών καταστάσεων. Για παράδειγμα x = x1,x2,…………,Χn όπου x είναι μια ακολουθία κουπονιών ενώ y = y1,y2,y3,y4………εnείναι η κρυφή ακολουθία.
Πώς λειτουργεί το κρυφό μοντέλο Markov (HMM);
Το HMM χρησιμοποιεί κατανομή σύνδεσης που είναι P(x, y) όπου x είναι η ακολουθία εισόδου/ακολουθία διακριτικών και y είναι η ακολουθία ετικετών.
Η ακολουθία ετικετών για το x θα είναι argmaxy1….ynp(x1,x2,….xn,y1,y2,y3,…..). Έχουμε κατηγοριοποιήσει ετικέτες από το κείμενο, αλλά τα στατιστικά αυτών των ετικετών είναι ζωτικής σημασίας. Έτσι, το επόμενο μέρος είναι η καταμέτρηση αυτών των ετικετών για στατιστική μελέτη.
Περίληψη
- Προσθήκη ετικετών POS NLTK είναι μια διαδικασία για τη σήμανση των λέξεων σε μορφή κειμένου για ένα συγκεκριμένο μέρος μιας ομιλίας με βάση τον ορισμό και το περιεχόμενό της.
- Μερικά παραδείγματα ετικετών POS NLTK είναι: CC, CD, EX, JJ, MD, NNP, PDT, PRP$, TO, κ.λπ.
- Η ετικέτα POS χρησιμοποιείται για την εκχώρηση γραμματικών πληροφοριών για κάθε λέξη της πρότασης. Η εγκατάσταση, η εισαγωγή και η λήψη όλων των πακέτων του Part of Speech tagging με NLTK ολοκληρώθηκε.
- Το Chunking στο NLP είναι μια διαδικασία για τη λήψη μικρών κομματιών πληροφοριών και την ομαδοποίηση τους σε μεγάλες μονάδες.
- Δεν υπάρχουν προκαθορισμένοι κανόνες, αλλά μπορείτε να τους συνδυάσετε ανάλογα με τις ανάγκες και τις απαιτήσεις.
- Το Chunking χρησιμοποιείται για τον εντοπισμό οντοτήτων. Μια οντότητα είναι εκείνο το μέρος της πρότασης με το οποίο η μηχανή παίρνει την τιμή για οποιαδήποτε πρόθεση.
- Το Chunking χρησιμοποιείται για την κατηγοριοποίηση διαφορετικών διακριτικών στο ίδιο κομμάτι.