Skip to content

Commit aad5073

Browse files
committed
Adds some more test cases and updates dictionary
1 parent 38b8529 commit aad5073

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed
-886 Bytes
Binary file not shown.

charabia/dictionaries/txt/german/words.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6192,7 +6192,7 @@ Glas
61926192
Glaser
61936193
Glasnost
61946194
Glasur
6195-
Glatteis
6195+
Glatt
61966196
Glatze
61976197
Glaube
61986198
Glauben
@@ -8306,6 +8306,7 @@ Kuli
83068306
Kulisse
83078307
Kult
83088308
Kultur
8309+
Kulturalität
83098310
Kultus
83108311
Kummer
83118312
Kumpan
@@ -21691,7 +21692,7 @@ glas
2169121692
glaser
2169221693
glasnost
2169321694
glasur
21694-
glatteis
21695+
glatt
2169521696
glatze
2169621697
glaube
2169721698
glauben
@@ -23805,6 +23806,7 @@ kuli
2380523806
kulisse
2380623807
kult
2380723808
kultur
23809+
kulturalität
2380823810
kultus
2380923811
kummer
2381023812
kumpan

charabia/src/segmenter/german.rs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ static WORDS_FST: Lazy<Fst<&[u8]>> =
1313
Lazy::new(|| Fst::new(&include_bytes!("../../dictionaries/fst/german/words.fst")[..]).unwrap());
1414

1515
static FST_SEGMENTER: Lazy<FstSegmenter> =
16-
Lazy::new(|| FstSegmenter::new(&WORDS_FST, Some(4), true));
16+
Lazy::new(|| FstSegmenter::new(&WORDS_FST, Some(2), true));
1717

1818
impl Segmenter for GermanSegmenter {
1919
fn segment_str<'o>(&self, to_segment: &'o str) -> Box<dyn Iterator<Item = &'o str> + 'o> {
@@ -100,7 +100,34 @@ mod test {
100100
word1
101101
);
102102
test_segmentation!("Schreibprozess", &["Schreib", "prozess"], word2);
103-
test_segmentation!("Interkulturalität", &["Inter", "kultur", "alität"], word3);
103+
test_segmentation!("Interkulturalität", &["Inter", "kulturalität"], word3);
104104
test_segmentation!("Wissensorganisation", &["Wissens", "organisation"], word4);
105105
test_segmentation!("Aufgabenplanung", &["Aufgaben", "planung"], word5);
106+
test_segmentation!("Eisbrecher", &["Eis", "brecher"], word6);
107+
test_segmentation!("Zuckerei", &["Zucker", "ei"], word7);
108+
test_segmentation!("Glatteis", &["Glatt", "eis"], word8);
109+
test_segmentation!("Sinnfindung", &["Sinn", "findung"], word9);
110+
test_segmentation!(
111+
"Donaudampfschifffahrtsgesellschaftskapitän",
112+
&["Donau", "dampf", "schifffahrts", "gesellschafts", "kapitän"],
113+
word10
114+
);
115+
test_segmentation!(
116+
"Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz",
117+
&[
118+
"Rind",
119+
"fleisch",
120+
"etikettierungs",
121+
"überwachungs",
122+
"aufgaben",
123+
"übertragungs",
124+
"gesetz"
125+
],
126+
word11
127+
);
128+
test_segmentation!(
129+
"Nahrungsmittelunverträglichkeitsdiagnoseverfahren",
130+
&["Nahrungs", "mittel", "un", "verträglichkeits", "diagnose", "verfahren"],
131+
word12
132+
);
106133
}

0 commit comments

Comments
 (0)