|
|
- # Klasse zum Austauschen von Genitiv durch Dativ
-
-
- import spacy
-
-
- class GenitivSolve(object):
-
- def __init__(self):
-
- #print('loading the german spacy model..')
- self.nlp = spacy.load('de_core_news_sm')
- #print('done')
-
- return
-
- def ReplaceGenitivWithDativ(self, sentences):
-
-
-
- count = 0
- for sentence in sentences:
-
- count += 1
- #print('processing sentence', count)
-
- tokens = self.nlp(' '.join(sentence))
-
-
-
- for n in range(1, len(sentence)):
-
-
- #print(sentence[n])
- if (sentence[n][-1] == 's' or sentence[n][-1] == 'n') and (sentence[n - 1] == 'des' or sentence[n - 1] == 'Des'):
-
- #print('oi')
- #print('genitiv', sentence[n], sentence[n][:-2])
- if sentence[n][-2] == 'e':
- sentence[n] = sentence[n][:-2]
- else:
- sentence[n] = sentence[n][:-1]
- sentence[n - 1] = 'dem'
- sentence.insert(n - 1, 'von')
-
-
- if sentence[n] == 'der' and sentence[n - 1][-1] != ',' and (tokens[n - 1].tag_ == 'NN' and tokens[n-1].text == sentence[n]) and sentence[n][-2:] != 'en':
-
- sentence.insert(n, 'von')
-
- if sentence[n] == 'der' and sentence[n - 1][-1] != ',' and (tokens[n - 1].tag_ == 'NN' and tokens[n-1].text == sentence[n]) and ((sentence[n+1][-2:] == 'en' or sentence[n+1][-1] == 'n' or sentence[n+1][-1] == 'e' or sentence[n+1][-2:] == 'er')):
-
- if sentence[n+1][-1] == 'e':
- sentence[n+1] + 'n'
-
- sentence[n] == 'den'
- sentence.insert(n, 'von')
-
- return sentences
-
-
|