-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathTrainerTests.java
95 lines (88 loc) · 4.08 KB
/
TrainerTests.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package org.xbib.decompound;
import org.junit.Test;
import org.xbib.elasticsearch.index.analysis.decompound.Decompounder;
import java.io.StringReader;
public class TrainerTests {
@Test
public void train() throws Exception {
Trainer trainer = new Trainer();
StringReader nouns = new StringReader(
"Rente Rente\n"
+ "Renten Rente\n"
+ "Versicherung Versicherung\n"
+ "Versicherungen Versicherung\n"
+ "Reich Reich\n"
+ "Reichs Reich\n"
+ "Kanzler Kanzler\n"
+ "Thron Thron\n"
+ "Folge Folge\n"
+ "Industrie Industrie\n"
+ "Wert Wert\n"
+ "Werte Wert\n"
+ "Bund Bund\n"
+ "Bundes Bund\n"
+ "Ministerium Ministerium\n"
+ "Ministeriums Ministerium\n"
+ "Bier Bier\n"
+ "Zelt Zelt\n"
+ "Wald Wald\n"
+ "Sterben Sterben\n"
+ "Kunde Kunde\n"
+ "Kunden Kunden\n"
+ "Kinder Kind\n"
+ "Garten Garten"
+ "Dampf Dampf\n"
+ "Schiff Schiff\n"
);
StringReader compounds = new StringReader(
"Rentenversicherung Renten + versicherung\n"
+ "Reichskanzler Reichs + kanzler\n"
+ "Thronfolge Thron + folge\n"
+ "Industriewerte Industrie + werte\n"
+ "Bundesministeriums Bundes + ministeriums\n"
+ "Bierzelt Bier + zelt\n"
+ "Waldsterben Wald + sterben\n"
+ "Industriekunden Industrie + kunden\n"
+ "Publikumsmagnet Publikums + magnet \n"
+ "Bundesbildungsminister Bundes + bildungs + minister\n"
+ "Binnenland Binnen + land\n"
+ "Postleitzahlen Post + leit + zahlen\n"
+ "Mutprobe Mut + probe\n"
+ "Firefox Fire + fox\n"
+ "Neonlicht Neon + licht\n"
+ "Messerstiche Messer + stiche\n"
+ "Materialkosten Material + kosten\n"
+ "Hochschulreife Hochschul + reife\n"
+ "Blutspuren Blut + spuren\n"
+ "Kulturausschuss Kultur + ausschuss\n"
+ "Doppelmoral Doppel + moral\n"
+ "Tourismusindustrie Tourismus + industrie\n"
+ "Weihwasser Weih + wasser\n"
+ "Vorschulalter Vorschul + alter\n"
+ "Kulturausschuss Kultur + ausschuss\n"
+ "Ausbildungszeiten Ausbildungs + zeiten\n"
+ "Stromkunden Strom + kunden\n"
+ "Kindergarten Kinder + garten\n"
+ "Dampfschiff Dampf + schiff\n"
);
trainer.trainReduce(nouns, 0.51d);
//trainer.loadReduce(getClass().getResourceAsStream("/grfExt.tree"));
trainer.trainCompounds(compounds, null, null, 0.51d);
//InputStream forwfile = getClass().getResourceAsStream("/kompVVic.tree");
//InputStream backwfile = getClass().getResourceAsStream("/kompVHic.tree");
//InputStream reducfile = getClass().getResourceAsStream("/grfExt.tree");
//Decompounder d = new Decompounder(forwfile, backwfile, reducfile, 0.51d);
Decompounder d = new Decompounder(trainer.getForward(), trainer.getBackward(), trainer.getReduce(), 0.51d);
//assertEquals("[Rente, versicherung]", d.decompound("Rentenversicherung").toString());
String s[] = new String[]{
"Rentenversicherung",
"Dampfschiff",
"Kinder",
"Kindergarten",
"Waldsterben"
};
for (String w : s) {
System.err.println("input = " + w + " decompound output = " + d.decompound(w));
}
}
}