def get_pos_lemmas(df): from textblob_de.lemmatizers import PatternParserLemmatizer _lemmatizer = PatternParserLemmatizer() setPosLemmas = [] for index, row in df.iterrows(): setPosLemmas.append(set(_lemmatizer.lemmatize(row['Antwort']))) return setPosLemmas
def lemmatize_words(self, data): _lemmatizer = PatternParserLemmatizer() lemmatized_data = [] if (type(data) == list): for d in data: text = "" for word in d: text = text + " " + word l = _lemmatizer.lemmatize(text) lemmatized_data.append([i[0] for i in l]) if (type(data) == str): l = _lemmatizer.lemmatize(data) lemmatized_data.append([i[0] for i in l]) return lemmatized_data
def lemmatize(self): """Return the lemma of each word in this WordList. Currently using NLTKPunktTokenizer() for all lemmatization tasks. This might cause slightly different tokenization results compared to the TextBlob.words property. """ _lemmatizer = PatternParserLemmatizer(tokenizer=NLTKPunktTokenizer()) # WordList object --> Sentence.string # add a period (improves parser accuracy) _raw = " ".join(self) + "." _lemmas = _lemmatizer.lemmatize(_raw) return self.__class__([Word(l, t) for l, t in _lemmas])
def check_if_subjunctive(word): """Returns true if a word is subjuntive, False otherwise word -- a Blob Word object that is a verb TODO: must the word be a verb? Saya? TODO: write tests for this """ _lemmatizer = PatternParserLemmatizer() lemma = _lemmatizer.lemmatize(word)[0][0] if conjugate(lemma, PRESENT, 1, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PRESENT, 2, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PRESENT, 3, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PRESENT, 1, PL, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PRESENT, 2, PL, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PRESENT, 3, PL, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 1, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 2, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 3, SG, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 1, PL, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 2, PL, mood=SUBJUNCTIVE) == word: return True elif conjugate(lemma, PAST, 3, PL, mood=SUBJUNCTIVE) == word: return True else: return False
print (tokens) #### POS Tagging #### print("POS TAGS") postags = blob.tags print(postags) #### Morphologie #### #Grundformen print("LEMMATIZATION AND POS TAGS - TEXTBLOB") _lemmatizer = PatternParserLemmatizer() lemmata = _lemmatizer.lemmatize(text) print(lemmata) #Generierung print("MORPHOLOGY GENERATION - TEXTBLOB") print(pd.attributive(u"gut", gender=pd.FEMALE, role=pd.INDIRECT, article="die")) # Lange Wörter ''' print("LONG WORDS IN ADIDAS TEXT") adidas_tokens = word_tokenize (text_long)
def __init__(self, tokenizer=None, lemmatizer=None, lemmatize=True): self.tokenizer = tokenizer if tokenizer is not None else PatternTokenizer() self.lemmatize = lemmatize if self.lemmatize: self.lemmatizer = lemmatizer if lemmatizer is not None \ else PatternParserLemmatizer(tokenizer=self.tokenizer)
from textblob_de import TextBlobDE as tbde from textblob_de.lemmatizers import PatternParserLemmatizer _lemmatizer = PatternParserLemmatizer() import spacy import string #textle = ' war nicht ganz richtig. Denn die eine Gesäßbacke befand sich leicht links von der Mitte und die andere Backe leicht rechts von der Mitte. Mayer kam zu dem Schluss, dass nur sein After direkt auf der Mitte der Bank saß, bzw. schwebte. Ein Schatten fiel auf in und störte seine Kreise. Mayer blickte hoch und höher. Eine staatliche Frau stand vor ihm, und seiner Bank, auf der er mittig saß. Er beantwortete die unausgesprochene Frage in den Augen der Frau: Bitte, nehmen Sie ruhig Platz. Danke, sagte die stattliche Frau und setzte sich rechts neben Mayer auf die Bank. Könnten Sie vielleicht etwas nach links rutschen? Mayer löste seinen Blick von der Schönheit der Landschaft. Stattdessen betrachtete er nun nachdenklich die Dame; die rotblonden, halblangen Haare; die modische Hornbrille; das hübsche, herzförmige Gesicht; die weiße Bluse; das Dekolleté. Dann überlegte er, wie lange es gedauert hatte, hier auf dieser Bank seine Mitte zu finden. Er hatte mehrere Fixpunkte in der Landschaft, die sich unter ihm ausbreitete wie ein Ölgemälde, in seine innere Navigation, in sein Koordinatensystem, einbezogen: den Funkmast links, den Windpark rechts, natürlich den Stand der Sonne; und sein Augenmaß. Mayer besaß ein gutes Augenmaß, das ihn selten im Stich ließ. Und all diese Mühen wären mit einem Mal hinfällig wegen einer zweifellos attraktiven Frau, die aus dem Hinterhalt aufgetaucht war und ihn aus seiner Mitte vertreiben wollte? Niemals! Nein, es tut mir leid., sagte Mayer mit fester Stimme, die keinen Zweifel an der Unabänderlichkeit seiner Entscheidung zuließ. Sie sind nicht sehr freundlich. Ich wurde nicht geboren, um freundlich zu sein., brummte Mayer und bohrte seinen Blick in das Gesicht der Dame. Sie werden schon sehen, was Sie davon haben., sagte die rotblonde Dame. Abrupt stand Mayer auf und gab die Bank frei. Für heute hatte er genug gesehen. Morgen würde er eine neue Mitte finden. Bitte, sagte er zu der Dame, lächelte verschmitzt und machte sich auf den Weg zum Parkplatz, der nur wenige Meter vom Schloss entfernt war.' textle = [ 'hatte', 'wurde', 'Bäume', 'viele', 'Belastungen', 'gekauft', 'habe', 'brüllte', 'hässliche', 'war' ] #print(l_words) # print(" Ausgangstext: ") print(textle) #blob = tbde(str(textle)) print("..............................................") # blob1 = _lemmatizer.lemmatize(str(textle)) #print(blob1) print(" TextBlob lemma ") sliste = () sliste = [x for (x, y) in blob1 if y not in ('x')] print((sliste)) print("..............................................") print("Jetzt -- SPACY....") print("de_core_news_sm ") # nlpeter = spacy.load("de_core_news_sm") #doc = nlpeter(str(textle))
# # copyright 2020, Peter Dittrich # # ADDED FOR TESTING PURPOSES by FAD28 from HanTa import HanoverTagger as ht import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime, time from textblob_de import TextBlobDE as tbde import os,math,re,sys from textblob_de import PatternParser from textblob_de.lemmatizers import PatternParserLemmatizer from termcolor import colored _lemmatizer = PatternParserLemmatizer() # #pd.set_option("display.max_columns",30) pd.set_option('display.max_columns', None) print("........................................................................") # lenni = len(sys.argv) if lenni == 1: print(" ACHTUNG Eingabefehler ") sys.exit(" No Corpus file in command line") text = sys.argv[1] print(" >>>>>>> Auswertung CORPUS : ",text," <<<<<<<<< ") print(".") tsname = text now = datetime.datetime.now()
def __init__(self): self.lemmatizer = PatternParserLemmatizer()
class TextBlobDeTokenizer(): def __init__(self): self.lemmatizer = PatternParserLemmatizer() def tokenize(self, s): return [lemma[0] for lemma in self.lemmatizer.lemmatize(s)]