summaryrefslogtreecommitdiff
path: root/word-aligner/makefiles/makefile.grammars
blob: c113688c15aa2273b7d5e796c0644c342b91bd70 (plain)
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
all: corpus.f-e.lex-grammar.gz corpus.e-f.lex-grammar.gz corpus.class.e corpus.class.f corpus.stemmed.f fstem.map corpus.stemmed.e estem.map corpus.f-e.sgml corpus.e-f.sgml

clean:
	$(RM) orthonorm-dict.* voc2class* corpus.class.* corpus.e-f corpus.f-e corpus.f-e.lex-grammar* *.model1 *voc corpus.e-f.lex-grammar* *stem* corpus.f-e.sgml freq* psg*

SUPPORT_DIR = $(SCRIPT_DIR)/support
GZIP = /usr/bin/gzip
ZCAT = zcat
EXTRACT_GRAMMAR = $(SUPPORT_DIR)/extract_grammar.pl
EXTRACT_VOCAB = $(SUPPORT_DIR)/extract_vocab.pl
GENERATE_PSG = $(SUPPORT_DIR)/generate_per_sentence_grammars.pl
ORTHONORM_E = $(SCRIPT_DIR)/ortho-norm/$(E_LANG).pl
ORTHONORM_F = $(SCRIPT_DIR)/ortho-norm/$(F_LANG).pl
STEM_F = $(SCRIPT_DIR)/stemmers/$(F_LANG).pl
STEM_E = $(SCRIPT_DIR)/stemmers/$(E_LANG).pl

CLASSIFY = $(SUPPORT_DIR)/classify.pl
MAKE_LEX_GRAMMAR = $(SUPPORT_DIR)/make_lex_grammar.pl
MODEL1 = $(TRAINING_DIR)/model1
MERGE_CORPUS = $(SUPPORT_DIR)/merge_corpus.pl

e.voc: corpus.e
	$(EXTRACT_VOCAB) < corpus.e > $@

f.voc: corpus.f
	$(EXTRACT_VOCAB) < corpus.f > $@

orthonorm-dict.e: corpus.e e.voc
	$(ORTHONORM_E) < e.voc > e.ortho-voc
	$(MERGE_CORPUS) e.voc e.ortho-voc > $@

orthonorm-dict.f: corpus.f f.voc
	$(ORTHONORM_F) < f.voc > f.ortho-voc
	$(MERGE_CORPUS) f.voc f.ortho-voc > $@

# this is just a "stem" map
estem.map: e.voc
	$(STEM_E) --vocab < e.voc > $@

fstem.map: f.voc
	$(STEM_F) --vocab < f.voc > $@

# corpus.stemmed.f can use context to do "stemming"
corpus.stemmed.f: corpus.f
	$(STEM_F) < corpus.f > $@

corpus.stemmed.e: corpus.e
	$(STEM_E) < corpus.e > $@

voc2class.e: corpus.e $(MKCLS)
	$(MKCLS) -c$(NCLASSES) -n10 -pcorpus.e -Vvoc2class.e opt

voc2class.f: corpus.f $(MKCLS)
	$(MKCLS) -c$(NCLASSES) -n10 -pcorpus.f -Vvoc2class.f opt

corpus.class.e: corpus.e voc2class.e $(CLASSIFY)
	$(CLASSIFY) voc2class.e corpus.e > $@

corpus.class.f: corpus.f voc2class.f $(CLASSIFY)
	$(CLASSIFY) voc2class.f corpus.f > $@

corpus.f-e: corpus.f corpus.e $(MERGE_CORPUS)
	$(MERGE_CORPUS) corpus.f corpus.e > $@

corpus.e-f: corpus.f corpus.e $(MERGE_CORPUS)
	$(MERGE_CORPUS) corpus.e corpus.f > $@

corpus.f-e.model1: corpus.f-e $(MODEL1)
	$(MODEL1) corpus.f-e > corpus.f-e.model1

corpus.e-f.model1: corpus.e-f $(MODEL1)
	$(MODEL1) corpus.e-f > corpus.e-f.model1

bidir.grammars: corpus.f-e corpus.f-e.model1 corpus.e-f.model1 orthonorm-dict.f orthonorm-dict.e voc2class.e voc2class.f $(GIZAALIGN) $(INVGIZAALIGN)
	$(RM) $@
	$(MAKE_LEX_GRAMMAR) corpus.f-e corpus.f-e.model1 corpus.e-f.model1 orthonorm-dict.f orthonorm-dict.e voc2class.e voc2class.f $(GIZAALIGN) $(INVGIZAALIGN) > bidir.grammars

corpus.f-e.lex-grammar.gz: bidir.grammars
	$(EXTRACT_GRAMMAR) 1 bidir.grammars | $(GZIP) -9 > corpus.f-e.lex-grammar.gz

corpus.e-f.lex-grammar.gz: bidir.grammars
	$(EXTRACT_GRAMMAR) 2 bidir.grammars | $(GZIP) -9 > corpus.e-f.lex-grammar.gz

corpus.f-e.sgml: f.voc corpus.f-e.lex-grammar.gz corpus.f-e
	$(GENERATE_PSG) f.voc corpus.f-e corpus.f-e.lex-grammar.gz freq_grammar.f-e.gz psg.f-e $@

corpus.e-f.sgml: e.voc corpus.e-f.lex-grammar.gz corpus.e-f
	$(GENERATE_PSG) e.voc corpus.e-f corpus.e-f.lex-grammar.gz freq_grammar.e-f.gz psg.e-f $@