/** * org.atilika.kuromoji.dict.DictionariesのMoCA版 */ package jp.ac.waseda.info.kake.moca.dict; import org.atilika.kuromoji.dict.*; import org.atilika.kuromoji.trie.DoubleArrayTrie; public final class MocaDictionaries { private static TokenInfoDictionary dictionary; private static UnknownDictionary unknownDictionary; private static ConnectionCosts costs; private static DoubleArrayTrie trie; private static boolean initialized = false; static { load(); } private static synchronized void load() { final String prefix = "moca_"; if (MocaDictionaries.initialized) { return; } try { MocaDictionaries.dictionary = TokenInfoDictionary.getInstance(prefix); MocaDictionaries.unknownDictionary = UnknownDictionary.getInstance(prefix); MocaDictionaries.costs = ConnectionCosts.getInstance(prefix); MocaDictionaries.trie = DoubleArrayTrie.getInstance(prefix); MocaDictionaries.initialized = true; } catch (Exception ex) { throw new RuntimeException("MoCAの辞書を読み込めませんでした。", ex); } } /** * @return the dictionary */ public static TokenInfoDictionary getDictionary() { return dictionary; } /** * @param dictionary the dictionary to set */ public static void setDictionary(TokenInfoDictionary dictionary) { MocaDictionaries.dictionary = dictionary; } /** * @return the unknownDictionary */ public static UnknownDictionary getUnknownDictionary() { return unknownDictionary; } /** * @param unknownDictionary the unknownDictionary to set */ public static void setUnknownDictionary(UnknownDictionary unknownDictionary) { MocaDictionaries.unknownDictionary = unknownDictionary; } /** * @return the costs */ public static ConnectionCosts getCosts() { return costs; } /** * @param costs the costs to set */ public static void setCosts(ConnectionCosts costs) { MocaDictionaries.costs = costs; } /** * @return the trie */ public static DoubleArrayTrie getTrie() { return trie; } /** * @param trie the trie to set */ public static void setTrie(DoubleArrayTrie trie) { MocaDictionaries.trie = trie; } }