X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FDictionaryBuilderMain.java;h=8ac728396aa14c5bbe89b220b06d1f72aa4b7815;hb=32ec9e62d688bf98aa7063203514564f9463f78b;hp=36564eacce3ef918459e6c906849d9833c9af7a6;hpb=a7ae2524281869de5aa756ae35524b21bab3e08a;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java b/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java index 36564ea..8ac7283 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java @@ -14,37 +14,34 @@ package com.hughes.android.dictionary.engine; -import java.io.File; -import java.io.PrintWriter; -import java.io.RandomAccessFile; -import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import junit.framework.TestCase; +import com.hughes.android.dictionary.parser.enwiktionary.EnWiktionaryLangs; + public class DictionaryBuilderMain extends TestCase { - static final String INPUTS = "../DictionaryData/inputs/"; - static final String STOPLISTS = "../DictionaryData/inputs/stoplists/"; - static final String OUTPUTS = "../DictionaryData/outputs/"; + static final String INPUTS = "data/inputs/"; + static final String STOPLISTS = "data/inputs/stoplists/"; + static final String OUTPUTS = "data/outputs/"; public static void main(final String[] args) throws Exception { - final Map isoToWikiName = new LinkedHashMap(Language.isoCodeToWikiName); + // Builds all the dictionaries it can, outputs list to a text file. + + final Map isoToWikiName = new LinkedHashMap(EnWiktionaryLangs.isoCodeToWikiName); isoToWikiName.remove("EN"); isoToWikiName.remove("DE"); final Map isoToDedication = new LinkedHashMap(); isoToDedication.put("AF", "Afrikaans dictionary dedicated to Heiko and Mariëtte Horn."); - isoToDedication.put("HR", "Croation dictionary dedicated to Ines Viskic and Miro Kresonja."); + isoToDedication.put("HR", "Croatian dictionary dedicated to Ines Viskic and Miro Kresonja."); isoToDedication.put("NL", "Dutch dictionary dedicated to Mike LeBeau."); // German handled in file. isoToDedication.put("EL", "Greek dictionary dedicated to Noah Egge."); isoToDedication.put("IT", "Italian dictionary dedicated to Carolina Tropini, my favorite stardust in the whole universe! Ti amo!"); - isoToDedication.put("JA", "Japanese dictionary dedicated to Akane Watanabe."); isoToDedication.put("KO", "Korean dictionary dedicated to Ande Elwood--fall fashion und Fernsehturms!"); isoToDedication.put("PT", "Portuguese dictionary dedicated to Carlos Melo, one Tough Mudder."); isoToDedication.put("RO", "Romanian dictionary dedicated to Radu Teodorescu."); @@ -61,19 +58,21 @@ public class DictionaryBuilderMain extends TestCase { isoToStoplist.put("FR", "fr.txt"); final Map isoToRegex = new LinkedHashMap(); - isoToRegex.put("ZH", ".*Chinese.*|.*Mandarin.*|.*Cantonese.*"); + // HACK: The missing "e" prevents a full match, causing "Cantonese" to be appended to the entries. + isoToRegex.put("ZH", "Chinese|Mandarin|Cantones"); - boolean go = false; - isoToWikiName.clear(); +// isoToWikiName.keySet().retainAll(Arrays.asList("UK", "HR", "FI")); + //isoToWikiName.clear(); + boolean go = true; for (final String foreignIso : isoToWikiName.keySet()) { - if (foreignIso.equals("GA")) { + if (foreignIso.equals("SK")) { go = true; } if (!go) { continue; } - final String dictFile = String.format(OUTPUTS + "/EN-%s_enwiktionary.quickdic", foreignIso); + final String dictFile = String.format("%s/EN-%s_enwiktionary.quickdic", OUTPUTS, foreignIso); System.out.println("building dictFile: " + dictFile); if (!isoToStoplist.containsKey(foreignIso)) { @@ -83,7 +82,7 @@ public class DictionaryBuilderMain extends TestCase { isoToDedication.put(foreignIso, ""); } if (!isoToRegex.containsKey(foreignIso)) { - isoToRegex.put(foreignIso, ".*" + isoToWikiName.get(foreignIso) + ".*"); + isoToRegex.put(foreignIso, isoToWikiName.get(foreignIso)); } DictionaryBuilder.main(new String[] { @@ -99,58 +98,48 @@ public class DictionaryBuilderMain extends TestCase { "--input2Format=enwiktionary", "--input2LangPattern=" + isoToRegex.get(foreignIso), "--input2LangCodePattern=" + foreignIso.toLowerCase(), - "--input2EnIndex=2", + "--input2EnIndex=1", "--input3=" + INPUTS + "enWikiSplit/EN.data", "--input3Name=enwiktionary.english", "--input3Format=enwiktionary", "--input3LangPattern=" + isoToRegex.get(foreignIso), "--input3LangCodePattern=" + foreignIso.toLowerCase(), - "--input3EnIndex=2", + "--input3EnIndex=1", }); - // Print the entries for diffing. - final RandomAccessFile raf = new RandomAccessFile(new File(dictFile), "r"); - final Dictionary dict = new Dictionary(raf); - final PrintWriter textOut = new PrintWriter(new File(dictFile + ".text")); - final List sorted = new ArrayList(dict.pairEntries); - Collections.sort(sorted); - for (final PairEntry pairEntry : sorted) { - textOut.println(pairEntry.getRawText(false)); - } - textOut.close(); - raf.close(); - } // foreignIso + final String dictFile = String.format("%s/DE-EN_chemnitz_enwiktionary.%s.quickdic", OUTPUTS); DictionaryBuilder.main(new String[] { - "--dictOut=" + OUTPUTS + "DE-EN_chemnitz_enwiktionary", + "--dictOut=" + dictFile, "--lang1=DE", "--lang2=EN", + String.format("--lang1Stoplist=%s", STOPLISTS + "de.txt"), + String.format("--lang2Stoplist=%s", STOPLISTS + "en.txt"), "--dictInfo=@" + INPUTS + "de-en_chemnitz_enwiktionary.info", - "--input1=" + INPUTS + "de-en_chemnitz.txt", - "--input1Name=chemnitz", - "--input1Charset=UTF8", - "--input1Format=chemnitz", + "--input4=" + INPUTS + "de-en_chemnitz.txt", + "--input4Name=chemnitz", + "--input4Charset=UTF8", + "--input4Format=chemnitz", "--input2=" + INPUTS + "enWikiSplit/DE.data", "--input2Name=enwiktionary.DE", "--input2Format=enwiktionary", - "--input2LangPattern=" + isoToRegex.get("DE"), + "--input2LangPattern=German", "--input2LangCodePattern=de", "--input2EnIndex=2", "--input3=" + INPUTS + "enWikiSplit/EN.data", "--input3Name=enwiktionary.english", "--input3Format=enwiktionary", - "--input3LangPattern=" + isoToRegex.get("DE"), + "--input3LangPattern=German", "--input3LangCodePattern=de", "--input3EnIndex=2", - }); - + } - + }