Nomen aus Verben bilden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MarcelF6
User
Beiträge: 226
Registriert: Samstag 3. März 2012, 21:30

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! :)
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Meinst Du so etwas wie GermaNet?

Siehe: http://www.sfs.uni-tuebingen.de/GermaNet/index.shtml
MarcelF6
User
Beiträge: 226
Registriert: Samstag 3. März 2012, 21:30

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 :(
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

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
MarcelF6
User
Beiträge: 226
Registriert: Samstag 3. März 2012, 21:30

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
Antworten