NLTK WordNet: Βρείτε Συνώνυμα από το NLTK WordNet στο Python

⚡ Έξυπνη Σύνοψη

Το WordNet είναι μια λεξιλογική βάση δεδομένων και ένας αναγνώστης corpus NLTK για τα αγγλικά που ομαδοποιεί ουσιαστικά, ρήματα, επίθετα και επιρρήματα σε συνσύνολα, επιτρέποντας Python Τα προγράμματα αναζητούν συνώνυμα, αντώνυμα, υπερώνυμα και σημασίες λέξεων για την επεξεργασία φυσικής γλώσσας.

  • 🧩 Αναγνώστης σώματος κειμένων: Το WordNet εισάγεται από το nltk.corpus και λειτουργεί ως ένα σημασιολογικά προσανατολισμένο λεξικό της αγγλικής γλώσσας.
  • 🔁 Συνδέσεις: Ένα synset είναι μια συλλογή από συνώνυμες λέξεις, όπως οι οκτώ έννοιες που επιστρέφονται για τη λέξη «dog».
  • 🔗 Λεξικές σχέσεις: Οι αμοιβαίοι σημασιολογικοί σύνδεσμοι συνδέουν συνώνυμα, αντώνυμα, υπερώνυμα και υπονύμματα.
  • 🧪 Συνώνυμα και αντώνυμα: Τουαλέταping Το over synsets και lemmas συλλέγει κάθε συνώνυμο και αντώνυμο μιας λέξης.
  • 🌳 Ιεραρχία: Τα υπερνύμματα, τα υπονύμματα, τα ολοώνυμα και τα μερώνυμα οργανώνουν τις λέξεις σε υποδίκτυα ουσιαστικών, ρημάτων, επιθέτων και επιρρημάτων.
  • 🤖 Όφελος Τεχνητής Νοημοσύνης: Το WordNet υποστηρίζει εργασίες ανάλυσης κειμένου, όπως διόρθωση ορθογραφίας, μετάφραση και ανίχνευση ανεπιθύμητης αλληλογραφίας.

NLTK WordNet

Τι είναι το Wordnet;

WordNet είναι ένα πρόγραμμα ανάγνωσης corpus NLTK, μια λεξιλογική βάση δεδομένων για την αγγλική γλώσσα. Μπορεί να χρησιμοποιηθεί για την εύρεση της σημασίας λέξεων, ενός συνωνύμου ή ενός αντωνύμου. Μπορεί κανείς να το ορίσει ως ένα σημασιολογικά προσανατολισμένο λεξικό της αγγλικής γλώσσας. Το WordNet εισάγεται με την ακόλουθη εντολή:

from nltk.corpus import wordnet as guru

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

Βρείτε Συνώνυμα από το NLTK WordNet στο Python

Τα στατιστικά αποκαλύπτουν ότι υπάρχουν 155287 λέξεις και 117659 συνώνυμο Σετ που περιλαμβάνονται στο αγγλικό WordNet. Διαφορετικές μέθοδοι που είναι διαθέσιμες με το WordNet μπορούν να βρεθούν από τον typing dir(guru), το οποίο παραθέτει κάθε χαρακτηριστικό του φορτωτή και μια βοηθητική μέθοδο που εκτίθεται από τον αναγνώστη του corpus.

Σύνθεση: Ονομάζεται επίσης σύνολο συνωνύμων ή συλλογή συνώνυμων λέξεων. Ας δούμε ένα παράδειγμα.

from nltk.corpus import wordnet
syns = wordnet.synsets("dog")
print(syns)

Παραγωγή:

[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]

Λεξικές Σχέσεις: Αυτές είναι σημασιολογικές σχέσεις που είναι αμοιβαίες. Εάν υπάρχει σχέση μεταξύ των {x1,x2,…xn} και {y1,y2,…yn}, τότε υπάρχει επίσης σχέση μεταξύ των {y1,y2,…yn} και {x1,x2,…xn}. Για παράδειγμα, το συνώνυμο είναι το αντίθετο του αντωνύμου, ενώ τα υπερώνυμα και τα υπονύμματα είναι ένας τύπος λεξικής έννοιας.

Ας γράψουμε ένα πρόγραμμα χρησιμοποιώντας Python για να βρείτε το συνώνυμο και το αντώνυμο της λέξης «active» χρησιμοποιώντας το WordNet.

from nltk.corpus import wordnet
synonyms = []
antonyms = []
for syn in wordnet.synsets("active"):
    for l in syn.lemmas():
        synonyms.append(l.name())
        if l.antonyms():
            antonyms.append(l.antonyms()[0].name())
print(set(synonyms))
print(set(antonyms))

Η έξοδος του κώδικα:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym

Επεξήγηση του κώδικα:

  • Το WordNet είναι ένα corpus, επομένως εισάγεται από το πακέτο nltk.corpus.
  • Δύο λίστες για συνώνυμα και αντώνυμα λαμβάνονται ως κενές, οι οποίες θα χρησιμοποιηθούν για την προσθήκη.
  • Τα συνώνυμα της λέξης «active» αναζητούνται με τη μέθοδο synsets και προστίθενται στη λίστα συνωνύμων. Η ίδια διαδικασία συλλέγει και τα αντώνυμα.
  • Η έξοδος εκτυπώνεται ως Python ορίζει έτσι ώστε οι διπλότυπες καταχωρήσεις να καταργούνται αυτόματα.

Πέρα από τα συνώνυμα και τα αντώνυμα, το WordNet εκθέτει επίσης υπερνύμματα (ευρύτερους όρους), υπονύμματα (πιο συγκεκριμένους όρους), ολοώνυμα και μερώνυμα, έτσι ώστε ένα μόνο ερώτημα να μπορεί να τοποθετήσει μια λέξη μέσα σε μια ολόκληρη ιεραρχία IS-a. Αυτές οι σχέσεις καθιστούν το WordNet έναν πρακτικό θησαυρό για ορθογραφικούς ελέγχους, μετάφραση γλωσσών, ανίχνευση ανεπιθύμητης αλληλογραφίας και άλλες εργασίες ανάλυσης κειμένου στην τεχνητή νοημοσύνη.

Συχνές Ερωτήσεις

Το WordNet είναι ένα πρόγραμμα ανάγνωσης corpus κειμένων NLTK και λεξιλογική βάση δεδομένων για την αγγλική γλώσσα. Λειτουργεί σαν ένα σημασιολογικά προσανατολισμένο λεξικό, επιτρέποντάς σας να αναζητήσετε τη σημασία, τα συνώνυμα και τα αντώνυμα μιας λέξης με απλές λέξεις. Python εντολές.

Ένα synset, συντομογραφία του synonymous set, είναι μια ομάδα λέξεων που μοιράζονται την ίδια έννοια. Η κλήση της συνάρτησης wordnet.synsets(“dog”) επιστρέφει πολλά synsets, καθένα από τα οποία αντιπροσωπεύει μια ξεχωριστή έννοια της λέξης “dog”.

Εκτελέστε επανάληψη στο wordnet.synsets(word) και, στη συνέχεια, επαναλάβετε το lemmas() κάθε συνόλου συνθέσεων. Προσθέστε το lemma.name() για να συλλέξετε συνώνυμα και καλέστε το lemma.antonyms() για να συλλέξετε αντώνυμα. Αναδίπλωσηping Τα αποτελέσματα στο set() αφαιρούν τις διπλότυπες καταχωρήσεις.

Ένα υπερώνυμο είναι ένας ευρύτερος, γενικός όρος (το γεύμα είναι ένα υπερώνυμο του πρωινού), ενώ ένα υποώνυμο είναι ένας πιο συγκεκριμένος όρος (το ρύζι είναι ένα υποώνυμο του γεύματος). Το WordNet συνδέει αυτά τα δύο για να σχηματίσει μια ιεραρχία "είναι".

Το αγγλικό WordNet περιλαμβάνει περίπου 155,287 λέξεις οργανωμένες σε περίπου 117,659 σύνολα συνωνύμων. Η βάση δεδομένων καλύπτει τέσσερα μέρη του λόγου: ουσιαστικά, ρήματα, επίθετα και επιρρήματα, καθένα από τα οποία είναι αποθηκευμένο στο δικό του υποδίκτυο.

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

Ναι. Οι αγωγοί τεχνητής νοημοσύνης και μηχανικής μάθησης χρησιμοποιούν μέτρα ομοιότητας WordNet, όπως η ομοιότητα διαδρομής και η ομοιότητα Wu-Palmer. Βαθμολογούν πόσο κοντά είναι δύο synsets μετρώντας τη συντομότερη διαδρομή μεταξύ τους στην ιεραρχία υπερνυμίων και υπονυμίων.

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

Συνοψίστε αυτήν την ανάρτηση με: