summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Dyer <redpony@gmail.com>2009-12-07 16:53:07 -0500
committerChris Dyer <redpony@gmail.com>2009-12-07 16:53:07 -0500
commit289bff46b5695c89786ae5dc823479af9d9e7272 (patch)
treead2b59b7e3e4e9c6362d5c5b71c6ec6d4fdf2368
parent476d09e1df52cba0be8e5f50d52bf5f32795288f (diff)
add compound splitter
-rw-r--r--compound-split/README51
-rw-r--r--compound-split/cdec-de.ini5
-rwxr-xr-xcompound-split/compound-split.pl123
-rwxr-xr-xcompound-split/de/TRAIN2
-rw-r--r--compound-split/de/badlist.de.gzbin0 -> 334 bytes
-rw-r--r--compound-split/de/cdec-train.ini4
-rw-r--r--compound-split/de/charlm.rev.5gm.de.lm.gzbin0 -> 5847741 bytes
-rw-r--r--compound-split/de/dev.in-ref621
-rw-r--r--compound-split/de/large_dict.de.gzbin0 -> 4188658 bytes
-rw-r--r--compound-split/de/test302
-rw-r--r--compound-split/de/test.ref302
-rw-r--r--compound-split/de/weights.ptinit17
-rw-r--r--compound-split/de/weights.trained17
-rw-r--r--compound-split/examples.de/infile.txt5
-rw-r--r--compound-split/examples.de/out.plf5
-rw-r--r--compound-split/examples.de/out.txt5
-rw-r--r--compound-split/hu/charlm.rev.5gm.hu.lm.gzbin0 -> 5847741 bytes
-rw-r--r--compound-split/hu/large_dict.hu.gzbin0 -> 3888867 bytes
-rwxr-xr-xcompound-split/lattice-stats.py46
-rw-r--r--src/cdec.cc6
20 files changed, 1509 insertions, 2 deletions
diff --git a/compound-split/README b/compound-split/README
new file mode 100644
index 00000000..b7491007
--- /dev/null
+++ b/compound-split/README
@@ -0,0 +1,51 @@
+Instructions for running the compound splitter, which is a reimplementation
+and extension (more features, larger non-word list) of the model described in
+
+ C. Dyer. (2009) Using a maximum entropy model to build segmentation
+ lattices for MT. In Proceedings of NAACL HLT 2009,
+ Boulder, Colorado, June 2009
+
+If you use this software, please cite this paper.
+
+
+GENERATING 1-BEST SEGMENTATIONS AND LATTICES
+------------------------------------------------------------------------------
+
+Here are some sample invokations:
+
+ ./compound-split.pl --output 1best < infile.txt > out.1best.txt
+ Segment infile.txt according to the 1-best segmentation file.
+
+ ./compound-split.pl --output plf < infile.txt > out.plf
+
+ ./compound-split.pl --output plf --beam 3.5 < infile.txt > out.plf
+ This generates denser lattices than usual (the default beam threshold
+ is 2.2, higher numbers do less pruning)
+
+
+MODEL TRAINING (only for the adventuresome)
+------------------------------------------------------------------------------
+
+I've included some training data for training a German language lattice
+segmentation model, and if you want to explore, you can or change the data.
+If you're especially adventuresome, you can add features to cdec (the current
+feature functions are found in ff_csplit.cc). The training/references are
+in the file:
+
+ dev.in-ref
+
+The format is the unsegmented form on the right and the reference lattice on
+the left, separated by a triple pipe ( ||| ). Note that the segmentation
+model inserts a # as the first word, so your segmentation references must
+include this.
+
+To retrain the model (using MAP estimation of a conditional model), do the
+following:
+
+ cd de
+ ./TRAIN
+
+Note, the optimization objective is supposed to be non-convex, but i haven't
+found much of an effect of where I initialize things. But I haven't looked
+very hard- this might be something to explore.
+
diff --git a/compound-split/cdec-de.ini b/compound-split/cdec-de.ini
new file mode 100644
index 00000000..65065487
--- /dev/null
+++ b/compound-split/cdec-de.ini
@@ -0,0 +1,5 @@
+formalism=csplit
+cubepruning_pop_limit=100000
+weights=de/weights.trained
+feature_function=CSplit_BasicFeatures de/large_dict.de.gz de/badlist.de.gz
+feature_function=CSplit_ReverseCharLM de/charlm.rev.5gm.de.lm.gz
diff --git a/compound-split/compound-split.pl b/compound-split/compound-split.pl
new file mode 100755
index 00000000..e6f1a3e0
--- /dev/null
+++ b/compound-split/compound-split.pl
@@ -0,0 +1,123 @@
+#!/usr/bin/perl -w
+
+use strict;
+my $script_dir; BEGIN { use Cwd qw/ abs_path /; use File::Basename; $script_dir = dirname(abs_path($0)); push @INC, $script_dir; }
+use Getopt::Long;
+use IPC::Open2;
+
+my $CDEC = "$script_dir/../src/cdec";
+my $LANG = 'de';
+
+my $BEAM = 2.1;
+my $OUTPUT = 'plf';
+my $HELP;
+my $VERBOSE;
+
+GetOptions("decoder=s" => \$CDEC,
+ "language=s" => \$LANG,
+ "beam=f" => \$BEAM,
+ "output=s" => \$OUTPUT,
+ "verbose" => \$VERBOSE,
+ "help" => \$HELP
+ ) or usage();
+
+usage() if $HELP;
+
+chdir $script_dir;
+
+if ($VERBOSE) { $VERBOSE = ""; } else { $VERBOSE = " 2> /dev/null"; }
+$LANG = lc $LANG;
+die "Can't find $CDEC\n" unless -f $CDEC;
+die "Can't execute $CDEC\n" unless -x $CDEC;
+die "Don't know about language: $LANG\n" unless -d "./$LANG";
+my $CONFIG="cdec-$LANG.ini";
+die "Can't find $CONFIG" unless -f $CONFIG;
+die "--output must be '1best' or 'plf'\n" unless ($OUTPUT =~ /^(plf|1best)$/);
+print STDERR "(Run with --help for options)\n";
+print STDERR "LANGUAGE: $LANG\n";
+print STDERR " OUTPUT: $OUTPUT\n";
+
+my $CMD = "$CDEC -c $CONFIG";
+my $IS_PLF;
+if ($OUTPUT eq 'plf') {
+ $IS_PLF = 1;
+ $CMD .= " --csplit_preserve_full_word --csplit_output_plf --beam_prune $BEAM";
+}
+$CMD .= $VERBOSE;
+
+print STDERR "Executing: $CMD\n";
+
+open2(\*OUT, \*IN, $CMD) or die "Couldn't fork: $!";
+binmode(STDIN,":utf8");
+binmode(STDOUT,":utf8");
+binmode(IN,":utf8");
+binmode(OUT,":utf8");
+
+while(<STDIN>) {
+ chomp;
+ s/^\s+//;
+ s/\s+$//;
+ my @words = split /\s+/;
+ my @res = ();
+ my @todo = ();
+ for (my $i=0; $i < scalar @words; $i++) {
+ my $word = lc $words[$i];
+ if (length($word)<6 || $word =~ /^[,\-0-9\.]+$/) {
+ push @res, $word;
+ } else {
+ push @res, undef;
+ push @todo, $word;
+ }
+ }
+ if (scalar @todo > 0) {
+ # print STDERR "TODO: @todo\n";
+ my $tasks = join "\n", @todo;
+ print IN "$tasks\n";
+ for (my $i = 0; $i < scalar @res; $i++) {
+ if (!defined $res[$i]) {
+ my $seg = <OUT>;
+ chomp $seg;
+ unless ($IS_PLF) {
+ $seg =~ s/^# //o;
+ }
+ $res[$i] = $seg;
+ } elsif ($IS_PLF) {
+ $res[$i] = "(('" . escape($res[$i]) . "',0,1),),";
+ }
+ }
+ }
+ if ($IS_PLF) {
+ print '(';
+ print join '', @res;
+ print ")\n";
+ } else {
+ print "@res\n";
+ }
+}
+
+close IN;
+close OUT;
+
+sub escape {
+ $_ = shift;
+ s/\\/\\\\/g;
+ s/'/\\'/g;
+ return $_;
+}
+
+sub usage {
+ print <<EOT;
+
+Usage: $0 [OPTIONS] < file.txt
+
+ Options:
+ --decoder PATH Path to cdec
+ --lanugage XX Two letter language code (de, ...)
+ --beam NUM Beam threshold, used with PLF output
+ (probably between 1.5 and 5.0)
+ --output plf|1best Output format, 1best or plf (lattice)
+ --verbose Show verbose decoder output
+
+EOT
+ exit(1);
+}
diff --git a/compound-split/de/TRAIN b/compound-split/de/TRAIN
new file mode 100755
index 00000000..a1f6081b
--- /dev/null
+++ b/compound-split/de/TRAIN
@@ -0,0 +1,2 @@
+../../src/training/cluster-ptrain.pl --run_locally cdec-train.ini dev.in-ref weights.ptinit --gaussian_prior --sigma_squared 2 &> training.log
+
diff --git a/compound-split/de/badlist.de.gz b/compound-split/de/badlist.de.gz
new file mode 100644
index 00000000..a045f833
--- /dev/null
+++ b/compound-split/de/badlist.de.gz
Binary files differ
diff --git a/compound-split/de/cdec-train.ini b/compound-split/de/cdec-train.ini
new file mode 100644
index 00000000..95e4bb8b
--- /dev/null
+++ b/compound-split/de/cdec-train.ini
@@ -0,0 +1,4 @@
+formalism=csplit
+cubepruning_pop_limit=100000
+feature_function=CSplit_BasicFeatures large_dict.de.gz badlist.de.gz
+feature_function=CSplit_ReverseCharLM charlm.rev.5gm.de.lm.gz
diff --git a/compound-split/de/charlm.rev.5gm.de.lm.gz b/compound-split/de/charlm.rev.5gm.de.lm.gz
new file mode 100644
index 00000000..1bae8cb9
--- /dev/null
+++ b/compound-split/de/charlm.rev.5gm.de.lm.gz
Binary files differ
diff --git a/compound-split/de/dev.in-ref b/compound-split/de/dev.in-ref
new file mode 100644
index 00000000..a68f0688
--- /dev/null
+++ b/compound-split/de/dev.in-ref
@@ -0,0 +1,621 @@
+untersuchungsausschuss ||| ((('#',0,1),),(('untersuchung',0,1),('untersuchungs',0,1),),(('ausschuss',0,1),),)
+vielleicht ||| # vielleicht
+hochzeiten ||| # hochzeiten
+damalige ||| # damalige
+siegfried ||| # siegfried
+jaschinski ||| # jaschinski
+verdächtigenkreis ||| ((('#',0,1),),(('verdächtige',0,1),('verdächtigen',0,1),),(('kreis',0,1),),)
+staatsanwaltschaft ||| ((('#',0,1),),(('staat',0,1),('staats',0,1),),(('staatsanwaltschaft',0,1),),)
+damals ||| # damals
+gefeiert ||| # gefeiert
+landesbank ||| ((('#',0,1),),(('landesbank',0,2),('landes',0,1),('land',0,1),),(('bank',0,1),),)
+ungewöhnlich ||| # ungewöhnlich
+schwäbischen ||| # schwäbischen
+feldherrn ||| # feld herrn
+handelsblatt ||| ((('#',0,1),),(('handels',0,1),('handel',0,1),('handelsblatt',0,2),),(('blatt',0,1),),)
+alexander ||| # alexander
+großen ||| # großen
+promoviert ||| # promoviert
+wachstumsplänen ||| ((('#',0,1),),(('wachstums',0,1),('wachstum',0,1),),(('plänen',0,1),),)
+keinen ||| # keinen
+unausweichlichen ||| # unausweichlichen
+konsolidierung ||| # konsolidierung
+branche ||| # branche
+tragende ||| # tragende
+träumt ||| # träumt
+institut ||| # institut
+glücklicherweise ||| # glücklicherweise
+augenhöhe ||| ((('#',0,1),),(('auge',0,1),('augen',0,1),),(('höhe',0,1),),)
+deutschen ||| # deutschen
+wiederherstellung ||| # wiederherstellung
+grundstück ||| ((('#',0,1),),(('grund',0,1),('grundstück',0,2),),(('stück',0,1),),)
+ruhestand ||| # ruhestand
+widerstand ||| # widerstand
+verstrickt ||| # verstrickt
+stellen ||| # stellen
+zahlreichen ||| # zahlreichen
+versammlungsgesetz ||| ((('#',0,1),),(('versammlung',0,1),('versammlungs',0,1),),(('gesetz',0,1),),)
+verstöße ||| # verstöße
+sachbeschädigung ||| # sach beschädigung
+vereinigungen ||| # vereinigungen
+glashaus ||| # glas haus
+auenlandschaft ||| # auen landschaft
+fundament ||| # fundament
+vierhock ||| # vierhock
+idylle ||| # idylle
+plätschert ||| # plätschert
+johannes ||| # johannes
+angrenzenden ||| # angrenzenden
+sportjacke ||| # sport jacke
+mittelmeerinseln ||| # mittelmeer inseln
+stiefelförmige ||| # stiefel förmige
+wiederaufnahme ||| # wiederaufnahme
+tonbandaufnahme ||| # tonband aufnahme
+korrekturzucker ||| # korrektur zucker
+meeresspiegel ||| ((('#',0,1),),(('meer',0,1),('meeres',0,1),),(('spiegel',0,1),),)
+gesamtausgabe ||| # gesamt ausgabe
+losfertigung ||| # los fertigung
+reichstag ||| # reichstag
+monntag ||| # monntag
+mittwoch ||| # mittwoch
+freitag ||| # freitag
+sonntag ||| # sonntag
+nachbarschaftsbeziehungen ||| ((('#',0,1),),(('nachbarschafts',0,1),('nachbarschaft',0,1),),(('beziehungen',0,1),),)
+saftbar ||| # saft bar
+produktionsprozesses ||| # produktion prozesses
+gesamtzusammenhang ||| # gesamt zusammenhang
+volkswirtschaftslehre ||| # volk wirtschaft lehre
+losverfahren ||| # los verfahren
+schifffahrt ||| # schiff fahrt
+dienstag ||| # dienstag
+donnerstag ||| # donnerstag
+samstag ||| # samstag
+sonnabend ||| # sonnabend
+mitglied ||| # mitglied
+abblendlicht ||| # abblend licht
+abbrucharbeiten ||| # abbruch arbeiten
+abergläubischen ||| # abergläubischen
+abfallbewirtschaftungshierarchie ||| # abfall bewirtschaftung hierarchie
+abfallbewirtschaftungsplänen ||| # abfall bewirtschaftung plänen
+abfertigungsgebühren ||| # abfertigung gebühren
+beitragsunabhängig ||| # beitrag unabhängig
+einreichungsfrist ||| # einreichung frist
+europaabgeordnete ||| # europa abgeordnete
+früherkennungskampagnen ||| # früh erkennung kampagnen
+hilfsagenturen ||| ((('#',0,1),),(('hilf',0,1),('hilfs',0,1),),(('agenturen',0,1),),)
+hilfsinstitutionen ||| ((('#',0,1),),(('hilf',0,1),('hilfs',0,1),),(('institutionen',0,1),),)
+kaisergranat ||| # kaiser granat
+kalifornien ||| # kalifornien
+kampfflugzeug ||| # kampf flugzeug
+luftangriffen ||| # luft angriffen
+luftsicherheit ||| # luft sicherheit
+mithäftlingen ||| # mithäftlingen
+wartungsarbeiten ||| # wartung arbeiten
+wasseraufbereitungsanlagen ||| ((('#',0,1),),(('wasser',0,1),),(('aufbereitungs',0,1),('aufbereitung',0,1),),(('anlagen',0,1),),)
+wasserdienstleistungen ||| # wasser dienstleistungen
+weihnachtsgeschenk ||| # weihnacht geschenk
+weltarbeitsorganisation ||| # welt arbeit organisation
+zeitdruck ||| # zeit druck
+bundesagentur ||| ((('#',0,1),),(('bund',0,1),('bundes',0,1),),(('agentur',0,1),),)
+fahrstuhlschächten ||| # fahrstuhl schächten
+elektroindustrie ||| # elektro industrie
+sonderpreis ||| # sonder preis
+modellrechnung ||| # modell rechnung
+treibhauseffekt ||| # treibhaus effekt
+europatournee ||| # europa tournee
+wirtschaftskrise ||| # wirtschafts krise
+mittwochabend ||| # mittwoch abend
+abschiedsgala ||| # abschied gala
+betriebstag ||| # betrieb tag
+flughafen ||| # flughafen
+truthahn ||| # truthahn
+gehirnregion ||| # gehirn region
+feststellung ||| # feststellung
+thanksgiving ||| # thanks giving
+börsenhändler ||| # börsen händler
+risikoforschung ||| # risiko forschung
+finanzkrise ||| # finanz krise
+erkenntnis ||| # erkenntnis
+vergangenheit ||| # vergangenheit
+festtagsbratenesser ||| # festtag braten esser
+ungemütlichkeit ||| # ungemütlichkeit
+privatanlegern ||| # privat anlegern
+finanzmakler ||| # finanz makler
+immobilienfonds ||| # immobilien fonds
+wertzuwachs ||| # wert zuwachs
+marmelade ||| # marmelade
+roboterzofe ||| # roboter zofe
+heinrich ||| # heinrich
+zeitdehnung ||| # zeit dehnung
+zeitlosigkeit ||| # zeitlosigkeit
+auseinandersetzung ||| # auseinandersetzung
+immobilienfondskrise ||| ((('#',0,1),),(('immobilien',0,1),),(('fonds',0,1),('fond',0,1),),(('krise',0,1),),)
+stackelberg ||| # stackelberg
+bodenseedampfschifffahrtsgesellschaftskapitänsmütze ||| # bodensee dampf schiff fahrt gesellschaft kapitän mütze
+hamburg ||| # hamburg
+inzwischen ||| # inzwischen
+deutsche ||| # deutsche
+justiz ||| # justiz
+britische ||| # britische
+bischof ||| # bischof
+richard ||| # richard
+williamson ||| # williamson
+respektablen ||| # respektablen
+standes ||| # standes
+soutane ||| # soutane
+unfassbare ||| # unfassbare
+millionen ||| # millionen
+gaskammern ||| # gas kammern
+holocaustleugner ||| # holocaust leugner
+großansicht ||| # groß ansicht
+überraschte ||| # überraschte
+gegenfrage ||| # gegen frage
+journalisten ||| # journalisten
+fernsehsender ||| # fernseh sender
+schließlich ||| # schließlich
+revisionisten ||| # revisionisten
+dreihunderttausend ||| # drei hundert tausend
+konzentrationslagern ||| ((('#',0,1),),(('konzentration',0,1),('konzentrations',0,1),),(('lagern',0,1),),)
+schwadroniert ||| # schwadroniert
+schornsteinhöhen ||| # schornstein höhen
+touristen ||| # touristen
+auschwitz ||| # auschwitz
+birkenau ||| # birkenau
+antisemitismus ||| ((('#',0,1),),(('anti',0,1),('antisemitismus',0,2),),(('semitismus',0,1),),)
+schwedische ||| # schwedische
+interviewer ||| # interviewer
+bischof ||| # bischof
+williamson ||| # williamson
+wahrheit ||| # wahrheit
+schlecht ||| # schlecht
+interessiert ||| # interessiert
+entrückte ||| # entrückte
+deutscher ||| # deutscher
+blamiert ||| # blamiert
+katholische ||| # katholische
+ausgabe ||| # ausgabe
+skandal ||| # skandal
+interview ||| # interview
+berichtet ||| # berichtet
+bayerischen ||| # bayerischen
+zaitzhofen ||| # zaitzhofen
+fernsehen ||| # fernsehen
+regensburger ||| # regensburger
+ruckdäschel ||| # ruckdäschel
+artikel ||| # artikel
+leitete ||| # leitete
+angaben ||| # angaben
+ermittlungsverfahren ||| ((('#',0,1),),(('ermittlung',0,1),('ermittlungs',0,1),),(('verfahren',0,1),),)
+verdacht ||| # verdacht
+volksverhetzung ||| ((('#',0,1),),(('volk',0,1),('volks',0,1),),(('verhetzung',0,1),),)
+inzwischen ||| # inzwischen
+rechtsanwalt ||| # rechtsanwalt
+einlassung ||| # einlassung
+behörde ||| # behörde
+geistliche ||| # geistliche
+gespräch ||| # gespräch
+ausschließlich ||| # ausschließlich
+auszustrahlen ||| # auszustrahlen
+veröffentlichung ||| # veröffentlichung
+deutschland ||| # deutschland
+exkommunikation ||| # exkommunikation
+hintergrund ||| # hintergrund
+juristischen ||| # juristischen
+volksverhetzungsparagrafen ||| ((('#',0,1),),(('volk',0,1),('volks',0,1),),(('verhetzung',0,1),('verhetzungs',0,1),),(('paragrafen',0,1),),)
+strafgesetzbuchs ||| # straf gesetz buchs
+leugnung ||| # leugnung
+strafverfolgung ||| # straf verfolgung
+hintertür ||| # hintertür
+entziehen ||| # entziehen
+inzwischen ||| # inzwischen
+einsicht ||| # einsicht
+ermittlungsakten ||| ((('#',0,1),),(('ermittlung',0,1),('ermittlungs',0,1),),(('akten',0,1),),)
+ruckdäschel ||| # ruckdäschel
+überlegen ||| # überlegen
+schwedischen ||| # schwedischen
+journalisten ||| # journalisten
+hintergründen ||| # hintergründen
+absprachen ||| # absprachen
+vorfeld ||| # vorfeld
+oberstaatsanwalt ||| ((('#',0,1),),(('ober',0,1),),(('staat',0,1),('staats',0,1),('staatsanwalt',0,2),),(('anwalt',0,1),),)
+mendelssohn ||| # mendelssohn
+bartholdy ||| # bartholdy
+entstammte ||| # entstammte
+angesehenen ||| # angesehenen
+wohlhabenden ||| # wohlhabenden
+bürgerlichen ||| # bürgerlichen
+jüdischen ||| # jüdischen
+familie ||| # familie
+väterlicherseits ||| # väterlicherseits
+bedeutenden ||| # bedeutenden
+philosophen ||| # philosophen
+abraham ||| # abraham
+bankkaufmannslehre ||| ((('#',0,1),),(('bank',0,1),),(('kaufmanns',0,1),('kaufmann',0,1),),(('lehre',0,1),),)
+kompagnon ||| # kompagnon
+mutter ||| # mutter
+salomon ||| # salomon
+fabrikantenfamilie ||| # fabrikanten familie
+schwester ||| # schwester
+hensel ||| # hensel
+geschwister ||| # geschwister
+rebecca ||| # rebecca
+mathematiker ||| # mathematiker
+dirichlet ||| # dirichlet
+kinder ||| # kinder
+pfarrer ||| # pfarrer
+reformierten ||| # reformierten
+gemeinde ||| # gemeinde
+berliner ||| # berliner
+jerusalems ||| # jerusalems
+haustaufe ||| # haus taufe
+protestantisch ||| # protestantisch
+gelegenheit ||| # gelegenheit
+taufnamen ||| # tauf namen
+ludwig ||| # ludwig
+darüber ||| # darüber
+familiennamen ||| ((('#',0,1),),(('familie',0,1),('familien',0,1),),(('namen',0,1),),)
+christliche ||| # christliche
+beigefügt ||| # beigefügt
+vorbesitzers ||| # vorbesitzers
+gartens ||| # gartens
+abraham ||| # abraham
+mendelssohn ||| # mendelssohn
+konvertierten ||| # konvertierten
+christentum ||| # christentum
+kindheit ||| # kindheit
+französischen ||| # französischen
+besetzung ||| # besetzung
+familie ||| # familie
+verwitwete ||| # verwitwete
+großmutter ||| ((('#',0,1),),(('groß',0,1),('großmutter',0,2),),(('mutter',0,1),),)
+musikunterricht ||| # musik unterricht
+schülerin ||| # schülerin
+philipp ||| # philipp
+kirnbergers ||| # kirnbergers
+unmittelbaren ||| # unmittelbaren
+großtante ||| # groß tante
+tochter ||| # tochter
+finanzmanns ||| # finanzmanns
+daniel ||| # daniel
+preußischer ||| # preußischer
+friedrich ||| # friedrich
+wilhelm ||| # wilhelm
+naturalisationspatent ||| ((('#',0,1),),(('naturalisation',0,1),('naturalisations',0,1),),(('patent',0,1),),)
+vermittelte ||| # vermittelte
+tradition ||| # tradition
+gönnerin ||| # gönnerin
+lehrerin ||| # lehrerin
+vorübergehenden ||| # vorübergehenden
+aufenthalts ||| # aufenthalts
+rückkehr ||| # rückkehr
+unterricht ||| # unterricht
+komposition ||| # komposition
+ausbildung ||| # ausbildung
+schriftstellers ||| # schriftstellers
+neunjähriger ||| # neun jähriger
+klavierpart ||| # klavier part
+klaviertrio ||| # klavier trio
+altsänger ||| # alt sänger
+akademie ||| # akademie
+kirchenmusik ||| ((('#',0,1),),(('kirchen',0,1),('kirche',0,1),),(('musik',0,1),),)
+außergewöhnlicher ||| # außergewöhnlicher
+schnelligkeit ||| # schnelligkeit
+klaviersonaten ||| # klavier sonaten
+klaviertrio ||| # klavier trio
+orgelstücke ||| # orgel stücke
+dreisätzige ||| # drei sätzige
+streichersinfonien ||| # streicher sinfonien
+motetten ||| # motetten
+singspiele ||| # singspiele
+soldatenliebschaft ||| # soldaten liebschaft
+singspiels ||| # singspiels
+komödianten ||| # komödianten
+freundschaft ||| # freundschaft
+barack ||| # barack
+getappt ||| # getappt
+anstehenden ||| # anstehenden
+herkulesaufgaben ||| # herkules aufgaben
+zugleich ||| # zugleich
+blütenweiße ||| # blütenweiße
+westen ||| # westen
+regierungsgrundsätzen ||| ((('#',0,1),),(('regierung',0,1),('regierungs',0,1),),(('grundsätzen',0,1),),)
+genügen ||| # genügen
+problem ||| # problem
+fachlich ||| # fachlich
+ansteckenden ||| # ansteckenden
+krankheit ||| # krankheit
+washington ||| # washington
+befallen ||| # befallen
+symptome ||| # symptome
+verquickung ||| # verquickung
+öffentlichen ||| # öffentlichen
+interessen ||| # interessen
+lobbyistenumtriebe ||| # lobbyisten umtriebe
+steuerzahlungsphobie ||| ((('#',0,1),),(('steuer',0,1),),(('zahlung',0,1),('zahlungs',0,1),),(('phobie',0,1),),)
+eigentlich ||| # eigentlich
+ausgezogen ||| # ausgezogen
+krankheit ||| # krankheit
+auszurotten ||| # auszurotten
+probleme ||| # probleme
+gewaltig ||| # gewaltig
+problembewältiger ||| # problem bewältiger
+verzichten ||| # verzichten
+ausnahmen ||| # ausnahmen
+nachsichtig ||| # nachsichtig
+nachlässig ||| # nachlässig
+nummer ||| # nummer
+verteidigungsministerium ||| ((('#',0,1),),(('verteidigung',0,1),('verteidigungs',0,1),),(('ministerium',0,1),),)
+fachmann ||| # fachmann
+rüstungslobbyist ||| ((('#',0,1),),(('rüstung',0,1),('rüstungs',0,1),),(('lobbyist',0,1),),)
+geithner ||| # geithner
+finanzminister ||| # finanz minister
+fiskus ||| # fiskus
+vorenthalten ||| # vorenthalten
+daschle ||| # daschle
+obamas ||| # obamas
+wunschkandidat ||| # wunsch kandidat
+gesundheitsministerium ||| ((('#',0,1),),(('gesundheit',0,1),('gesundheits',0,1),),(('ministerium',0,1),),)
+schuldete ||| # schuldete
+begleichung ||| # begleichung
+feststand ||| ((('#',0,1),),(('fest',0,1),('feststand',0,2),),(('stand',0,1),),)
+tatsächlich ||| # tatsächlich
+regierung ||| # regierung
+aufrücken ||| # aufrücken
+übergelaufen ||| ((('#',0,1),),(('über',0,1),('übergelaufen',0,2),),(('gelaufen',0,1),),)
+proteststurm ||| # protest sturm
+handtuch ||| ((('#',0,1),),(('hand',0,1),('handtuch',0,2),),(('tuch',0,1),),)
+konzentrationslager ||| ((('#',0,1),),(('konzentration',0,1),('konzentrations',0,1),),(('lager',0,1),),)
+entwicklungspolitik ||| ((('#',0,1),),(('entwicklung',0,1),('entwicklungs',0,1),),(('politik',0,1),),)
+zeitungsbericht ||| ((('#',0,1),),(('zeitung',0,1),('zeitungs',0,1),),(('bericht',0,1),),)
+managergehälter ||| # manager gehälter
+begrenzen ||| # begrenzen
+unternehmen ||| # unternehmen
+staatshilfen ||| ((('#',0,1),),(('staat',0,1),('staats',0,1),),(('hilfen',0,1),),)
+bescheidener ||| # bescheidener
+präsidenten ||| # präsidenten
+gehaltsobergrenze ||| ((('#',0,1),),(('gehalt',0,1),('gehalts',0,1),),(('ober',0,1),('obergrenze',0,2),),(('grenze',0,1),),)
+sonnensystems ||| # sonnen systems
+kreist ||| # kreist
+erdähnlicher ||| # erd ähnlicher
+planet ||| # planet
+exoplanet ||| ((('#',0,1),),(('exo',0,1),('exoplanet',0,2),),(('planet',0,1),),)
+durchbruch ||| ((('#',0,1),),(('durch',0,1),('durchbruch',0,2),),(('bruch',0,1),),)
+fremden ||| # fremden
+ulrich ||| # ulrich
+schnabel ||| # schnabel
+kulturgeschichte ||| # kultur geschichte
+milchwirtschaft ||| # milch wirtschaft
+menschen ||| # menschen
+geschäftsführung ||| ((('#',0,1),),(('geschäft',0,1),('geschäfts',0,1),),(('führung',0,1),),)
+zuständigen ||| # zuständigen
+amtsgericht ||| ((('#',0,1),),(('amt',0,1),('amts',0,1),),(('gericht',0,1),),)
+göppingen ||| # göppingen
+antrag ||| # antrag
+eröffnung ||| # eröffnung
+insolvenzverfahrens ||| # insolvenz verfahrens
+dieter ||| # dieter
+ausgewählte ||| # ausgewählte
+informationsangebote ||| ((('#',0,1),),(('information',0,1),('informations',0,1),),(('angebote',0,1),),)
+deutschen ||| # deutschen
+vereinfacht ||| # vereinfacht
+vokabelglossar ||| # vokabel glossar
+gewaltige ||| # gewaltige
+haushohe ||| # haushohe
+segler ||| # segler
+oktober ||| # oktober
+gibraltar ||| # gibraltar
+verschwand ||| # verschwand
+verfügte ||| # verfügte
+bronzekanonen ||| # bronze kanonen
+tonnen ||| # tonnen
+portugiesischer ||| # portugiesischer
+goldmünzen ||| # gold münzen
+kaufleute ||| # kauf leute
+schätzungen ||| # schätzungen
+vergangenen ||| # vergangenen
+millionen ||| # millionen
+schiffe ||| # schiffe
+meeresgrund ||| ((('#',0,1),),(('meer',0,1),('meeres',0,1),),(('grund',0,1),),)
+unterschiedliche ||| # unterschiedliche
+wasserfahrzeuge ||| # wasser fahrzeuge
+kriegsschiffe ||| ((('#',0,1),),(('krieg',0,1),('kriegs',0,1),),(('schiffe',0,1),),)
+passagierdampfer ||| # passagier dampfer
+handelsflotten ||| ((('#',0,1),),(('handel',0,1),('handels',0,1),),(('flotten',0,1),),)
+piratenboote ||| ((('#',0,1),),(('pirate',0,1),('piraten',0,1),),(('boote',0,1),),)
+tanker ||| # tanker
+großbritannien ||| # groß britannien
+ältesten ||| # ältesten
+seefahrernationen ||| ((('#',0,1),),(('see',0,1),('seefahrer',0,2),),(('fahrer',0,1),),(('nationen',0,1),),)
+auffassung ||| # auffassung
+marinehistoriker ||| # marine historiker
+irgendein ||| # irgendein
+anderes ||| # anderes
+allein ||| # allein
+havarierten ||| # havarierten
+registrierte ||| # registrierte
+schiffe ||| # schiffe
+küstennähe ||| ((('#',0,1),),(('küste',0,1),('küsten',0,1),),(('nähe',0,1),),)
+ortung ||| # ortung
+victory ||| # victory
+amerikanisches ||| # amerikanisches
+bergungsunternehmen ||| ((('#',0,1),),(('bergung',0,1),('bergungs',0,1),),(('unternehmen',0,1),),)
+wichtigsten ||| # wichtigsten
+meeresfunde ||| ((('#',0,1),),(('meer',0,1),('meeres',0,1),),(('funde',0,1),),)
+geschichte ||| # geschichte
+entdeckern ||| # entdeckern
+historisches ||| # historisches
+kriegsboot ||| ((('#',0,1),),(('krieg',0,1),('kriegs',0,1),),(('boot',0,1),),)
+jahrhundert ||| # jahrhundert
+tausend ||| # tausend
+untergegangenen ||| ((('#',0,1),),(('unter',0,1),('untergegangenen',0,2),),(('gegangenen',0,1),),)
+schiffen ||| # schiffen
+kostbarsten ||| # kostbarsten
+schätzen ||| # schätzen
+entdeckung ||| # entdeckung
+warten ||| # warten
+tauchjagd ||| # tauch jagd
+Überreste ||| # Überreste
+längst ||| # längst
+vergangener ||| # vergangener
+epochen ||| # epochen
+länder ||| # länder
+streiten ||| # streiten
+schiffsfriedhöfe ||| ((('#',0,1),),(('schiff',0,1),('schiffs',0,1),),(('friedhöfe',0,1),),)
+tauchjagd ||| # tauch jagd
+schatzjäger ||| # schatz jäger
+moderne ||| # moderne
+technik ||| # technik
+jahrhundertealte ||| # jahrhunderte alte
+wracks ||| # wracks
+geheimnisse ||| # geheimnisse
+besitzrechte ||| # besitz rechte
+wahrscheinlichkeit ||| # wahrscheinlichkeit
+minimaltemperatur ||| # minimal temperatur
+winterhalbjahr ||| ((('#',0,1),),(('winter',0,1),),(('halb',0,1),('halbjahr',0,2),),(('jahr',0,1),),)
+celsius ||| # celsius
+durchschnittliche ||| # durchschnittliche
+sommerhalbjahr ||| ((('#',0,1),),(('sommer',0,1),),(('halb',0,1),('halbjahr',0,2),),(('jahr',0,1),),)
+maximaltemperatur ||| # maximal temperatur
+kreuzungsversuche ||| ((('#',0,1),),(('kreuzung',0,1),('kreuzungs',0,1),),(('versuche',0,1),),)
+erbsenpflanzen ||| ((('#',0,1),),(('erbsen',0,1),('erbse',0,1),),(('pflanzen',0,1),),)
+klostergarten ||| # kloster garten
+befruchtungen ||| # befruchtungen
+zehntausende ||| # zehn tausende
+pflanzenhybriden ||| ((('#',0,1),),(('pflanze',0,1),('pflanzen',0,1),),(('hybriden',0,1),),)
+fleißaufgabe ||| ((('#',0,1),),(('fleiß',0,1),('fleißaufgabe',0,2),),(('aufgabe',0,1),),)
+ungewöhnliche ||| # ungewöhnliche
+hartnäckigkeit ||| # hartnäckigkeit
+naturforschers ||| # natur forschers
+innenminister ||| # innen minister
+verbreitete ||| # verbreitete
+falschinformationen ||| # falsch informationen
+analysen ||| # analysen
+hintergründe ||| # hintergründe
+menschen ||| # menschen
+gekostet ||| # gekostet
+hunderte ||| # hunderte
+wurden ||| # wurden
+verletzt ||| # verletzt
+containerschiff ||| # container schiff
+unfall ||| # unfall
+umweltdesaster ||| # umwelt desaster
+australien ||| # australien
+größer ||| # größer
+bisher ||| # bisher
+befürchtet ||| # befürchtet
+containerschiff ||| # container schiff
+unfall ||| # unfall
+australien ||| # australien
+deutlich ||| # deutlich
+schweröl ||| # schweröl
+zunächst ||| # zunächst
+angenommen ||| # angenommen
+freitag ||| # freitag
+schwappte ||| # schwappte
+schwarze ||| # schwarze
+flüssigkeit ||| # flüssigkeit
+strände ||| # strände
+kilometern ||| # kilometern
+kapitän ||| # kapitän
+langen ||| # langen
+pacific ||| # pacific
+adventurer ||| # adventurer
+hongkong ||| # hong kong
+verlust ||| # verlust
+zunächst ||| # zunächst
+tonnen ||| # tonnen
+angegeben ||| # angegeben
+regierungschef ||| ((('#',0,1),),(('regierung',0,1),('regierungs',0,1),),(('chef',0,1),),)
+queensland ||| # queensland
+samstag ||| # samstag
+kapitän ||| # kapitän
+vortag ||| # vortag
+vertuschung ||| # vertuschung
+vorgeworfen ||| # vorgeworfen
+mittwoch ||| # mittwoch
+containerschiff ||| # container schiff
+naturreservate ||| # natur reservate
+touristenstrände ||| # touristen strände
+ostküste ||| # ost küste
+nördlich ||| # nördlich
+brisbane ||| # brisbane
+bestechungsversuch ||| ((('#',0,1),),(('bestechungs',0,1),('bestechung',0,1),),(('versuch',0,1),),)
+campingkocher ||| # camping kocher
+später ||| # später
+ermöglichte ||| # ermöglichte
+verstärkte ||| # verstärkte
+integration ||| # integration
+funktechnik ||| # funk technik
+mobiltelefone ||| # mobil telefone
+aktenkoffers ||| ((('#',0,1),),(('akten',0,1),('aktenkoffers',0,2),),(('koffers',0,1),),)
+vorstufe ||| # vorstufe
+bedrohlich ||| # bedrohlich
+anstieg ||| # anstieg
+kohlendioxids ||| ((('#',0,1),),(('kohle',0,1),('kohlen',0,1),),(('dioxids',0,1),),)
+computermodelle ||| # computer modelle
+überhaupt ||| # überhaupt
+schützen ||| # schützen
+welchem ||| # welchem
+climategate ||| ((('#',0,1),),(('climate',0,1),('climategate',0,2),),(('gate',0,1),),)
+genannte ||| # genannte
+skandal ||| # skandal
+britische ||| # britische
+forschungsinstitut ||| ((('#',0,1),),(('forschung',0,1),('forschungs',0,1),),(('institut',0,1),),)
+climate ||| # climate
+research ||| # research
+folgenschwerste ||| ((('#',0,1),),(('folgenschwerste',0,2),('folgen',0,1),('folge',0,1),),(('schwerste',0,1),),)
+wissenschaftsdebatte ||| ((('#',0,1),),(('wissenschaft',0,1),('wissenschafts',0,1),),(('debatte',0,1),),)
+unserer ||| # unserer
+erneut ||| # erneut
+computerhacker ||| # computer hacker
+hatten ||| # hatten
+instituts ||| # instituts
+gestohlen ||| # gestohlen
+veröffentlicht ||| # veröffentlicht
+forscher ||| # forscher
+manipulierten ||| # manipulierten
+prognose ||| # prognose
+baldigen ||| # baldigen
+erwärmung ||| # erwärmung
+passten ||| # passten
+andersdenkende ||| # anders denkende
+wissenschaftler ||| # wissenschaftler
+wurden ||| # wurden
+gezielt ||| # gezielt
+diffamiert ||| # diffamiert
+wichtigsten ||| # wichtigsten
+datenlieferanten ||| # daten lieferanten
+weltklimarats ||| # welt klima rats
+wesentlichen ||| # wesentlichen
+fraktionen ||| # fraktionen
+debatte ||| # debatte
+herrschende ||| # herrschende
+schule ||| # schule
+vertreten ||| # vertreten
+repräsentiert ||| # repräsentiert
+mehrheit ||| # mehrheit
+wissenschaftler ||| # wissenschaftler
+führender ||| # führender
+stelle ||| # stelle
+stehen ||| # stehen
+forscher ||| # forscher
+klimamodelle ||| # klimamodelle
+entwickeln ||| # entwickeln
+computersimulationen ||| # computer simulationen
+künftige ||| # künftige
+errechnen ||| # errechnen
+sollen ||| # sollen
+hauptverantwortlichen ||| # haupt verantwortlichen
+prognostizierte ||| # prognostizierte
+erwärmung ||| # erwärmung
+menschen ||| # menschen
+zusätzlich ||| # zusätzlich
+natürlichen ||| # natürlichen
+geschehen ||| # geschehen
+verursachte ||| # verursachte
+ermittelt ||| # ermittelt
+spatenstich ||| # spaten stich
+teuersten ||| # teuersten
+kirchenneubau ||| # kirche neu bau
+ostdeutschlands ||| # ost deutschlands
+erfolgen ||| # erfolgen
diff --git a/compound-split/de/large_dict.de.gz b/compound-split/de/large_dict.de.gz
new file mode 100644
index 00000000..9af2c447
--- /dev/null
+++ b/compound-split/de/large_dict.de.gz
Binary files differ
diff --git a/compound-split/de/test b/compound-split/de/test
new file mode 100644
index 00000000..8dac76cd
--- /dev/null
+++ b/compound-split/de/test
@@ -0,0 +1,302 @@
+aktiengesellschaft
+aktiengesellschaft
+wiederaufnahme
+tonbandaufnahme
+staatskrise
+staatskrise
+madagaskars
+präsident
+bittet
+schlagworte
+demonstration
+putsch
+machtkampf
+zwischen
+opposition
+regierungspartei
+regierungspartei
+spitzt
+afrikanischen
+botschaft
+befürchtet
+bürgerkrieg
+mitglieder
+oppositionspartei
+oppositionspartei
+demonstrieren
+putsch
+madagaskars
+präsidenten
+ravalomanana
+mitglieder
+oppositionspartei
+oppositionspartei
+demonstrieren
+putsch
+madagaskars
+präsidenten
+ravalomanana
+bedrängte
+präsident
+wandte
+öffentlichen
+hilferuf
+anhänger
+forderte
+regierungssitz
+regierungssitz
+schützen
+mitglieder
+präsidentengarde
+präsidentengarde
+unbestätigten
+medienberichten
+medienberichten
+begonnen
+posten
+verlassen
+augenzeugen
+augenzeugen
+berichteten
+gepanzerte
+fahrzeuge
+außenbezirken
+hauptstadt
+hauptstadt
+antananarivo
+botschafter
+marquardt
+nationalen
+fernsehen
+erklärt
+steuere
+bürgerkrieg
+botschaft
+familien
+mitarbeiter
+unbedingt
+benötigt
+werden
+bürger
+verlassen
+landes
+aufgefordert
+deutsche
+botschaft
+dagegen
+wollte
+absprache
+anderen
+europäischen
+vertretungen
+zunächst
+ausreise
+empfehlung
+regierung
+angeschlagenen
+staatspräsidenten
+staatspräsidenten
+ravalomanana
+demokratiebewegung
+selbst
+ernannten
+präsidenten
+übergangsregierung
+übergangsregierung
+rajoelina
+gegenüber
+wochen
+andauernde
+erbitterte
+machtkampf
+menschen
+gekostet
+hunderte
+wurden
+verletzt
+modernisierung
+atomwaffen
+umbauten
+marine
+russlands
+präsident
+medwedew
+aufrüstung
+begründung
+versuche
+präsenz
+grenzen
+landes
+verstärken
+anzeige
+moskau
+dmitrij
+medwedew
+begründet
+bebaren
+russischen
+streitkräfte
+sollten
+massiv
+gestärkt
+atomwaffenarsenal
+atomwaffenarsenal
+modernisiert
+werden
+westliche
+militärbündnis
+versuche
+präsenz
+grenzen
+auszubauen
+präsident
+deshalb
+aufrüstung
+marine
+umfang
+beginne
+umfassende
+umrüstung
+heeres
+flotte
+ernstes
+konfliktpotential
+infrastruktur
+kampfkraft
+streitkräfte
+strategischen
+atomwaffen
+internationalen
+terrorismus
+gefechtsbereitschaft
+gefechtsbereitschaft
+strategischen
+atomwaffen
+militärs
+aktuellen
+haushaltsprobleme
+haushaltsprobleme
+auswirkungen
+regierung
+streitkräfteetat
+infolge
+finanzkrise
+zusammengestrichen
+zusammengestrichen
+weitere
+kürzungen
+ausgeschlossen
+medwedews
+vorgänger
+wladimir
+wiederholt
+modernisierung
+waffenarsenals
+verkündet
+umsetzung
+ankündigungen
+großteil
+atomwaffen
+sowjetzeiten
+stimmung
+streitkräften
+rahmen
+reform
+offizierkorps
+verkleinert
+werden
+trifolium
+umfassende
+pflanzengattung
+pflanzengattung
+unterfamilie
+schmetterlingsblütler
+schmetterlingsblütler
+faboideae
+pflanzenfamilie
+pflanzenfamilie
+hülsenfrüchtler
+hülsenfrüchtler
+fabaceae
+gezählt
+sprachgebrauch
+allerdings
+häufig
+gattung
+bezeichnet
+sondern
+nahverwandten
+gattungen
+schneckenklee
+schneckenklee
+medicago
+steinklee
+melilotus
+taxonomisch
+entfernten
+gattung
+sauerklee
+oxalis
+charakteristische
+merkmale
+gattung
+dreifiedrige
+blätter
+vielblütige
+kopfige
+blütenstände
+blütenstände
+kontinenten
+ausnahme
+australiens
+antarktikas
+natürlich
+verbreitet
+australien
+wurden
+verschiedene
+kleearten
+menschen
+eingeführt
+landwirtschaft
+werden
+verschiedene
+kleearten
+futterpflanzen
+verwendet
+kleeanbau
+europa
+nordamerika
+ökonomischer
+bedeutung
+europa
+jahrhundert
+christus
+angebaut
+fähigkeit
+symbiose
+knöllchenbakterien
+rhizobiaceae
+wurzeln
+stickstoff
+verbesserung
+bodenfruchtbarkeit
+bedeutend
+kleeblatt
+symbolik
+vieler
+kulturen
+eingang
+repräsentiert
+dreiheit
+beispiel
+christentum
+dreifaltigkeit
+weiterhin
+sommer
+symbolisiert
+vierblättrige
+kleeblatt
+glücksbringer
+glücksbringer
+XX
diff --git a/compound-split/de/test.ref b/compound-split/de/test.ref
new file mode 100644
index 00000000..4b3c7abc
--- /dev/null
+++ b/compound-split/de/test.ref
@@ -0,0 +1,302 @@
+aktien gesellschaft
+aktie gesellschaft
+wiederaufnahme
+tonband aufnahme
+staats krise
+staat krise
+madagaskars
+präsident
+bittet
+schlagworte
+demonstration
+putsch
+macht kampf
+zwischen
+opposition
+regierungs partei
+regierung partei
+spitzt
+afrikanischen
+botschaft
+befürchtet
+bürger krieg
+mitglieder
+oppositions partei
+opposition partei
+demonstrieren
+putsch
+madagaskars
+präsidenten
+ravalomanana
+mitglieder
+oppositions partei
+opposition partei
+demonstrieren
+putsch
+madagaskars
+präsidenten
+ravalomanana
+bedrängte
+präsident
+wandte
+öffentlichen
+hilfe ruf
+anhänger
+forderte
+regierungs sitz
+regierung sitz
+schützen
+mitglieder
+präsidenten garde
+präsidenten garde
+unbestätigten
+medien berichten
+medie berichten
+begonnen
+posten
+verlassen
+augen zeugen
+auge zeugen
+berichteten
+gepanzerte
+fahrzeuge
+außen bezirken
+haupt stadt
+hauptstadt
+antananarivo
+botschafter
+marquardt
+nationalen
+fernsehen
+erklärt
+steuere
+bürger krieg
+botschaft
+familien
+mitarbeiter
+unbedingt
+benötigt
+werden
+bürger
+verlassen
+landes
+aufgefordert
+deutsche
+botschaft
+dagegen
+wollte
+absprache
+anderen
+europäischen
+vertretungen
+zunächst
+ausreise
+empfehlung
+regierung
+angeschlagenen
+staats präsidenten
+staat präsidenten
+ravalomanana
+demokratie bewegung
+selbst
+ernannten
+präsidenten
+übergangs regierung
+übergang regierung
+rajoelina
+gegenüber
+wochen
+andauernde
+erbitterte
+macht kampf
+menschen
+gekostet
+hunderte
+wurden
+verletzt
+modernisierung
+atom waffen
+umbauten
+marine
+russlands
+präsident
+medwedew
+aufrüstung
+begründung
+versuche
+präsenz
+grenzen
+landes
+verstärken
+anzeige
+moskau
+dmitrij
+medwedew
+begründet
+bebaren
+russischen
+streit kräfte
+sollten
+massiv
+gestärkt
+atom waffen arsenal
+atomwaffen arsenal
+modernisiert
+werden
+westliche
+militärbündnis
+versuche
+präsenz
+grenzen
+auszubauen
+präsident
+deshalb
+aufrüstung
+marine
+umfang
+beginne
+umfassende
+umrüstung
+heeres
+flotte
+ernstes
+konflikt potential
+infrastruktur
+kampf kraft
+streit kräfte
+strategischen
+atom waffen
+internationalen
+terrorismus
+gefechts bereitschaft
+gefecht bereitschaft
+strategischen
+atomwaffen
+militärs
+aktuellen
+haushalts probleme
+haushalt probleme
+auswirkungen
+regierung
+streit kräfte etat
+infolge
+finanz krise
+zusammengestrichen
+zusammen gestrichen
+weitere
+kürzungen
+ausgeschlossen
+medwedews
+vorgänger
+wladimir
+wiederholt
+modernisierung
+waffen arsenals
+verkündet
+umsetzung
+ankündigungen
+groß teil
+atom waffen
+sowjet zeiten
+stimmung
+streit kräften
+rahmen
+reform
+offizier korps
+verkleinert
+werden
+trifolium
+umfassende
+pflanzen gattung
+pflanze gattung
+unterfamilie
+schmetterlings blütler
+schmetterling blütler
+faboideae
+pflanzen familie
+pflanze familie
+hülsen früchtler
+hülse früchtler
+fabaceae
+gezählt
+sprach gebrauch
+allerdings
+häufig
+gattung
+bezeichnet
+sondern
+nah verwandten
+gattungen
+schnecken klee
+schnecke klee
+medicago
+stein klee
+melilotus
+taxonomisch
+entfernten
+gattung
+sauer klee
+oxalis
+charakteristische
+merkmale
+gattung
+drei fiedrige
+blätter
+viel blütige
+kopfige
+blüten stände
+blüte stände
+kontinenten
+ausnahme
+australiens
+antarktikas
+natürlich
+verbreitet
+australien
+wurden
+verschiedene
+klee arten
+menschen
+eingeführt
+landwirtschaft
+werden
+verschiedene
+klee arten
+futter pflanzen
+verwendet
+klee anbau
+europa
+nord amerika
+ökonomischer
+bedeutung
+europa
+jahrhundert
+christus
+angebaut
+fähigkeit
+symbiose
+knöllchen bakterien
+rhizobiaceae
+wurzeln
+stickstoff
+verbesserung
+boden fruchtbarkeit
+bedeutend
+klee blatt
+symbolik
+vieler
+kulturen
+eingang
+repräsentiert
+dreiheit
+beispiel
+christentum
+dreifaltigkeit
+weiterhin
+sommer
+symbolisiert
+vier blättrige
+klee blatt
+glücks bringer
+glück bringer
+XX
diff --git a/compound-split/de/weights.ptinit b/compound-split/de/weights.ptinit
new file mode 100644
index 00000000..eaaa3899
--- /dev/null
+++ b/compound-split/de/weights.ptinit
@@ -0,0 +1,17 @@
+LettersSq 0
+LettersSqrt 0
+RevCharLM 0
+FugS 0
+FugN 0
+WordCount 0
+InDict 0
+Short 0
+Long 0
+OOV 0
+ShortRange 0
+HighFreq 0
+MedFreq 0
+Freq 0
+Bad 0
+FreqLen1 0
+FreqLen2 0
diff --git a/compound-split/de/weights.trained b/compound-split/de/weights.trained
new file mode 100644
index 00000000..359e5cc7
--- /dev/null
+++ b/compound-split/de/weights.trained
@@ -0,0 +1,17 @@
+LettersSq -0.037643555390228831
+LettersSqrt 0.58198736272513085
+RevCharLM 0.45802141843469085
+FugS 0.26570690067173086
+FugN -0.70672252122442492
+WordCount 0.33774557030334018
+InDict 0.23339787529651213
+Short 0.60862824917301594
+Long -0.58675406875713121
+OOV 0.10434769500682411
+ShortRange -1.0221040223076261
+HighFreq -2.9803896632623825
+MedFreq 0.18811013582723696
+Freq -0.26933190242976746
+Bad -2.3217842031714113
+FreqLen1 -0.28996794292058575
+FreqLen2 -0.21944133928835977
diff --git a/compound-split/examples.de/infile.txt b/compound-split/examples.de/infile.txt
new file mode 100644
index 00000000..461b79cc
--- /dev/null
+++ b/compound-split/examples.de/infile.txt
@@ -0,0 +1,5 @@
+In China rühren über 70 Prozent der Emissionen von der Industrie her .
+Allein die Stahlproduktion verschlingt 18 Prozent der Energieressourcen des Landes , also beinahe doppelt so viel wie die chinesischen Privathaushalte .
+Die chemische Industrie verbraucht mehr Energie als der gesamte private Transport und die Aluminiumproduktion liefert sich bezüglich des Stromverbrauchs ein Wettrennen mit dem gewerblichen Sektor .
+Im Hinblick auf die Ausarbeitung eines Klimaabkommens ist dieses Ungleichgewicht eine gute Nachricht .
+Dadurch empfiehlt sich nämlich ein Rahmenwerk zur Senkung der Emissionen , in dem einerseits die Entwicklungserfordernisse der chinesischen Haushalte respektiert und andererseits die Bedenken amerikanischer Firmen hinsichtlich ihrer Wettbewerbsfähigkeit berücksichtigt werden . Überdies soll dem Prinzip der " gemeinsamen , aber differenzierten Verantwortlichkeit " in internationalen Verhandlungen Rechnung getragen werden .
diff --git a/compound-split/examples.de/out.plf b/compound-split/examples.de/out.plf
new file mode 100644
index 00000000..92759243
--- /dev/null
+++ b/compound-split/examples.de/out.plf
@@ -0,0 +1,5 @@
+((('in',0,1),),(('china',0,1),),(('rühren',-6.16944,1),),(('über',0,1),),(('70',0,1),),(('prozent',-6.68217,1),),(('der',0,1),),(('emissionen',-7.89028,1),),(('von',0,1),),(('der',0,1),),(('industrie',-6.09364,1),),(('her',0,1),),(('.',0,1),),)
+((('allein',-3.91495,1),),(('die',0,1),),(('stahl',-4.84482,1),('stahlproduktion',-14.9301,2),),(('produktion',-6.91489,1),),(('verschlingt',-9.2711,1),),(('18',0,1),),(('prozent',-6.68217,1),),(('der',0,1),),(('energie',-4.82424,1),('energieressourcen',-17.0181,2),),(('ressourcen',-8.13465,1),),(('des',0,1),),(('landes',-4.28789,1),),((',',0,1),),(('also',0,1),),(('beinahe',-5.37566,1),),(('doppelt',-5.45983,1),),(('so',0,1),),(('viel',0,1),),(('wie',0,1),),(('die',0,1),),(('chinesischen',-8.37461,1),),(('privat',-5.0423,1),('privathaus',-8.79658,2),('privathaushalte',-14.0841,3),),(('haus',-3.8485,1),('haushalte',-7.03172,2),),(('halte',-4.22479,1),),(('.',0,1),),)
+((('die',0,1),),(('chemische',-7.36213,1),),(('industrie',-6.09364,1),),(('verbraucht',-7.8929,1),),(('mehr',0,1),),(('energie',-4.82424,1),),(('als',0,1),),(('der',0,1),),(('gesamte',-4.95776,1),),(('private',-4.87323,1),),(('transport',-7.00338,1),),(('und',0,1),),(('die',0,1),),(('aluminium',-7.4594,1),('aluminiumproduktion',-20.756,2),),(('produktion',-6.91489,1),),(('liefert',-5.34918,1),),(('sich',0,1),),(('bezüglich',-6.61055,1),),(('des',0,1),),(('strom',-4.44409,1),('stromverbrauchs',-14.7863,2),),(('verbrauchs',-8.46139,1),),(('ein',0,1),),(('wett',-4.55825,1),('wettrennen',-8.76598,2),),(('rennen',-4.21027,1),),(('mit',0,1),),(('dem',0,1),),(('gewerblichen',-10.6038,1),),(('sektor',-5.04152,1),),(('.',0,1),),)
+((('im',0,1),),(('hin',-3.51603,1),('hinblick',-5.50886,2),),(('blick',-3.81345,1),),(('auf',0,1),),(('die',0,1),),(('ausarbeitung',-10.6772,1),),(('eines',0,1),),(('klima',-4.48285,1),('klimaabkommens',-14.3163,2),),(('abkommens',-7.0171,1),),(('ist',0,1),),(('dieses',-3.51817,1),),(('ungleich',-6.61259,1),('ungleichgewicht',-13.88,2),),(('gewicht',-5.37248,1),),(('eine',0,1),),(('gute',0,1),),(('nachricht',-6.48686,1),),(('.',0,1),),)
+((('dadurch',-4.52086,1),),(('empfiehlt',-6.75555,1),),(('sich',0,1),),(('nämlich',-4.37088,1),),(('ein',0,1),),(('rahmen',-4.04804,1),('rahmenwerk',-9.20648,2),),(('werk',-4.46254,1),),(('zur',0,1),),(('senkung',-5.67394,1),),(('der',0,1),),(('emissionen',-7.89028,1),),((',',0,1),),(('in',0,1),),(('dem',0,1),),(('einerseits',-7.42024,1),),(('die',0,1),),(('entwicklung',-8.19109,1),('entwicklungserfordernisse',-31.9035,2),),(('erfordernisse',-11.7189,1),),(('der',0,1),),(('chinesischen',-8.37461,1),),(('haus',-3.8485,1),('haushalte',-7.03172,2),),(('halte',-4.22479,1),),(('respektiert',-8.67605,1),),(('und',0,1),),(('andererseits',-9.42978,1),),(('die',0,1),),(('bedenken',-5.78487,1),),(('amerikanischer',-11.8507,1),),(('firmen',-4.37449,1),),(('hin',-3.53318,1),('hinsichtlich',-9.38401,2),),(('sichtlich',-7.2395,1),),(('ihrer',0,1),),(('wettbewerb',-7.19219,1),('wettbewerbs',-9.15771,1),('wettbewerbsfähigkeit',-19.6855,2),),(('fähigkeit',-7.11358,1),),(('berücksichtigt',-11.4689,1),),(('werden',-5.82189,1),),(('.',0,1),),(('überdies',-6.25032,1),),(('soll',0,1),),(('dem',0,1),),(('prinzip',-5.33438,1),),(('der',0,1),),(('"',0,1),),(('gemeinsamen',-8.11729,1),),((',',0,1),),(('aber',0,1),),(('differenzierten',-14.2111,1),),(('verantwortlichkeit',-17.6521,1),),(('"',0,1),),(('in',0,1),),(('inter',-4.9797,1),('internationalen',-11.8897,2),),(('nationalen',-6.82407,1),),(('verhandlungen',-9.88336,1),),(('rechnung',-5.95782,1),),(('getragen',-6.11886,1),),(('werden',-5.82189,1),),(('.',0,1),),)
diff --git a/compound-split/examples.de/out.txt b/compound-split/examples.de/out.txt
new file mode 100644
index 00000000..436fc8e9
--- /dev/null
+++ b/compound-split/examples.de/out.txt
@@ -0,0 +1,5 @@
+in china rühren über 70 prozent der emissionen von der industrie her .
+allein die stahl produktion verschlingt 18 prozent der energie ressourcen des landes , also beinahe doppelt so viel wie die chinesischen privat haushalte .
+die chemische industrie verbraucht mehr energie als der gesamte private transport und die aluminium produktion liefert sich bezüglich des strom verbrauchs ein wettrennen mit dem gewerblichen sektor .
+im hinblick auf die ausarbeitung eines klima abkommens ist dieses ungleich gewicht eine gute nachricht .
+dadurch empfiehlt sich nämlich ein rahmen werk zur senkung der emissionen , in dem einerseits die entwicklung erfordernisse der chinesischen haushalte respektiert und andererseits die bedenken amerikanischer firmen hinsichtlich ihrer wettbewerb fähigkeit berücksichtigt werden . überdies soll dem prinzip der " gemeinsamen , aber differenzierten verantwortlichkeit " in inter nationalen verhandlungen rechnung getragen werden .
diff --git a/compound-split/hu/charlm.rev.5gm.hu.lm.gz b/compound-split/hu/charlm.rev.5gm.hu.lm.gz
new file mode 100644
index 00000000..64b0d171
--- /dev/null
+++ b/compound-split/hu/charlm.rev.5gm.hu.lm.gz
Binary files differ
diff --git a/compound-split/hu/large_dict.hu.gz b/compound-split/hu/large_dict.hu.gz
new file mode 100644
index 00000000..172832b2
--- /dev/null
+++ b/compound-split/hu/large_dict.hu.gz
Binary files differ
diff --git a/compound-split/lattice-stats.py b/compound-split/lattice-stats.py
new file mode 100755
index 00000000..8b6ea608
--- /dev/null
+++ b/compound-split/lattice-stats.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+
+import sys
+import optparse
+from heapq import heappush, heappop
+import math
+
+lc = 0
+maxdepth = -1
+total_depth = 0
+total_cols = 0
+total_paths = 0.0
+
+optparser = optparse.OptionParser()
+optparser.add_option("-k", "--k-best", dest="k", type='int', help="number of best paths", default=1)
+(opts,args) = optparser.parse_args()
+n = opts.k
+
+if len(args)==0: args=(sys.stdin)
+
+for fname in args:
+ if (type(fname) == type('')):
+ f = open(fname, "r")
+ else:
+ f = fname
+ lc = 0
+ nodes = 0
+ for line in f:
+ lc+=1
+ cn = eval(line)
+ if (len(cn[0]) == 0):
+ continue
+
+ paths = 1.0
+ for col in cn:
+ depth=len(col)
+ paths*=float(depth)
+ nodes += depth
+ total_depth += depth
+ total_cols += 1
+ total_paths+=paths
+ avg=float(total_depth)/float(lc)
+ print "averagePaths=%g" % (total_paths / float(lc))
+ print "averageNodes=%f" % (float(total_depth) / float(lc))
+ print "averageLen=%f" % (float(total_cols) / float(lc))
+ print "Nodes/Len=%f" % (float(total_depth)/float(total_cols))
diff --git a/src/cdec.cc b/src/cdec.cc
index f9634a7d..6185c79b 100644
--- a/src/cdec.cc
+++ b/src/cdec.cc
@@ -179,7 +179,8 @@ void DumpKBest(const int sent_id, const Hypergraph& forest, const int k, const b
const KBest::KBestDerivations<vector<WordID>, ESentenceTraversal, KBest::FilterUnique>::Derivation* d =
kbest.LazyKthBest(forest.nodes_.size() - 1, i);
if (!d) break;
- cout << sent_id << " ||| " << TD::GetString(d->yield) << " ||| " << d->feature_values << endl;
+ cout << sent_id << " ||| " << TD::GetString(d->yield) << " ||| "
+ << d->feature_values << " ||| " << log(d->score) << endl;
}
} else {
KBest::KBestDerivations<vector<WordID>, ESentenceTraversal> kbest(forest, k);
@@ -187,7 +188,8 @@ void DumpKBest(const int sent_id, const Hypergraph& forest, const int k, const b
const KBest::KBestDerivations<vector<WordID>, ESentenceTraversal>::Derivation* d =
kbest.LazyKthBest(forest.nodes_.size() - 1, i);
if (!d) break;
- cout << sent_id << " ||| " << TD::GetString(d->yield) << " ||| " << d->feature_values << endl;
+ cout << sent_id << " ||| " << TD::GetString(d->yield) << " ||| "
+ << d->feature_values << " ||| " << log(d->score) << endl;
}
}
}