Difference between revisions of "Using flag diacritics for faster compilation"

From LING073
Jump to: navigation, search
(→‎Implementing the change)
(→‎Implementing the change)
Line 40: Line 40:
 
</pre>
 
</pre>
  
−
Make sure to do the same in your multilingual pair.
+
Be sure to rerun <code>./autogen.sh</code> when you're done.
 +
 
 +
Also make sure to do all of this the same way in your multilingual pair.
  
 
== Additional steps ==
 
== Additional steps ==

Revision as of 03:20, 22 March 2023

lexd is a bit slow to compile dictionaries that make use of prefixes with large lexicons (or similar).

To speed this up, you can enable compiling to flag diacritics.

Implementing the change

First thing you want to do is edit your Makefile.am:

  • remove autogen.bin and automorf.bin lines from the TARGETS_COMMON list at the top
  • add -f as a switch to the lexd commmands
  • add -F as a switch to the hfst-compose command in the the automorf.hfst line

This will all look something like this:

 TARGETS_COMMON =                       \
        $(LANG1).automorf.hfst          \
-       $(LANG1).automorf.bin           \
        $(LANG1).automorf.att.gz        \
        $(LANG1).autogen.hfst           \
-       $(LANG1).autogen.bin            \
        $(LANG1).autogen.att.gz         \
        $(LANG1).autopgen.bin           \
        $(LANG1).rlx.bin            \
        $(LANG1).zhfst

 .deps/$(LANG1).RL.lexd.hfst: .deps/$(LANG1).RL.lexd
-       lexd $< .deps/$(LANG1).RL.lexd.att
+       lexd -f $< .deps/$(LANG1).RL.lexd.att
        hfst-txt2fst .deps/$(LANG1).RL.lexd.att -o $@
 
 .deps/$(LANG1).LR.lexd.hfst: .deps/$(LANG1).LR.lexd
-       lexd $< .deps/$(LANG1).LR.lexd.att
+       lexd -f $< .deps/$(LANG1).LR.lexd.att
        hfst-txt2fst .deps/$(LANG1).LR.lexd.att -o $@
 $(LANG1).automorf.hfst: .deps/$(LANG1).LR.hfst .deps/$(LANG1).spellrelax.hfst
-       hfst-compose -1 $< -2 .deps/$(LANG1).spellrelax.hfst | hfst-invert | hfst-fst2fst -O -o $@
+       hfst-compose -F -1 $< -2 .deps/$(LANG1).spellrelax.hfst | hfst-invert | hfst-fst2fst -O -o $@

Be sure to rerun ./autogen.sh when you're done.

Also make sure to do all of this the same way in your multilingual pair.

Additional steps

Updating modes.xml

You'll want to change all the instances of lt-proc and auto*.bin in your modes.xml file to hfst-proc and auto*.hfst, respectively.

Make sure to do the same in your multilingual pair.

Running hfst-expand and hfst-lookup

You'll also need to add -X obey-flags to hfst-expand or hfst-lookup.

Running tests

In theory you shouldn't have to do anything extra?