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

Τι είναι το Wordnet;

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

from nltk.corpus import wordnet as guru

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

Τα στατιστικά αποκαλύπτουν ότι υπάρχουν 155287 λέξεις και 117659 συνώνυμο σετ που περιλαμβάνονται στο αγγλικό WordNet.

Μπορείτε να βρείτε διαφορετικές μεθόδους που είναι διαθέσιμες με το WordNet πληκτρολογώντας dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '____class__', '_________, '______de c__', '__eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__'ne___', '__ne___' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'unicode_,', 'unicode_,'

Ας κατανοήσουμε μερικές από τις δυνατότητες που είναι διαθέσιμες με το wordnet:

Synset: Λέγεται και ως συνώνυμο σύνολο ή συλλογή συνωνύμων λέξεων. Ας ελέγξουμε ένα παράδειγμα

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}. Για παράδειγμα, το συνώνυμο είναι το αντίθετο του αντωνύμου ή τα υπερώνυμα και το υποώνυμο είναι τύπος λεξιλογικής έννοιας.

Ας γράψουμε ένα πρόγραμμα χρησιμοποιώντας Πύθων να βρείτε το συνώνυμο και το αντώνυμο της λέξης «ενεργός» χρησιμοποιώντας το 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', 'live', 'active'} — Συνώνυμο

{'στατικό', 'παθητικό', 'ήσυχο', 'παθητική_φωνή', 'εξαφανισμένο', 'αδρανής', 'ανενεργό'} — Αντώνυμα

Έξοδος κώδικα προγράμματος Wordnet

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

  1. Το Wordnet είναι ένα σώμα, επομένως εισάγεται από το ntlk.corpus
  2. Η λίστα συνωνύμων και αντωνύμων θεωρείται κενή η οποία θα χρησιμοποιηθεί για προσάρτηση
  3. Τα συνώνυμα της λέξης ενεργό αναζητούνται στα σύνολα της ενότητας και προστίθενται στη λίστα συνώνυμα. Η ίδια διαδικασία επαναλαμβάνεται και για το δεύτερο.
  4. Η έξοδος εκτυπώνεται

Συμπέρασμα

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

  • συνώνυμο (λέξεις που έχουν την ίδια σημασία)
  • υπερώνυμα (Ο γενικός όρος που χρησιμοποιείται για να προσδιορίσει μια κατηγορία ειδικών στοιχείων (δηλαδή, το γεύμα είναι πρωινό), υποώνυμα (το ρύζι είναι ένα γεύμα)
  • ολώνυμα (πρωτεΐνες, υδατάνθρακες αποτελούν μέρος του γεύματος)
  • μερώνυμα (το γεύμα είναι μέρος της καθημερινής πρόσληψης τροφής)

Το WordNet παρέχει επίσης πληροφορίες για συντεταγμένους όρους, παράγωγα, αισθήσεις και άλλα. Χρησιμοποιείται για να βρει τις ομοιότητες μεταξύ οποιωνδήποτε δύο λέξεων. Διατηρεί επίσης πληροφορίες για τα αποτελέσματα της σχετικής λέξης. Εν ολίγοις ή με λίγα λόγια μπορεί κανείς να το αντιμετωπίσει ως Λεξικό ή Θησαυρό. Προχωρώντας βαθύτερα στο wordnet, χωρίζεται σε τέσσερα συνολικά υποδίκτυα όπως π.χ

  1. Ουσιαστικό
  2. Ρήμα
  3. Επίθετο
  4. επίρρημα

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

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