Seite 1 von 1

Nomen aus Verben bilden

Verfasst: Dienstag 2. Mai 2017, 12:21
von MarcelF6
Hallo miteinander

Ich arbeite zur Zeit an einem Linguistik-Tool, welches aus gegebenen Verben Nomen bilden soll (wenn möglich jeweils DAS dazugehörige Nomen, d.h. beispielsweise "to die --> death" usw.).
Für die englische Sprache konnte ich das Tool erfolgreich erstellen. Nun meine Frage: Wäre das auch auf Deutsch möglich? Also das heisst: Gibt es Ressourcen, sodass ich so wenig wie nötig am Code ändern muss, um dasselbe auf Deutsch hinzukriegen? (Bsp.: "sprechen" --> "Sprache", ...) ?

Hier ist mein Code, welcher für's Englische ganz gut funktioniert:

Code: Alles auswählen

from nltk.corpus import wordnet as wn

def nounify(verb_word):
    """ Transform a verb to the closest noun: die -> death """
    verb_synsets = wn.synsets(verb_word, pos="v")

    # Word not found
    if not verb_synsets:
        return []

    # Get all verb lemmas of the word
    verb_lemmas = [l for s in verb_synsets for l in s.lemmas() if (s.name()).split('.')[1] == 'v']

    # Get related forms
    derivationally_related_forms = [(l, l.derivationally_related_forms()) for l in  verb_lemmas]

    # filter only the nouns
    related_noun_lemmas = [l for drf in derivationally_related_forms for l in drf[1] if l.synset().name().split('.')[1] == 'n']

    # Extract the words from the lemmas
    words = [l.name for l in related_noun_lemmas]
    len_words = len(words)

    # Build the result in the form of a list containing tuples (word, probability)
    result = [(w, float(words.count(w))/len_words) for w in set(words)]
    result.sort(key=lambda w: -w[1])

    # return all the possibilities sorted by probability
    return result



if __name__ == '__main__':

    print nounify("sprechen")
Vielen Dank für eure Hilfe! :)

Re: Nomen aus Verben bilden

Verfasst: Dienstag 2. Mai 2017, 13:42
von Alfons Mittelmeyer
Meinst Du so etwas wie GermaNet?

Siehe: http://www.sfs.uni-tuebingen.de/GermaNet/index.shtml

Re: Nomen aus Verben bilden

Verfasst: Dienstag 2. Mai 2017, 15:05
von MarcelF6
Ja genau! :)
Ich habe mich etwas informiert - es schaut so aus, als wäre GermaNet aber nicht frei verfügbar.
Gibt es da etwas frei verfügbares (oder hast du die Daten zufälligerweise) ?

Alternativ habe ich noch daran gedacht, deutsche Verben ins Englische zu übersetzen, aus meinem Code ein Nomen bilden lassen und anschliessend wieder zurück ins Deutsche übersetzen. Das ist aber wirklich wirklich dirty und nicht wirklich effizient :(

Re: Nomen aus Verben bilden

Verfasst: Dienstag 2. Mai 2017, 15:28
von Alfons Mittelmeyer
MarcelF6 hat geschrieben:Ja genau! :)
Ich habe mich etwas informiert - es schaut so aus, als wäre GermaNet aber nicht frei verfügbar.
Gibt es da etwas frei verfügbares
Sorry hatte gedacht, wenn Du Student bist oder es für Unizwecke ist, denn dann ist es kostenlos. Aber wenn das etwas ist, das jedermann frei benützen können soll, dann paßt das nicht.

Frei für kommerzielle Zwecke ist fast nichts, da heißt es meist: THE DATABASE IS FREE FOR EDUCATIONAL UND RESEARCHING PURPOSES BUT NOT FOR COMMERCIAL USE.

Für nicht kommerzielle Zwecke, nützt evtl. Wortschatz Uni Leipzig: http://wortschatz.uni-leipzig.de/de

Re: Nomen aus Verben bilden

Verfasst: Freitag 5. Mai 2017, 12:33
von MarcelF6
Natürlich wäre es auch bei mir für "educational purposes". Und wahrscheinlich / ziemlich sicher liegt das Ganze auch auf einem Server. Allerdings kann das dauern, bis ich da einen Zugang erhalte :/

Du hast nicht per Zufall die Files?

Vielen Dank,
Marcel