Esempio n. 1
0
        static public T_POS InnertPosToPos(T_INNER_POS inPos)
        {
            if (inPos == T_INNER_POS.POS_UNK)
            {
                return(T_POS.POS_UNK);
            }

            return((T_POS)(0x01 << (int)inPos));
        }
Esempio n. 2
0
        public void Traffic(List <String> words)
        {
            for (int i = 0; i < words.Count - 1; i++)
            {
                bool          isReg;
                T_INNER_POS[] curPos  = _POS.GetPos((String)words[i], out isReg);
                T_INNER_POS[] nextPos = _POS.GetPos((String)words[i + 1], out isReg);


                //ArrayList curList = _POS.GetPosList(curPos);

                if (curPos.Length != 1)
                {
                    continue;
                }

                T_INNER_POS pos1 = curPos[0];

                if (pos1 == T_INNER_POS.POS_UNK)
                {
                    continue;
                }


                //ArrayList nextList = _POS.GetPosList(nextPos);

                if (nextPos.Length != 1)
                {
                    continue;
                }

                T_INNER_POS pos2 = (T_INNER_POS)nextPos[0];

                if (pos2 == T_INNER_POS.POS_UNK)
                {
                    continue;
                }

                T_POSBin bin = new T_POSBin(pos1, pos2);

                Hit(bin);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 增加单词的词性
        /// </summary>
        /// <param name="word">单词</param>
        /// <param name="pos">词性</param>
        public void AddWordPos(String word, int pos)
        {
            if (word == null)
            {
                return;
            }

            if (word.Length == 1)
            {
                _OneCharTable[word] = true;
            }

            ArrayList list = GetPosList(pos);

            T_INNER_POS[] inPosList = new T_INNER_POS[list.Count];

            for (int i = 0; i < inPosList.Length; i++)
            {
                inPosList[i] = GetInnerPos((T_POS)list[i]);
            }

            _PosTable[word] = inPosList;
        }
Esempio n. 4
0
 public T_POSBin(T_INNER_POS pos1, T_INNER_POS pos2)
 {
     _Pos1     = pos1;
     _Pos2     = pos2;
     _HashCode = (int)pos1 * 64 + (int)pos2;
 }