-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile.tpl
More file actions
69 lines (59 loc) · 1.79 KB
/
Copy pathMakefile.tpl
File metadata and controls
69 lines (59 loc) · 1.79 KB
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
SHELL=bash
PYTHON=python3
DELIMITER=","
NOSETESTS=nosetests -v --all-modules
# phrase model
# PHRASE_MODEL というフレーズモデルを生成する。
# [生成方法]
# まずKEYWORD_FILE から PHRASE に変換される。
# 次に
# * PHRASE
# * PHRASE_MOD
# からフレーズモデルを生成し、その後で
# * PHRASE_MODEL_MOD
# をモデルに追加する。
KEYWORD_FILE={{ KEYWORD_FILE }}
PHRASE={{ PHRASE }}
PHRASE_MOD={{ PHRASE_MOD }}
PHRASE_MODEL_MOD={{ PHRASE_MODEL_MOD }}
PHRASE_MODEL={{ PHRASE_MODEL }}
# bigram model
# BIGRAM_MODEL という言語モデルを生成する。
# [生成方法]
#
# HALFWIDTHKATAKANA_FILE から言語モデルを生成し、その後で
# * BIGRAM_MOD
# を追加する。
BIGRAM={{ BIGRAM }}
BIGRAM_MODEL_MOD={{ BIGRAM_MODEL_MOD }}
BIGRAM_MODEL={{ BIGRAM_MODEL }}
.PHONY: main modmodel convformat bigram phrase test clean
main: modelmod convformat bigram phrase
modelmod:
${PYTHON} make_mod.py
convformat:
sed -e 's/./& /g' -e 's/ $$//' -e 's/ , /,/g' <${KEYWORD_FILE} >${PHRASE}
bigram:
${PYTHON} train_bigram.py <(grep -P '^.{3,}$$' ${BIGRAM} | sed -e 's/./& /g' -e 's/ $$//') | sort >${BIGRAM_MODEL}
cat ${BIGRAM_MODEL_MOD} >>${BIGRAM_MODEL}
phrase:
${PYTHON} phrase_extract.py ${DELIMITER} ${PHRASE} <${PHRASE} \
| sort \
| uniq -c \
| awk '{ printf("%s\t%s\n", $$2, $$1) }' \
| ${PYTHON} phrasemodel.py ${PHRASE_MOD} >${PHRASE_MODEL}
cat ${PHRASE_MODEL_MOD} >>${PHRASE_MODEL}
test:
${NOSETESTS}
clean:
for file in ${PHRASE} \
${BIGRAM_MODEL} \
${BIGRAM_MODEL_MOD} \
${PHRASE_MODEL} \
${PHRASE_MODEL_MOD} \
TrainBigram \
TrainBigram.o \
TrainBigram.hi; do \
if [ -e $$file ]; then rm $$file; fi; \
done
if [ -d "__pycache__" ]; then rm -r __pycache__; fi