![JAR search and dependency download from the Maven repository](/logo.png)
org.tartarus.snowball.ext.GermanStemmer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of text-classifier-collection Show documentation
Show all versions of text-classifier-collection Show documentation
A full fledged text classification toolkit for Java
The newest version!
// This file was generated automatically by the Snowball to Java compiler
// http://snowballstem.org/
package org.tartarus.snowball.ext;
import org.tartarus.snowball.*;
/**
* This class was automatically generated by a Snowball to Java compiler It
* implements the stemming algorithm defined by a snowball script.
*/
public class GermanStemmer extends SnowballStemmer{
private static final long serialVersionUID=1L;
private final static Among a_0[]={
new Among("",-1,5),
new Among("U",0,2),
new Among("Y",0,1),
new Among("\u00C3\u00A4",0,3),
new Among("\u00C3\u00B6",0,4),
new Among("\u00C3\u00BC",0,2)
};
private final static Among a_1[]={
new Among("e",-1,2),
new Among("em",-1,1),
new Among("en",-1,2),
new Among("ern",-1,1),
new Among("er",-1,1),
new Among("s",-1,3),
new Among("es",5,2)
};
private final static Among a_2[]={
new Among("en",-1,1),
new Among("er",-1,1),
new Among("st",-1,2),
new Among("est",2,1)
};
private final static Among a_3[]={
new Among("ig",-1,1),
new Among("lich",-1,1)
};
private final static Among a_4[]={
new Among("end",-1,1),
new Among("ig",-1,2),
new Among("ung",-1,1),
new Among("lich",-1,3),
new Among("isch",-1,2),
new Among("ik",-1,2),
new Among("heit",-1,3),
new Among("keit",-1,4)
};
private static final char g_v[]={17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8};
private static final char g_s_ending[]={117,30,5};
private static final char g_st_ending[]={117,30,4};
private int I_x;
private int I_p2;
private int I_p1;
private boolean r_prelude(){
// (, line 33
// test, line 35
int v_1=cursor;
// repeat, line 35
replab0:
while(true){
int v_2=cursor;
lab1:
do{
// (, line 35
// or, line 38
lab2:
do{
int v_3=cursor;
lab3:
do{
// (, line 36
// [, line 37
bra=cursor;
// literal, line 37
if(!(eq_s("\u00C3\u009F"))){
break lab3;
}
// ], line 37
ket=cursor;
// <-, line 37
slice_from("ss");
break lab2;
}while(false);
cursor=v_3;
// next, line 38
if(cursor>=limit){
break lab1;
}
cursor++;
}while(false);
continue replab0;
}while(false);
cursor=v_2;
break replab0;
}
cursor=v_1;
// repeat, line 41
replab4:
while(true){
int v_4=cursor;
lab5:
do{
// goto, line 41
golab6:
while(true){
int v_5=cursor;
lab7:
do{
// (, line 41
if(!(in_grouping(g_v,97,252))){
break lab7;
}
// [, line 42
bra=cursor;
// or, line 42
lab8:
do{
int v_6=cursor;
lab9:
do{
// (, line 42
// literal, line 42
if(!(eq_s("u"))){
break lab9;
}
// ], line 42
ket=cursor;
if(!(in_grouping(g_v,97,252))){
break lab9;
}
// <-, line 42
slice_from("U");
break lab8;
}while(false);
cursor=v_6;
// (, line 43
// literal, line 43
if(!(eq_s("y"))){
break lab7;
}
// ], line 43
ket=cursor;
if(!(in_grouping(g_v,97,252))){
break lab7;
}
// <-, line 43
slice_from("Y");
}while(false);
cursor=v_5;
break golab6;
}while(false);
cursor=v_5;
if(cursor>=limit){
break lab5;
}
cursor++;
}
continue replab4;
}while(false);
cursor=v_4;
break replab4;
}
return true;
}
private boolean r_mark_regions(){
// (, line 47
I_p1=limit;
I_p2=limit;
// test, line 52
int v_1=cursor;
// (, line 52
// hop, line 52
{
int c=cursor+3;
if(0>c||c>limit){
return false;
}
cursor=c;
}
// setmark x, line 52
I_x=cursor;
cursor=v_1;
// gopast, line 54
golab0:
while(true){
lab1:
do{
if(!(in_grouping(g_v,97,252))){
break lab1;
}
break golab0;
}while(false);
if(cursor>=limit){
return false;
}
cursor++;
}
// gopast, line 54
golab2:
while(true){
lab3:
do{
if(!(out_grouping(g_v,97,252))){
break lab3;
}
break golab2;
}while(false);
if(cursor>=limit){
return false;
}
cursor++;
}
// setmark p1, line 54
I_p1=cursor;
// try, line 55
lab4:
do{
// (, line 55
if(!(I_p1=limit){
return false;
}
cursor++;
}
// gopast, line 56
golab7:
while(true){
lab8:
do{
if(!(out_grouping(g_v,97,252))){
break lab8;
}
break golab7;
}while(false);
if(cursor>=limit){
return false;
}
cursor++;
}
// setmark p2, line 56
I_p2=cursor;
return true;
}
private boolean r_postlude(){
int among_var;
// repeat, line 60
replab0:
while(true){
int v_1=cursor;
lab1:
do{
// (, line 60
// [, line 62
bra=cursor;
// substring, line 62
among_var=find_among(a_0);
if(among_var==0){
break lab1;
}
// ], line 62
ket=cursor;
switch(among_var){
case 0:
break lab1;
case 1:
// (, line 63
// <-, line 63
slice_from("y");
break;
case 2:
// (, line 64
// <-, line 64
slice_from("u");
break;
case 3:
// (, line 65
// <-, line 65
slice_from("a");
break;
case 4:
// (, line 66
// <-, line 66
slice_from("o");
break;
case 5:
// (, line 68
// next, line 68
if(cursor>=limit){
break lab1;
}
cursor++;
break;
}
continue replab0;
}while(false);
cursor=v_1;
break replab0;
}
return true;
}
private boolean r_R1(){
if(!(I_p1<=cursor)){
return false;
}
return true;
}
private boolean r_R2(){
if(!(I_p2<=cursor)){
return false;
}
return true;
}
private boolean r_standard_suffix(){
int among_var;
// (, line 78
// do, line 79
int v_1=limit-cursor;
lab0:
do{
// (, line 79
// [, line 80
ket=cursor;
// substring, line 80
among_var=find_among_b(a_1);
if(among_var==0){
break lab0;
}
// ], line 80
bra=cursor;
// call R1, line 80
if(!r_R1()){
break lab0;
}
switch(among_var){
case 0:
break lab0;
case 1:
// (, line 82
// delete, line 82
slice_del();
break;
case 2:
// (, line 85
// delete, line 85
slice_del();
// try, line 86
int v_2=limit-cursor;
lab1:
do{
// (, line 86
// [, line 86
ket=cursor;
// literal, line 86
if(!(eq_s_b("s"))){
cursor=limit-v_2;
break lab1;
}
// ], line 86
bra=cursor;
// literal, line 86
if(!(eq_s_b("nis"))){
cursor=limit-v_2;
break lab1;
}
// delete, line 86
slice_del();
}while(false);
break;
case 3:
// (, line 89
if(!(in_grouping_b(g_s_ending,98,116))){
break lab0;
}
// delete, line 89
slice_del();
break;
}
}while(false);
cursor=limit-v_1;
// do, line 93
int v_3=limit-cursor;
lab2:
do{
// (, line 93
// [, line 94
ket=cursor;
// substring, line 94
among_var=find_among_b(a_2);
if(among_var==0){
break lab2;
}
// ], line 94
bra=cursor;
// call R1, line 94
if(!r_R1()){
break lab2;
}
switch(among_var){
case 0:
break lab2;
case 1:
// (, line 96
// delete, line 96
slice_del();
break;
case 2:
// (, line 99
if(!(in_grouping_b(g_st_ending,98,116))){
break lab2;
}
// hop, line 99
{
int c=cursor-3;
if(limit_backward>c||c>limit){
break lab2;
}
cursor=c;
}
// delete, line 99
slice_del();
break;
}
}while(false);
cursor=limit-v_3;
// do, line 103
int v_4=limit-cursor;
lab3:
do{
// (, line 103
// [, line 104
ket=cursor;
// substring, line 104
among_var=find_among_b(a_4);
if(among_var==0){
break lab3;
}
// ], line 104
bra=cursor;
// call R2, line 104
if(!r_R2()){
break lab3;
}
switch(among_var){
case 0:
break lab3;
case 1:
// (, line 106
// delete, line 106
slice_del();
// try, line 107
int v_5=limit-cursor;
lab4:
do{
// (, line 107
// [, line 107
ket=cursor;
// literal, line 107
if(!(eq_s_b("ig"))){
cursor=limit-v_5;
break lab4;
}
// ], line 107
bra=cursor;
// not, line 107
{
int v_6=limit-cursor;
lab5:
do{
// literal, line 107
if(!(eq_s_b("e"))){
break lab5;
}
cursor=limit-v_5;
break lab4;
}while(false);
cursor=limit-v_6;
}
// call R2, line 107
if(!r_R2()){
cursor=limit-v_5;
break lab4;
}
// delete, line 107
slice_del();
}while(false);
break;
case 2: // (, line 110
// not, line 110
{
int v_7=limit-cursor;
lab6:
do{
// literal, line 110
if(!(eq_s_b("e"))){
break lab6;
}
break lab3;
}while(false);
cursor=limit-v_7;
}
// delete, line 110
slice_del();
break;
case 3:
// (, line 113
// delete, line 113
slice_del();
// try, line 114
int v_8=limit-cursor;
lab7:
do{
// (, line 114
// [, line 115
ket=cursor;
// or, line 115
lab8:
do{
int v_9=limit-cursor;
lab9:
do{
// literal, line 115
if(!(eq_s_b("er"))){
break lab9;
}
break lab8;
}while(false);
cursor=limit-v_9;
// literal, line 115
if(!(eq_s_b("en"))){
cursor=limit-v_8;
break lab7;
}
}while(false);
// ], line 115
bra=cursor;
// call R1, line 115
if(!r_R1()){
cursor=limit-v_8;
break lab7;
}
// delete, line 115
slice_del();
}while(false);
break;
case 4:
// (, line 119
// delete, line 119
slice_del();
// try, line 120
int v_10=limit-cursor;
lab10:
do{
// (, line 120
// [, line 121
ket=cursor;
// substring, line 121
among_var=find_among_b(a_3);
if(among_var==0){
cursor=limit-v_10;
break lab10;
}
// ], line 121
bra=cursor;
// call R2, line 121
if(!r_R2()){
cursor=limit-v_10;
break lab10;
}
switch(among_var){
case 0:
cursor=limit-v_10;
break lab10;
case 1:
// (, line 123
// delete, line 123
slice_del();
break;
}
}while(false);
break;
}
}while(false);
cursor=limit-v_4;
return true;
}
public boolean stem(){
// (, line 133
// do, line 134
int v_1=cursor;
lab0:
do{
// call prelude, line 134
if(!r_prelude()){
break lab0;
}
}while(false);
cursor=v_1;
// do, line 135
int v_2=cursor;
lab1:
do{
// call mark_regions, line 135
if(!r_mark_regions()){
break lab1;
}
}while(false);
cursor=v_2;
// backwards, line 136
limit_backward=cursor;
cursor=limit;
// do, line 137
lab2:
do{
// call standard_suffix, line 137
if(!r_standard_suffix()){
break lab2;
}
}while(false);
cursor=limit_backward;
// do, line 138
int v_4=cursor;
lab3:
do{
// call postlude, line 138
if(!r_postlude()){
break lab3;
}
}while(false);
cursor=v_4;
return true;
}
public boolean equals(Object o){
return o instanceof GermanStemmer;
}
public int hashCode(){
return GermanStemmer.class.getName().hashCode();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy