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
|
### settings ###
CORPUSDIR:=../corpus
STATSDIR:=..
WIKIEXTRACTOR:=../3rdparty/wikiextractor/WikiExtractor.py
OPTROUNDS=100000
# pin layers, keep hand-optimized numbers, keep top row free
OPTPINS='0;1;2;0,Bl1;0,Bl2;0,Bl3;0,Bl4;0,Bl5;0,Bl6;0,Bl7;0,Br6;0,Br5;0,Br4;0,Br3;0,Br2;0,Br1;3,Cl4;3,Cl3;3,Cl2;3,Cl1;3,Dl4;3,Dl3;3,Dl2;3,Dl1;3,El5;3,El4;3,El3;3,El2;3,Dl5;3,Cl5;3,El6'
OPTMODEL=mod01
all: ar-lulua.xmodmap ar-lulua.svg ar-asmo663.svg ar-linux.svg ar-malas.svg ar-phonetic.svg ar-osman.svg letterfreq.json ar-khorshid.svg
letterfreq.json: ../stats.pickle
lulua-analyze -l ar-lulua letterfreq < $< > $@
ar-lulua.xmodmap:
lulua-render xmodmap -l ar-lulua $@
ar-lulua.svg:
lulua-render svg -l ar-lulua $@
ar-asmo663.svg:
lulua-render svg -l ar-asmo663 $@
ar-linux.svg:
lulua-render svg -l ar-linux $@
ar-malas.svg:
lulua-render svg -l ar-malas $@
ar-phonetic.svg:
lulua-render svg -l ar-phonetic $@
ar-osman.svg:
lulua-render svg -l ar-osman $@
ar-khorshid.svg:
lulua-render svg -l ar-khorshid $@
### corpora to stats ###
# Sorry, but I can’t provide corpus data due to copyright issues
$(STATSDIR)/stats-bbcarabic.pickle: $(CORPUSDIR)/bbcarabic/raw
time find $< -type f | lulua-write bbcarabic ar-lulua > $@
$(STATSDIR)/stats-aljazeera.pickle: $(CORPUSDIR)/aljazeera/raw
time find $< -type f | lulua-write aljazeera ar-lulua > $@
$(STATSDIR)/stats-tanzil.pickle: $(CORPUSDIR)/tanzil-quaran/plain.txt.lz
echo $< | lulua-write text ar-lulua | lulua-combine-stats > $@
$(STATSDIR)/stats-arwiki.pickle: $(CORPUSDIR)/arwiki/arwiki-20190701-pages-articles.xml.bz2
$(WIKIEXTRACTOR) -ns 0 --json -o - $< 2>/dev/null | jq .text | lulua-write json ar-lulua | lulua-combine-stats > $@
$(STATSDIR)/stats.pickle: $(STATSDIR)/stats-arwiki.pickle \
$(STATSDIR)/stats-tanzil.pickle $(STATSDIR)/stats-aljazeera.pickle \
$(STATSDIR)/stats-bbcarabic.pickle
cat $^ | lulua-combine-stats > $@
### optimization ###
optimized.yaml: $(STATSDIR)/stats.pickle
lulua-optimize -n $(OPTROUNDS) -r -p $(OPTPINS) -l ar-lulua -m $(OPTMODEL) < $< > $@
|