WordNet mit NLTK: Synonyme für Wörter in Python finden

Inhaltsverzeichnis:

Anonim

Was ist Wordnet?

Wordnet ist ein NLTK-Korpusleser, eine lexikalische Datenbank für Englisch. Es kann verwendet werden, um die Bedeutung von Wörtern, Synonymen oder Antonyme zu finden. Man kann es als semantisch orientiertes Wörterbuch des Englischen definieren. Es wird mit folgendem Befehl importiert:

from nltk.corpus import wordnet as guru

Statistiken zeigen, dass das englische WordNet 155287 Wörter und 117659 Synonym- Sets enthält.

Verschiedene mit WordNet verfügbare Methoden können durch Eingabe von dir (guru) gefunden werden.

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__d' __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 Funktionen verstehen, die mit dem Wordnet verfügbar sind:

Synset : Es wird auch als Synonymsatz oder Sammlung von Synonymwörtern bezeichnet . Lassen Sie uns ein Beispiel überprüfen

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

Ausgabe:

[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 sich gegenseitig erwidern. 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}. Zum Beispiel ist Synonym das Gegenteil von Antonyme oder Hypernyme und Hyponym ist eine Art lexikalisches Konzept.

Schreiben wir ein Programm mit Python, um das Synonym und das Antonyme des Wortes "aktiv" mit Wordnet zu finden.

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

Die Ausgabe des Codes:

{'dynamisch', 'kämpfend', 'kampfbereit', 'active_voice', 'active_agent', 'teilnehmend', 'lebendig', 'aktiv'} - Synonym

{'stative', 'passiv', 'leise', 'passive_Stimme', 'ausgestorben', 'ruhend', 'inaktiv'} - Antonym

Erklärung des Codes

  1. Wordnet ist ein Korpus und wird daher aus ntlk.corpus importiert
  2. Die Liste von Synonym und Antonyme wird als leer genommen und zum Anhängen verwendet
  3. Synonyme des aktiven Wortes werden in den Modul-Synsets gesucht und an die Listensynonyme angehängt. Der gleiche Vorgang wird für den zweiten wiederholt.
  4. Die Ausgabe wird gedruckt

Fazit:

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

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

WordNet bietet auch Informationen zu koordinierten Begriffen, Ableitungen, Sinnen und vielem mehr. Es wird verwendet, um die Ähnlichkeiten zwischen zwei beliebigen Wörtern zu finden. Es enthält auch Informationen zu den Ergebnissen des zugehörigen Wortes. Kurz gesagt oder kurz gesagt, man kann es als Wörterbuch oder Thesaurus behandeln. Es geht tiefer in Wordnet und ist in vier Subnetze unterteilt, wie 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 Ihren Korpus für die Rechtschreibprüfung, Sprachübersetzung, Spam-Erkennung und vieles mehr erstellen.

Auf die gleiche Weise können Sie diesen Korpus verwenden und ihn formen, um einige dynamische Funktionen zu nutzen. Dies ist wie ein fertiger Korpus für Sie. Sie können es auf Ihre Weise verwenden.