NLTK WordNet: Finden Sie Synonyme aus NLTK WordNet in Python

Was ist Wordnet?

Wordnet ist ein NLTK-Korpus-Reader, eine lexikalische Datenbank für Englisch. Damit kann man die Bedeutung von Wörtern, Synonymen oder Antonymen herausfinden. Man kann es als semantisch orientiertes Wörterbuch des Englischen definieren. Es wird mit dem folgenden Befehl importiert:

from nltk.corpus import wordnet as guru

Finden Sie Synonyme aus NLTK WordNet in Python

Statistiken zeigen, dass es welche gibt 155287 Wörter und 117659 Synonyme Sets, die im englischen WordNet enthalten sind.

Verschiedene mit WordNet verfügbare Methoden finden Sie durch Eingabe von dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ' __ge__“, „__getattr__“, „__getattribute__“, „__gt__“, „__hash__“, „__init__“, „__le__“, „__lt__“, „__module__“, „__name__“, „__ne__“, „__new__“, „__reduce__“ , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

Lassen Sie uns einige der mit dem Wordnet verfügbaren Funktionen verstehen:

Synset: Es wird auch als Synonymsatz oder Sammlung von Synonymwörtern bezeichnet. Schauen wir uns ein Beispiel an

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

Ausgang:

[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')]

Lexikalische Beziehungen: Dies sind semantische Beziehungen, die reziprok sind. Wenn es eine Beziehung zwischen {x1,x2,…xn} und {y1,y2,…yn} gibt, dann gibt es auch eine Beziehung zwischen {y1,y2,…yn} und {x1,x2,…xn}. Synonym ist beispielsweise das Gegenteil von Antonym oder Hypernyme und Hyponym sind eine Art lexikalisches Konzept.

Schreiben wir ein Programm mit python um mithilfe von Wordnet ein Synonym und ein Antonym für das Wort „aktiv“ zu finden.

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))

Die Ausgabe des Codes:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} – Synonym

{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} – Antonym

Ausgabe des Wordnet-Programmcodes

Erklärung des Codes

  1. Wordnet ist ein Korpus und wird daher aus dem ntlk.corpus importiert
  2. Die Liste mit Synonymen und Antonymen wird als leer betrachtet und zum Anhängen verwendet
  3. Synonyme des Wortes aktiv werden in den Synsets des Moduls gesucht und in der Liste Synonyme angehängt. Der gleiche Vorgang wird für den zweiten wiederholt.
  4. Die Ausgabe wird gedruckt

Fazit

WordNet ist eine lexikalische Datenbank, die von einem Major verwendet wurde Suchmaschine. Aus dem WordNet können Informationen zu einem bestimmten Wort oder einer bestimmten Phrase berechnet werden, z

  • Synonym (Wörter mit gleicher Bedeutung)
  • Hypernyme (Der Oberbegriff zur Bezeichnung einer Klasse von Besonderheiten (z. B. Mahlzeit ist ein Frühstück), Hyponyme (Reis ist eine Mahlzeit)
  • Holonyme (Proteine, Kohlenhydrate sind Teil der Mahlzeit)
  • Meronyme (Mahlzeit ist Teil der täglichen Nahrungsaufnahme)

WordNet bietet auch Informationen zu Koordinatenbegriffen, Ableitungen, Bedeutungen und mehr. Es wird verwendet, um die Ähnlichkeiten zwischen zwei beliebigen Wörtern zu finden. Es enthält auch Informationen über die Ergebnisse des zugehörigen Wortes. Kurz gesagt kann man es als Wörterbuch oder Thesaurus behandeln. Wenn man tiefer in Wordnet geht, ist es in insgesamt vier Subnetze unterteilt, z

  1. Substantiv
  2. Verb
  3. Adjektiv
  4. Adverb

Es kann im Bereich der künstlichen Intelligenz zur Textanalyse eingesetzt werden. Mithilfe von Wordnet können Sie Ihr Korpus für Rechtschreibprüfung, Sprachübersetzung, Spam-Erkennung und vieles mehr erstellen.

Auf die gleiche Weise können Sie dieses Korpus verwenden und es so gestalten, dass es dynamische Funktionen bietet. Dies ist sozusagen ein fertig angefertigter Korpus für Sie. Sie können es auf Ihre Weise nutzen.