Cheatah: deutsches Stemming

Beitrag lesen

Hi,

R0 ist der Anfang des Wortstammes
R1 und R2 [...]

okay, danke.

if preceded by ig, delete if in R2 and not preceded by e
Das erste ist noch eindeutig, doch was bedeutet das Zweite?

Ich würde das als logische Reihenfolge ansehen:

"[^e]ig(end|ung)" oder "ig^e"?

"If preceded bei ig" ist im zweiten Fall nicht gegeben. Damit reduzieren sich die zwei Interpretationsmöglichkeiten des Gesamtsatzes auf eine.

An anderer Stelle wird gesagt, das "preceded" nicht an die Grenzen von R[012] gebunden ist, d.h. kann das "[^e]" auch in R1 oder R0 sein?

Demnach ja. Vielleicht könntest Du Deinen Algorithmus optimieren, indem Du die Betrachtung von R2 einfach (bzw. bei Bedarf) als String-Ende-Analyse ansiehst. Übrigens lautet das Muster für "'foo' steht nicht da" "(?!foo)".

Dito für die anderin möglichen Kombinationen? Es sind ja insgesamt leider zuviele, um sie einfach "mal eben" durchzuprobieren.

Naja, die Zahl ist endlich :-) Ich finde es lediglich etwas unschön, dass man das längste Ergebnis suchen soll.

Eine gewisse Fehlertoleranz kann man ja zugestehen (muß man ja auch, da Umlaute auch als ae,oe usw geschrieben werden könnten), aber ich vermute, das es einfach zuviel an Fehlern wird, wenn ich den dritten Schritt versaue.

Gut möglich. Falls es die Usecases zulassen, solltest Du ggf. definieren, dass Umlaute auch als solche geschrieben sind.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes