ich habe zurzeit folgende Klasse (etwas vereinfacht), die in einem grossen Text-File nach Vorkommen von "CARD" sucht, das von "Test" oder "Tests" + einem PRF gefolgt wird. Das Wort "Test" oder "Tests" soll dann in "test" verändert werden. Der Code und die Klasse funktionieren:
Code: Alles auswählen
class Test(object):
def __init__(self):
self.NEs = Event(lambda w: getattr(w, "text", None), [u"Test", u"Tests"], maxdist=1, finevent=True)
self.PRF = Event(lambda w: getattr(w, "pos", None), [u"PRF"], maxdist=2, finevent=True)
self.CARD = Event(lambda w: w.get('pos', None), [u"CARD"], next_ev=[self.NEs], active_begin=True)
self.pat = PoSPattern([self.CARD, self.NEs, self.PRF], self.NEPRF, "de")
def NEPRF(self, resdct):
dct[self.NEs].attrib['number'] = "2"
dct[self.NEs].attrib['pos'] = "VV"
dct[self.NEs].text = "test"
def pattern(self):
return self.pat
Code: Alles auswählen
class Test(object):
def __init__(self):
self.NEs = Event(lambda w: getattr(w, "text", None), [u"Test", u"Tests"], maxdist=1, finevent=True)
self.PRF = Event(lambda w: getattr(w, "pos", None), [u"PRF"], maxdist=2, finevent=True)
self.CARD = Event(lambda w: w.get('pos', None), [u"CARD"], next_ev=[self.NEs], active_begin=True)
self.pat = PoSPattern([self.CARD, self.NEs, self.PRF], self.NEPRF, "de")
self.NN = Event(lambda w: w.get('pos', None), [u"NN"], next_ev=[self.NEs], active_begin=True)
self.pat = PoSPattern([self.NN, self.NEs, self.PRF], self.NEPRF, "de")
def NEPRF(self, resdct):
dct[self.NEs].attrib['number'] = "2"
dct[self.NEs].attrib['pos'] = "VV"
dct[self.NEs].text = "test"
def pattern(self):
return self.pat
Wie kann ich den Code ändern, dass beide Fälle berücksichtigt werden und dass beide Fälle ausgeführt werden?
Vielen Dank,
Marcel
