Ich habe es vielleicht übersehen, aber gibt es eine Funktion zum Zugriff auf das Synset
Objekt von der NLTK-Wordnet-Schnittstelle über den Sense-Schlüssel ?
Wenn dies nicht der Fall ist, könnten wir eine Funktion bereitstellen, die dies in nltk.corpus.wordnet
? ZB https://stackoverflow.com/questions/48170666/how-to-get-the-gloss-given-sense-key-using-nltk-wordnet/
Idealerweise wäre es gut, über Funktionen für den Zugriff auf Synset
Objekte zu verfügen, indem:
offset-pos
, zB 1433493-a
-> Synset('long.a.02')
sense_key
, zB long%3:00:02::
-> Synset('long.a.02')
Derzeit haben wir die synset_from_pos_and_offset()
für (1).
Es gibt eine andere Funktion ( _synset_from_pos_and_line
), die die folgende Zeile liest, um Synset('long.a.02')
:
01433493 00 a 01 long 1 016 = 05129201 n 0000 + 05133287 n 0101 ! 01436003 a 0101 & 01434007 a 0000 & 01434218 a 0000 & 01434530 a 0000 & 01434717 a 0000 & 01434841 a 0000 & 01434966 a 0000 & 01435060 a 0000 & 01435189 a 0000 & 01435290 a 0000 & 01435399 a 0000 & 01435507 a 0000 & 01435675 a 0000 & 01435891 a 0000 | primarily spatial sense; of relatively great or greater than average spatial extension or extension as specified; "a long road"; "a long distance"; "contained many long words"; "ten miles long"
aber es ist nicht der Sinnesschlüssel.
Daran möchte ich gerne arbeiten!
@craaaa Entschuldigung für die späte Antwort, war eine Weile weg.
Fühlen Sie sich frei, daran zu arbeiten und anschließend eine PR zu erstellen.
P/S: Machen Sie sich keine Sorgen, dass Sie etwas kaputt machen könnten, es werden Überprüfungen und Überprüfungen durchgeführt, bevor wir den Code zusammenführen.
Die im Stackoverflow vorgeschlagene Funktion wurde implementiert, aber sie schien nicht den richtigen Sinnen zu entsprechen - zum Beispiel gab synset_from_sense_key('afraid%3:00:00::')
afraid.a.04
anstelle von afraid.a.01
. Dieses Problem erstreckt sich auch auf andere POS. (Sense-Schlüssel wurden von der Online-Schnittstelle von
Stattdessen scheint die Verwendung der in der SemCor-Dokumentation gezeigten Methode korrekt zuzuordnen -- es gibt derzeit eine lemma_from_key(key)
Funktion, die etwas ähnlich einem Sense-Schlüssel zu verarbeiten scheint. lemma_from key(key)
jedoch keine Adjektiv-Satelliten (zB afraid%3:00:02:concerned:00
). Ich kann definitiv einen Wrapper um lemma_from_key(key)
herum implementieren, um dies zu beheben und ein Synset
.
@craaaa. Ich denke, es gibt immer noch ein Problem mit Adjektivsatelliten. Ich habe versucht, die synset_from_sense_key-Funktion zu verwenden, und hier ist der Fehler:
Datei "/home/izorar/anaconda3/lib/python3.7/site-packages/nltk/corpus/reader/wordnet.py", Zeile 1356, in synset raise WordNetError(message % lemma) WordNetError: Adjektiv Satellit angefordert, aber nur einfach Adjektiv für Lemma 'zuerst' gefunden
Irgendeine Idee, wie man den Fehler beheben kann?
Hilfreichster Kommentar
Die im Stackoverflow vorgeschlagene Funktion wurde implementiert, aber sie schien nicht den richtigen Sinnen zu entsprechen - zum Beispiel gab
synset_from_sense_key('afraid%3:00:00::')
afraid.a.04
anstelle vonafraid.a.01
. Dieses Problem erstreckt sich auch auf andere POS. (Sense-Schlüssel wurden von der Online-Schnittstelle vonStattdessen scheint die Verwendung der in der SemCor-Dokumentation gezeigten Methode korrekt zuzuordnen -- es gibt derzeit eine
lemma_from_key(key)
Funktion, die etwas ähnlich einem Sense-Schlüssel zu verarbeiten scheint.lemma_from key(key)
jedoch keine Adjektiv-Satelliten (zBafraid%3:00:02:concerned:00
). Ich kann definitiv einen Wrapper umlemma_from_key(key)
herum implementieren, um dies zu beheben und einSynset
.