Τι είναι το Wordnet;
Το Wordnet είναι ένας αναγνώστης σωμάτων NLTK, μια λεξική βάση δεδομένων για τα Αγγλικά. Μπορεί να χρησιμοποιηθεί για να βρει το νόημα των λέξεων, συνώνυμο ή ανώνυμο. Μπορεί κανείς να το ορίσει ως σημασιολογικά προσανατολισμένο λεξικό Αγγλικών. Εισάγεται με την ακόλουθη εντολή:
from nltk.corpus import wordnet as guru
Τα στατιστικά στοιχεία αποκαλύπτουν ότι υπάρχουν 155287 λέξεις και 117659 σύνολα συνόλων που περιλαμβάνονται στο αγγλικό WordNet.
Μπορείτε να βρείτε διαφορετικές μεθόδους με το WordNet πληκτρολογώντας dir (γκουρού)
["_LazyCorpusLoader__args", "_LazyCorpusLoader__kwargs", "_LazyCorpusLoader__load", "_LazyCorpusLoader__name", "_LazyCorpusLoader__reader_cls", "__class__", __d__, __d__, __ __ge__ "," __getattr__ "," __getattribute__ "," __gt__ "," __hash__ "," __init__ "," __le__ "," __lt__ "," __module__ "," __name__ "," __ne__ "," __new____ " , "__reduce_ex__", "__repr__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "__unicode__", "__weakref__", "_unload", "subdir", "unicode_repr"]
Ας κατανοήσουμε μερικές από τις διαθέσιμες δυνατότητες με το wordnet:
Synset : Ονομάζεται επίσης ως σύνολο συνωνύμων ή συλλογή συνωνύμων λέξεων. Ας δούμε ένα παράδειγμα
from nltk.corpus import wordnetsyns = 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 για να βρούμε συνώνυμο και ανώνυμο της λέξης "ενεργό" χρησιμοποιώντας το Wordnet.
from nltk.corpus import wordnetsynonyms = []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))
Η έξοδος του κώδικα:
{'δυναμικό', 'μάχη', 'μάχη-έτοιμο', 'active_voice', 'active_agent', 'συμμετέχοντας', 'ζωντανό', 'ενεργό'} - Συνώνυμο
{'stative', 'παθητικό', 'ήσυχο', 'passive_voice', 'εξαφανισμένο', 'αδρανές', 'ανενεργό'} - Antonym
Επεξήγηση του κωδικού
- Το Wordnet είναι ένα corpus, επομένως εισάγεται από το ntlk.corpus
- Η λίστα τόσο του συνωνύμου όσο και του ανωνύμου λαμβάνεται ως κενή, η οποία θα χρησιμοποιηθεί για προσθήκη
- Τα συνώνυμα της ενεργής λέξης αναζητούνται στα σύνολα λειτουργικών μονάδων και προσαρτώνται στα συνώνυμα της λίστας. Η ίδια διαδικασία επαναλαμβάνεται για τη δεύτερη.
- Η έξοδος εκτυπώνεται
Συμπέρασμα:
Το WordNet είναι μια λεξική βάση δεδομένων που έχει χρησιμοποιηθεί από μια μεγάλη μηχανή αναζήτησης. Από το WordNet, πληροφορίες σχετικά με μια δεδομένη λέξη ή φράση μπορούν να υπολογιστούν όπως
- συνώνυμο (λέξεις που έχουν το ίδιο νόημα)
- Υπέρυμα (Ο γενικός όρος που χρησιμοποιείται για τον προσδιορισμό μιας κατηγορίας συγκεκριμένων χαρακτηριστικών (δηλαδή, το γεύμα είναι πρωινό), τα ανώνυμα (το ρύζι είναι γεύμα)
- ολωνύμια (πρωτεΐνες, υδατάνθρακες αποτελούν μέρος του γεύματος)
- meronyms (το γεύμα είναι μέρος της καθημερινής πρόσληψης τροφής)
Το WordNet παρέχει επίσης πληροφορίες σχετικά με τους όρους συντονισμού, τα παράγωγα, τις αισθήσεις και άλλα. Χρησιμοποιείται για να βρει τις ομοιότητες μεταξύ των δύο λέξεων. Διατηρεί επίσης πληροφορίες σχετικά με τα αποτελέσματα της σχετικής λέξης. Με λίγα λόγια ή με λίγα λόγια κάποιος μπορεί να το θεωρήσει ως Λεξικό ή Θησαυρός. Πηγαίνοντας βαθύτερα στο wordnet, χωρίζεται σε τέσσερα συνολικά υποδίκτυα όπως
- Ουσιαστικό
- Ρήμα
- Επίθετο
- Επίρρημα
Μπορεί να χρησιμοποιηθεί στον τομέα της τεχνητής νοημοσύνης για ανάλυση κειμένου. Με τη βοήθεια του Wordnet, μπορείτε να δημιουργήσετε το σώμα σας για ορθογραφικό έλεγχο, μετάφραση γλώσσας, ανίχνευση ανεπιθύμητων μηνυμάτων και πολλά άλλα.
Με τον ίδιο τρόπο, μπορείτε να χρησιμοποιήσετε αυτό το σώμα και να το μορφοποιήσετε για να λειτουργήσετε κάποια δυναμική λειτουργικότητα. Αυτό είναι σαν έτοιμο σώμα για εσάς. Μπορείτε να το χρησιμοποιήσετε με τον τρόπο σας.