-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathMakefile
331 lines (271 loc) · 8.93 KB
/
Makefile
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
#****************************************************************
#
# Makefile
#
# Yue Zhang
# Computing lab, Oxford. 2006.10 - 2008.2
#
#****************************************************************
# Makable targe systems include:
#
# === Chinese ===
# segmentor - Chinese word segmentor
# chinese.postagger - Chinese POS tagger (joint / single)
# chinese.depparser - Chinese dependency parser
#
# === English ===
# english.postagger - English POS tagger
# english.depparser - English dependency parser
#================================================================
#
# Configurations
#
#================================================================
# the generic tagger
TAGGER_IMPL = collins
# the generic depparser
DEPPARSER_IMPL = arceager
# the generic conparser
CONPARSER_IMPL = srnew
# choose between agenda, agendachart etc ## NO SPACE AFTER NAME ###
#
# agenda: the single agenda method - reproduce paper
# agendaplus: try to improve upon the decoding algorithm of agenda
# viterbi: dynamic programming
SEGMENTOR_IMPL = agenda
# Chinese postagger implementations
#
# joint taggers include the following implementations
# agendachart: combining agenda and chart, this is the best system - reproduce paper
#
# taggers on segmented sentences include the following implementations
# segmented: the unidirectional trigram tagger
CHINESE_TAGGER_IMPL = agenda
# Chinese dependency parser
#
# currently support eisner, covington, nivre, combined and joint implementations
CHINESE_DEPPARSER_IMPL = arceager
CHINESE_DEPPARSER_LABELED = true
CHINESE_DEPLABELER_IMPL = naive
# currently support sr implementations
CHINESE_CONPARSER_IMPL = acl13
CHINESE_CONPARSER_JOINT_OR_CASCADE = JOINT_CONPARSER
# currently support only agenda
ENGLISH_TAGGER_IMPL = collins
# currently support eisner, covington, nivre, combined implementations
ENGLISH_DEPPARSER_IMPL = arceager
ENGLISH_DEPPARSER_LABELED = true
ENGLISH_DEPLABELER_IMPL = naive
# currently support sr implementations
ENGLISH_CONPARSER_IMPL = muhua
# Spanish pos tagger
SPANISH_TAGGER_IMPL = collins
# Spanish dependency parser
SPANISH_DEPPARSER_IMPL = arceager
SPANISH_DEPPARSER_LABELED = true
SPANISH_DEPLABELER_IMPL = naive
# Spanish annotation. Supported: ES06_DEPENDENCIES, ES09_DEPENDENCIES
SPANISH_ANNOTATION = ES09_DEPENDENCIES
#no Spanish constituency parser at the moment
#================================================================
#
# Debug mode or the run mode (empty)
#
#================================================================
#DEBUG = -DDEBUG -g
DEBUG = -DNDEBUG
#================================================================
#
# directory configurations
#
#================================================================
BASE_DIR = .
include Makefile.common
#================================================================
#
# cross platform configurations
#
#================================================================
ifeq ($(OS),Windows_NT)
#use good old GNU mkdir instead of MSDOS mkdir on Windows
MKDIR=gmkdir -p
else
MKDIR=mkdir -p
endif
#================================================================
#
# compiler commands
#
#================================================================
INCLUDES = -I$(SRC_INCLUDES)
CXX = g++
CXXFLAGS = -w -W -O3 $(INCLUDES) $(DEBUG)
LD=$(CXX)
LDFLAGS =
#================================================================
#
# Shared objects
#
#================================================================
# the objects
LINGUISTICS_OBJECTS = $(OBJECT_DIR)/linguistics/lemma.o $(OBJECT_DIR)/linguistics/conll.o
LEARNING_OBJECTS = $(OBJECT_DIR)/learning/dbn.o
OBJECTS = $(OBJECT_DIR)/reader.o $(OBJECT_DIR)/writer.o $(OBJECT_DIR)/options.o $(LINGUISTICS_OBJECTS) $(LEARNING_OBJECTS)
$(OBJECT_DIR)/%.o: $(SRC_LIBS)/%.cpp $(SRC_INCLUDES)/%.h
$(MKDIR) $(OBJECT_DIR)
$(MKDIR) $(OBJECT_DIR)/linguistics
$(MKDIR) $(OBJECT_DIR)/learning
$(CXX) $(CXXFLAGS) -c $< -o $@
all: zpar
# the directories
$(OBJECT_DIR):
$(MKDIR) $(OBJECT_DIR)
$(DIST_DIR):
$(MKDIR) $(DIST_DIR)
# tagger
SRC_TAGGER = $(SRC_CHINESE)/tagger
DIST_TAGGER = $(DIST_DIR)/chinese.postagger
OBJECT_TAGGER = $(OBJECT_DIR)/chinese.postagger
$(DIST_TAGGER):
$(MKDIR) $(DIST_TAGGER)
$(OBJECT_TAGGER):
$(MKDIR) $(OBJECT_TAGGER)
SRC_ENGLISH_TAGGER = $(SRC_COMMON)/tagger
DIST_ENGLISH_TAGGER = $(DIST_DIR)/english.postagger
OBJECT_ENGLISH_TAGGER = $(OBJECT_DIR)/english.postagger
$(DIST_ENGLISH_TAGGER):
$(MKDIR) $(DIST_ENGLISH_TAGGER)
$(OBJECT_ENGLISH_TAGGER):
$(MKDIR) $(OBJECT_ENGLISH_TAGGER)
SRC_SPANISH_TAGGER = $(SRC_COMMON)/tagger
DIST_SPANISH_TAGGER = $(DIST_DIR)/spanish.postagger
OBJECT_SPANISH_TAGGER = $(OBJECT_DIR)/spanish.postagger
$(DIST_SPANISH_TAGGER):
$(MKDIR) $(DIST_SPANISH_TAGGER)
$(OBJECT_SPANISH_TAGGER):
$(MKDIR) $(OBJECT_SPANISH_TAGGER)
# depparser
SRC_COMMON_DEPPARSER = $(SRC_COMMON)/depparser
#ifeq ($(CHINESE_DEPPARSER_IMPL), joint)
# SRC_CHINESE_DEPPARSER = $(SRC_CHINESE)/depparser
#else
# SRC_CHINESE_DEPPARSER = $(SRC_COMMON_DEPPARSER)
#endif
SRC_CHINESE_DEPPARSER = $(SRC_COMMON_DEPPARSER)
DIST_DEPPARSER = $(DIST_DIR)/chinese.depparser
OBJECT_DEPPARSER = $(OBJECT_DIR)/chinese.depparser
DIST_ENGLISH_DEPPARSER = $(DIST_DIR)/english.depparser
OBJECT_ENGLISH_DEPPARSER = $(OBJECT_DIR)/english.depparser
DIST_SPANISH_DEPPARSER = $(DIST_DIR)/spanish.depparser
OBJECT_SPANISH_DEPPARSER = $(OBJECT_DIR)/spanish.depparser
# deplabeler
SRC_COMMON_DEPLABELER = $(SRC_COMMON)/deplabeler
SRC_CHINESE_DEPLABELER = $(SRC_COMMON_DEPLABELER)
DIST_DEPLABELER = $(DIST_DIR)/chinese.deplabeler
OBJECT_DEPLABELER = $(OBJECT_DIR)/chinese.deplabeler
SRC_ENGLISH_DEPLABELER = $(SRC_COMMON_DEPLABELER)
DIST_ENGLISH_DEPLABELER = $(DIST_DIR)/english.deplabeler
OBJECT_ENGLISH_DEPLABELER = $(OBJECT_DIR)/english.deplabeler
SRC_SPANISH_DEPLABELER = $(SRC_COMMON_DEPLABELER)
DIST_SPANISH_DEPLABELER = $(DIST_DIR)/spanish.deplabeler
OBJECT_SPANISH_DEPLABELER = $(OBJECT_DIR)/spanish.deplabeler
# conparser
SRC_COMMON_CONPARSER = $(SRC_COMMON)/conparser
SRC_CHINESE_CONPARSER = $(SRC_COMMON_CONPARSER)
ifeq ($(CHINESE_CONPARSER_IMPL), jcad)
SRC_CHINESE_CONPARSER = $(SRC_CHINESE)/conparser
else
ifeq ($(CHINESE_CONPARSER_IMPL), acl13)
SRC_CHINESE_CONPARSER = $(SRC_CHINESE)/conparser
else
SRC_CHINESE_CONPARSER = $(SRC_COMMON_CONPARSER)
endif
endif
SRC_ENGLISH_CONPARSER = $(SRC_COMMON_CONPARSER)
DIST_CONPARSER = $(DIST_DIR)/chinese.conparser
OBJECT_CONPARSER = $(OBJECT_DIR)/chinese.conparser
DIST_ENGLISH_CONPARSER = $(DIST_DIR)/english.conparser
OBJECT_ENGLISH_CONPARSER = $(OBJECT_DIR)/english.conparser
#----------------------------------------------------------------
#
# zpar general
#
#----------------------------------------------------------------
ifeq ($(CHINESE_CONPARSER_IMPL), jcad)
OBJ_CHINESE_CONSTITUENT = $(OBJECT_CONPARSER)/constituent.o $(OBJECT_CONPARSER)/jointconstituent.o
else
ifeq ($(CHINESE_CONPARSER_IMPL), acl13)
OBJ_CHINESE_CONSTITUENT = $(OBJECT_CONPARSER)/constituent.o $(OBJECT_CONPARSER)/jointconstituent.o
else
OBJ_CHINESE_CONSTITUENT = $(OBJECT_CONPARSER)/constituent.o
endif
endif
$(DIST_CONPARSER):
$(MKDIR) $(DIST_CONPARSER)
$(OBJECT_CONPARSER):
$(MKDIR) $(OBJECT_CONPARSER)
$(DIST_DEPLABELER):
$(MKDIR) $(DIST_DEPLABELER)
$(OBJECT_DEPLABELER):
$(MKDIR) $(OBJECT_DEPLABELER)
# the flags for train
ifeq ($(CHINESE_TAGGER_IMPL), segmented) # if segmented
TAGGER_TRAIN_FLAGS = -DSEGMENTED
TAGGER_TEST_FLAGS = -DSEGMENTED
else
ifeq ($(CHINESE_TAGGER_IMPL), bidirectional) # else if bidirectional
TAGGER_TRAIN_FLAGS = -DSEGMENTED -DAUTO
TAGGER_TEST_FLAGS = -DSEGMENTED
endif
endif
ifeq ($(CHINESE_DEPPARSER_LABELED), true)
CHINESE_DEPPARSER_D = -DLABELED
endif
ifeq ($(ENGLISH_DEPPARSER_LABELED), true)
ENGLISH_DEPPARSER_D = -DLABELED
endif
ifeq ($(CHINESE_DEPPARSER_IMPL), combined)
CHINESE_DEPPARSER_D := $(CHINESE_DEPPARSER_D) -DCOMBINED
CHINESE_DEPPARSER_IMPL = nivre
endif
ifeq ($(ENGLISH_DEPPARSER_IMPL), combined)
ENGLISH_DEPPARSER_D := $(ENGLISH_DEPPARSER_D) -DCOMBINED
ENGLISH_DEPPARSER_IMPL = nivre
endif
#====================================================
$(DIST_DEPPARSER):
$(MKDIR) $(DIST_DEPPARSER)
$(OBJECT_DEPPARSER):
$(MKDIR) $(OBJECT_DEPPARSER)
SRC_SEGMENTOR = $(SRC_CHINESE)/segmentor
DIST_SEGMENTOR = $(DIST_DIR)/segmentor
OBJECT_SEGMENTOR = $(OBJECT_DIR)/segmentor
$(DIST_SEGMENTOR):
$(MKDIR) $(DIST_SEGMENTOR)
$(OBJECT_SEGMENTOR):
$(MKDIR) $(OBJECT_SEGMENTOR)
include Makefile.zpar.zh
include Makefile.zpar.en
include Makefile.zpar.ge
include Makefile.zpar.es
include Makefile.zpar.mvt
zpar: zpar.ge
#----------------------------------------------------------------
#
# The sentence boundary detector
#
#----------------------------------------------------------------
include Makefile.doc2snt
#----------------------------------------------------------------
#
# The ccgparser
#
#----------------------------------------------------------------
include Makefile.ccg
#----------------------------------------------------------------
#
# Miscelaneous
#
#----------------------------------------------------------------
include Makefile.misc
#include Makefile.rr