Exemple #1
0
        /// <summary>
        /// 往自定义词典中插入一个新词(覆盖模式)
        /// 动态增删不会持久化到词典文件
        /// </summary>
        /// <param name="word">新词,如“裸婚”</param>
        /// <param name="natWithFreq">词性以及词频,默认为"nz 1"</param>
        /// <returns></returns>
        public static bool Insert(string word, string natWithFreq = null)
        {
            if (string.IsNullOrEmpty(word))
            {
                return(false);
            }
            if (Config.NormalizeChar)
            {
                word = CharTable.Convert(word);
            }

            var attr = string.IsNullOrEmpty(natWithFreq)
                ? new WordAttr(Nature.nz, 1)
                : WordAttr.Create(natWithFreq);

            if (attr == null)
            {
                return(false);
            }

            if (dat.Set(word, attr))
            {
                return(true);
            }
            if (binTrie == null)
            {
                binTrie = new BinTrie <WordAttr>();
            }
            binTrie.Put(word, attr);
            return(true);
        }
 public Probability()
 {
     d = new BinTrie <int>();
 }
Exemple #3
0
 public DictionaryMaker()
 {
     _trie = new BinTrie <Item>();
 }