NLTK WordNet: Finden Sie Synonyme aus NLTK WordNet in Python

⚡ Intelligente Zusammenfassung

WordNet ist eine lexikalische Datenbank und ein NLTK-Korpusleser für Englisch, der Substantive, Verben, Adjektive und Adverbien zu Synsets gruppiert und so ermöglicht, … Python Programme suchen Synonyme, Antonyme, Hyperonyme und Wortbedeutungen für die Verarbeitung natürlicher Sprache.

  • 🧩 Korpusleser: WordNet wird aus nltk.corpus importiert und fungiert als semantisch orientiertes Wörterbuch des Englischen.
  • 🔁 Synsets: Ein Synset ist eine Sammlung von Synonymwörtern, wie zum Beispiel die acht Bedeutungen, die für „Hund“ zurückgegeben werden.
  • 🔗 Lexikalische Beziehungen: Reziproke semantische Verknüpfungen verbinden Synonyme, Antonyme, Hyperonyme und Hyponyme.
  • 🧪 Synonyme und Antonyme: Kloping over synsets and lemmas sammelt alle Synonyme und Antonyme eines Wortes.
  • 🌳 Hierarchie: Hyperonyme, Hyponyme, Holonyme und Meronyme ordnen Wörter in Substantiv-, Verb-, Adjektiv- und Adverb-Untergruppen ein.
  • 🤖 KI-Nutzen: WordNet ermöglicht Textanalyseaufgaben wie Rechtschreibkorrektur, Übersetzung und Spam-Erkennung.

NLTK WordNet

Was ist Wordnet?

WordNet WordNet ist ein NLTK-Korpusleser, eine lexikalische Datenbank für Englisch. Mit ihm lassen sich die Bedeutung von Wörtern, Synonyme oder Antonyme finden. Man kann es als semantisch orientiertes Wörterbuch des Englischen bezeichnen. WordNet wird mit folgendem Befehl importiert:

from nltk.corpus import wordnet as guru

Da WordNet als fertiges Korpus ausgeliefert wird, können Sie es einmal laden und sofort mit der Abfrage von Wortbeziehungen beginnen, ohne selbst ein Wörterbuch erstellen zu müssen.

Finden Sie Synonyme aus NLTK WordNet in Python

Statistiken zeigen, dass es welche gibt 155287 Wörter und 117659 Synonyme Die in English WordNet enthaltenen Sets. Verschiedene mit WordNet verfügbare Methoden können durch ty gefunden werden.ping dir(guru), das alle vom Korpusleser bereitgestellten Loader-Attribute und Hilfsmethoden auflistet.

Synset: Man nennt es auch Synonymmenge oder Sammlung von Synonymwörtern. 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 Relationen, die wechselseitig sind. Besteht eine Beziehung zwischen {x1, x2, …, xn} und {y1, y2, …, yn}, so besteht auch eine Beziehung zwischen {y1, y2, …, yn} und {x1, x2, …, xn}. Beispielsweise ist ein Synonym das Gegenteil eines Antonyms, während Hyperonyme und Hyponyme lexikalische Konzepte darstellen.

Schreiben wir ein Programm mit Python Synonyme und Antonyme des Wortes „aktiv“ mithilfe von WordNet 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

Erklärung des Codes:

  • WordNet ist ein Korpus und wird daher aus dem nltk.corpus-Paket importiert.
  • Es werden zwei Listen für Synonyme und Antonyme als leer angenommen, die zum Anhängen verwendet werden.
  • Synonyme des Wortes „aktiv“ werden mithilfe der Synsets-Methode gesucht und der Synonymliste hinzugefügt. Das gleiche Verfahren ermittelt Antonyme.
  • Die Ausgabe wird wie folgt gedruckt: Python setzt, dass doppelte Einträge automatisch entfernt werden.

Neben Synonymen und Antonymen deckt WordNet auch Hyperonyme (übergeordnete Begriffe), Hyponyme (spezifischere Begriffe), Holonyme und Meronyme auf, sodass eine einzelne Abfrage ein Wort in eine ganze „ist-ein“-Hierarchie einordnen kann. Diese Beziehungen machen WordNet zu einem praktischen Thesaurus für Rechtschreibprüfungen, Sprachübersetzungen, Spam-Erkennung und andere Textanalyseaufgaben im Bereich der künstlichen Intelligenz.

Häufig gestellte Fragen

WordNet ist ein NLTK-Korpusleser und eine lexikalische Datenbank für Englisch. Es funktioniert wie ein semantisch orientiertes Wörterbuch und ermöglicht es, die Bedeutung, Synonyme und Antonyme eines Wortes mit einfacher Eingabe nachzuschlagen. Python Befehle.

Ein Synset (kurz für Synonymmenge) ist eine Gruppe von Wörtern, die dasselbe Konzept bezeichnen. Der Aufruf von `wordnet.synsets("dog")` liefert mehrere Synsets, von denen jedes eine unterschiedliche Bedeutung des Wortes „Hund“ repräsentiert.

Durchlaufe wordnet.synsets(word) und iteriere anschließend über die Lemmata jedes Synsets. Füge lemma.name() hinzu, um Synonyme zu sammeln, und rufe lemma.antonyms() auf, um Antonyme zu sammeln.ping Die Ergebnisse in set() entfernen doppelte Einträge.

Ein Hyperonym ist ein Oberbegriff (z. B. „Mahlzeit“ ist ein Hyperonym für „Frühstück“), während ein Hyponym ein spezifischerer Begriff ist (z. B. „Reis“ ist ein Hyponym für „Mahlzeit“). WordNet verknüpft diese Begriffe zu einer „ist-ein“-Hierarchie.

English WordNet umfasst etwa 155,287 Wörter, die in rund 117,659 Synonymgruppen organisiert sind. Die Datenbank deckt vier Wortarten ab: Substantive, Verben, Adjektive und Adverbien, die jeweils in einem eigenen Subnetz gespeichert sind.

Im Bereich der künstlichen Intelligenz unterstützt WordNet Textanalyseaufgaben wie Wortbedeutungsdisambiguierung, Rechtschreibkorrektur, Sprachübersetzung und Spam-Erkennung. Seine strukturierten Relationen liefern Modellen des maschinellen Lernens reichhaltigere linguistische Merkmale als reine Wortmarken.

Ja. KI- und Machine-Learning-Pipelines verwenden Ähnlichkeitsmaße für WordNet wie Pfadähnlichkeit und Wu-Palmer-Ähnlichkeit. Sie bewerten die Ähnlichkeit zweier Synsets, indem sie den kürzesten Pfad zwischen ihnen in der Hyperonym- und Hyponymhierarchie messen.

Ein normales Wörterbuch listet Definitionen alphabetisch auf. WordNet hingegen verknüpft Wörter über ihre Bedeutung mittels Synsets und lexikalischer Beziehungen und verhält sich somit wie ein kombiniertes Wörterbuch und Thesaurus, das von Maschinen programmatisch durchsucht werden kann.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: