Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Stemming: Deutsch, Script anpassen
cr4m0
Geschrieben am: Mo 25.08.2008, 21:07
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 195
Mitglied seit: 30.07.2007


Ich möchte mir ein Stemming-Script (Erklärung) erstellen, das für die deutsche Sprache funktioniert. Auf dieser Seite habe ich eine Anleitung gefunden. Diese muss ich jedoch noch in PHP umsetzen. Könnt ihr mir dabei helfen?

Mein Script bisher:
CODE

<?php
$text = 'Ackers'; // GENITIV VON "ACKER"
$vokale = array('a', 'e', 'i', 'o', 'u', 'y', 'ä', 'ö', 'ü');
$endung_s = array('b', 'd', 'f', 'g', 'h', 'k', 'l', 'm', 'n', 'r', 't');
$endung_st = array('b', 'd', 'f', 'g', 'h', 'k', 'l', 'm', 'n', 't');
$text = mb_strtolower($text, 'UTF-8');
$text = str_replace('ß', 'ss', $text);
$pattern = '![aeiouyäöü][bcdfghjklmnpqrstvwxz]!';
$result = preg_split($pattern, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
if (isset($result[1])) {
$r1 = $result[1];
$pattern = '![aeiouyäöü][bcdfghjklmnpqrstvwxz]!';
$result = preg_split($pattern, $r1, 2, PREG_SPLIT_DELIM_CAPTURE);
if (isset($result[1])) {
 $r2 = $result[1];
}
else {
 $r2 = '';
}
}
else {
$r1 = '';
$r2 = '';
}
// STEP 1 ANFANG
if (substr($r1, -3, 3) == 'ern') { $r1 = substr($r1, 0, -3); }
elseif (substr($r1, -2, 2) == 'em') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'en') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'er') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'es') { $r1 = substr($r1, 0, -2); }
else {
foreach ($endung_s as $endung_s1) {
 $temp = $endung_s1.'s';
 if (substr($r1, -2, 2) == $temp) { $r1 = substr($r1, 0, -1); }
}
}
// STEP 1 ENDE
// STEP 2 ANFANG
if (substr($r1, -3, 3) == 'est') { $r1 = substr($r1, 0, -3); }
elseif (substr($r1, -2, 2) == 'en') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'er') { $r1 = substr($r1, 0, -2); }
else {
foreach ($endung_st as $endung_st1) {
 $temp = $endung_st1.'st';
 if (substr($r1, -3, 3) == $temp) { $r1 = substr($r1, 0, -2); }
}
}
// STEP 2 ENDE
// STEP 3 ANFANG
if (substr($r1, -4, 4) == 'ern') { $r1 = substr($r1, 0, -4); }
elseif (substr($r1, -4, 4) == 'ern') { $r1 = substr($r1, 0, -4); }
elseif (substr($r1, -4, 4) == 'ern') { $r1 = substr($r1, 0, -4); }
elseif (substr($r1, -4, 4) == 'ern') { $r1 = substr($r1, 0, -4); }
elseif (substr($r1, -2, 2) == 'em') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'en') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'er') { $r1 = substr($r1, 0, -2); }
elseif (substr($r1, -2, 2) == 'es') { $r1 = substr($r1, 0, -2); }
// STEP 3 ENDE
?>


Was noch getan werden muss:
  • "but then R1 is adjusted so that the region before it contains at least 3 letters" - Wie genau ist das gemeint?
  • kompletter Step 3
  • "put u and y between vowels into upper case"
  • "turn U and Y back into lower case, and remove the umlaut accent from a, o and u"
  • R1 und R2 habe ich dann, wie kann ich aber das Wort wieder zusammensetzen?

Ich hoffe, ihr könnt mir helfen. Danke schonmal!
Top
PMEmail Poster
Top
 
 
pangu
#2 Geschrieben am: So 7.09.2008, 17:07 (+12d 19:59)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 836
Mitglied seit: 29.07.2005


hier gibt es bereits eine fertige deutsche implementierung:
http://ahecht.bochmann.de/prog.porter-stemmer-deutsch.shtml


--------------------
Jonglieren lernen nette Community rund ums Jonglieren °°°
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/25981

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
[S] Übersetzer Deutsch --> Englisch Marc Schuler 282 6 Do 13.11.2008, 23:04
[B] Deutsch <-> Russisch Übersetzungen G.P. 48 0 Mi 12.11.2008, 18:59
Clickbank Angebote auf deutsch Michael Schramm 2871 11 So 26.10.2008, 11:28
[S] Übersetzer Chinesisch --> Deutsch Stefu 104 0 So 12.10.2008, 10:35
tagging + stemming pangu 164 1 Fr 5.09.2008, 15:14
[B] Englisch <> Deutsch Übersetzungen hardcore 135 0 Di 12.08.2008, 20:59
[S] Contentübersetzer Deutsch->Englisch FWP Systems 109 0 Fr 8.08.2008, 13:34
Keyword-Recherche auf deutsch Croni 923 4 Di 5.02.2008, 14:49
ADWords Schulungsvideo in Deutsch? WebtoolMaster 503 3 So 9.12.2007, 23:55
Google Suchmaschine jetzt auf Deutsch oktuner 307 0 Mi 21.11.2007, 09:05




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]