亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? simpledictseg.cs

?? KTDictSeg 簡介: KTDictSeg 是由KaiToo搜索開發的一款基于字典的簡單中英文分詞算法 * 主要功能: 中英文分詞
?? CS
?? 第 1 頁 / 共 4 頁
字號:
                    foreach (T_WordInfo wordInfo in words)
                    {
                        
                        if (lastPos < wordInfo.Position)
                        {
/*
                            String unMatchWord = word.Substring(lastPos, wordInfo.Position - lastPos);

                            InsertWordToArray(unMatchWord, retWords);
*/
                            //中間有未匹配詞,將單個字逐個加入
                            for (int j = lastPos; j < wordInfo.Position; j++)
                            {
                                InsertWordToArray(word[j].ToString(), retWords);
                            }
 
                        }
                         

                        lastPos = wordInfo.Position + wordInfo.Word.Length ;

                        //統計中文姓名的后綴
                        if (AutoStudy && lstIsName)
                        {
                            T_DictStruct wordDict = (T_DictStruct)wordInfo.Tag;
                            if ((wordDict.Pos & (int)T_POS.POS_A_NR) == 0)
                            {
                                m_MatchNameRule.AddBefore(wordInfo.Word);
                            }

                            lstIsName = false;
                        }

                        //統計中文姓名的前綴
                        //如總統,主席等
                        if ((((T_DictStruct)wordInfo.Tag).Pos & (int)T_POS.POS_A_NR) != 0)
                        {
                            if (wordInfo.Word.Length > 1 && wordInfo.Word.Length <= 4 && retWords.Count > 0 && AutoStudy && !lstIsName)
                            {
                                T_DictStruct wordDict = (T_DictStruct)wordInfo.Tag;
                                m_MatchNameRule.AddBefore(retWords[retWords.Count - 1]);
                            }

                            lstIsName = true;
                        }


                        InsertWordToArray(wordInfo.Word, retWords);


                    }

                    if (lastPos < word.Length)
                    {
                        //尾部有未匹配詞,將單個字逐個加入
                        for (int j = lastPos; j < word.Length; j++)
                        {
                            InsertWordToArray(word[j].ToString(), retWords);
                        }

                        //InsertWordToArray(word.Substring(lastPos, word.Length - lastPos), retWords);
                    }
                }

                i++;
            }

            return retWords;
        }

        private void TrafficUnknownWord(String word, T_POS Pos)
        {
            if (word.Length <= 1 || word.Length > 3)
            {
                return;
            }

            T_DictStruct unknownWord = m_UnknownWordsDictMgr.GetWord(word);


            if (unknownWord == null)
            {
                m_UnknownWordsDictMgr.InsertWord(word, 1, (int)Pos);
                return;
            }

            //如果是屏蔽的未登錄詞,則不加入
            //屏蔽的未登錄詞用詞性等于0來表示
            if (unknownWord.Pos == 0)
            {
                return;
            }

            unknownWord.Pos |= (int)Pos;
            unknownWord.Frequency++;

            if (unknownWord.Frequency > UnknownWordsThreshold && AutoInsertUnknownWords)
            {
                T_DictStruct w = m_DictMgr.GetWord(word);
                if (w == null)
                {
                    m_DictMgr.InsertWord(word, unknownWord.Frequency, unknownWord.Pos);

                    m_ExtractWords.InsertWordToDfa(word, unknownWord);
                    m_POS.AddWordPos(word, unknownWord.Pos);

                }
                else
                {
                    w.Pos |= unknownWord.Pos;
                    w.Frequency += unknownWord.Frequency;
                }

                unknownWord.Frequency = 0;
            }
        }

        /// <summary>
        /// 召回未登錄詞
        /// </summary>
        /// <returns></returns>
        private List<String> RecoverUnknowWord(List<String> words)
        {
            List<String> retWords = new List<String>();

            int i = 0;
            int j = 0;

            while (i < words.Count)
            {
                String w = (String)words[i];

                if (i == words.Count-1)
                {
                    retWords.Add(w);
                    break;
                }

                if (m_POS.IsUnknowOneCharWord(w))
                {
                    String word = w;
                    i++;

                    while (m_POS.IsUnknowOneCharWord(words[i]))
                    {
                        word += (String)words[i];
                        i++;
                        if (i >= words.Count)
                        {
                            break;
                        }
                    }

                    if (AutoStudy)
                    {
                        TrafficUnknownWord(word, T_POS.POS_A_NZ);

                        //將所有連續單字組成一個詞,假設其為未登錄詞,進行統計
                        if (j < i && w[0] >= 0x4e00 && w[0] <= 0x9fa5)
                        {
                            j = i;

                            if (j < words.Count)
                            {
                                String longWord = word;

                                while (words[j].Length == 1 && words[j][0] >= 0x4e00 && words[j][0] <= 0x9fa5)
                                {
                                    longWord += words[j];
                                    j++;

                                    if (j >= words.Count)
                                    {
                                        break;
                                    }
                                }

                                TrafficUnknownWord(longWord, T_POS.POS_A_NZ);
                            }
                        }
                    }

                    retWords.Add(word);
                    continue;
                }
                else
                {
                    if (AutoStudy)
                    {
                        //將所有連續單字組成一個詞,假設其為未登錄詞,進行統計
                        if (j <= i && w.Length == 1 && w[0] >= 0x4e00 && w[0] <= 0x9fa5)
                        {
                            j = i + 1;
                            String word = w;

                            if (j < words.Count)
                            {
                                while (words[j].Length == 1 && words[j][0] >= 0x4e00 && words[j][0] <= 0x9fa5)
                                {
                                    word += words[j];
                                    j++;

                                    if (j >= words.Count)
                                    {
                                        break;
                                    }
                                }

                                TrafficUnknownWord(word, T_POS.POS_A_NZ);
                            }
                        }
                    }

                    retWords.Add(w);
                }

                i++;
            }

            return retWords;
    
        }


        /// <summary>
        /// 分詞,不屏蔽停用詞
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        private List<String> SegmentNoStopWord(String str)
        {
            List<String> preWords = PreSegment(str);
            List<String> retWords = new List<String>();

            int index = 0 ;
            while (index < preWords.Count)
            {
                int next = -1;
                foreach (IRule rule in m_Rules)
                {
                    if (!m_MatchName && rule is MatchName)
                    {
                        continue;
                    }

                    next = rule.ProcRule(preWords, index, retWords);
                    if (next > 0)
                    {
                        index = next;
                        break;
                    }
                }

                if (next > 0)
                {
                    continue;
                }

                retWords.Add(preWords[index]);
                index++;
            }

            //return retWords;
            List<String> retStrings = RecoverUnknowWord(retWords);

            if (AutoStudy)
            {
                foreach (String word in retStrings)
                {
                    T_DictStruct dict = (T_DictStruct)m_ExtractWords.GetTag(word);

                    if (dict != null)
                    {
                        dict.Frequency++;
                    }

                }
            }

            return retStrings;
        }

        /// <summary>
        /// 定期保存最新的字典和統計信息
        /// </summary>
        private void SaveDictOnTime()
        {
            if (!AutoStudy)
            {
                return;
            }

            TimeSpan s = DateTime.Now - m_LastSaveTime;

            if (s.TotalSeconds > AutoSaveInterval)
            {
                m_LastSaveTime = DateTime.Now;
                SaveDict();
            }
        }

        /// <summary>
        /// 分詞并輸出單詞信息列表 
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public List<T_WordInfo> SegmentToWordInfos(String str)
        {
            //定時保存字典
            SaveDictOnTime();

            List<String> words = SegmentNoStopWord(str);

            List<T_WordInfo> retWords = new List<T_WordInfo>();
            int position = 0;

            foreach (String word in words)
            {
                if (m_FilterStopWords)
                {
                    if (m_ChsStopwordTbl[word] != null || m_EngStopwordTbl[word] != null)
                    {
                        position += word.Length;
                        continue;
                    }
                }

                T_WordInfo wordInfo = new T_WordInfo();
                wordInfo.Word = word;
                wordInfo.Position = position;
                retWords.Add(wordInfo);
                position += word.Length;
            }

            return retWords;
        }

        /// <summary>
        /// 分詞只輸出單詞列表
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public List<String> Segment(String str)
        {
            //定時保存字典
            SaveDictOnTime();

            List<String> words = SegmentNoStopWord(str);

            if (!m_FilterStopWords)
            {
                return words;
            }
            else
            {
                List<String> retWords = new List<String>();

                foreach (String word in words)
                {
                    if (m_ChsStopwordTbl[word] != null || m_EngStopwordTbl[word] != null)
                    {
                        continue;
                    }

                    retWords.Add(word);
                }

                return retWords;
            }
        }

        #endregion
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区免费在线观看视频| 亚洲欧美日韩人成在线播放| 91老师国产黑色丝袜在线| 日本v片在线高清不卡在线观看| 中文字幕av免费专区久久| 欧美精品18+| 一本在线高清不卡dvd| 国产精品456| 蜜桃免费网站一区二区三区 | 国产欧美一区二区在线观看| 欧美日韩精品一区二区三区蜜桃| 成人精品小蝌蚪| 麻豆成人综合网| 亚洲亚洲精品在线观看| 亚洲视频狠狠干| 日本一区二区三区国色天香| 精品国产精品一区二区夜夜嗨 | 国产欧美日韩精品一区| 日韩欧美的一区| 91精品国产aⅴ一区二区| 欧美在线小视频| 91同城在线观看| 成人美女在线观看| 成人黄页在线观看| 成人综合婷婷国产精品久久| 国产美女在线精品| 国产一二三精品| 国产中文字幕一区| 国内精品第一页| 狠狠色丁香久久婷婷综| 极品美女销魂一区二区三区免费| 久久se精品一区精品二区| 91在线观看成人| 成人性生交大片免费| 国产黄色成人av| 成人综合婷婷国产精品久久| 国产69精品久久久久777| 国产成人在线视频播放| 国产91色综合久久免费分享| 国产精一区二区三区| 国产一区二区网址| 成人妖精视频yjsp地址| 成人一区在线看| 91蜜桃网址入口| 色综合久久久久综合体| 欧美日韩免费一区二区三区| 6080国产精品一区二区| 欧美精品vⅰdeose4hd| 日韩欧美国产午夜精品| 欧美精品一区二区三区四区 | 久久精品水蜜桃av综合天堂| 久久久久久亚洲综合影院红桃| 久久免费国产精品| 国产精品网站导航| 一区二区三区免费在线观看| 亚洲成人av电影| 久久精品久久综合| 丰满少妇在线播放bd日韩电影| 99re6这里只有精品视频在线观看| 97成人超碰视| 欧美日韩国产123区| 欧美白人最猛性xxxxx69交| 久久精品在这里| 一区二区三区不卡视频| 蜜臀a∨国产成人精品| 国产不卡视频在线播放| 91福利资源站| 欧美成人三级在线| 国产精品福利一区二区三区| 亚洲成人综合在线| 国产精品中文字幕一区二区三区| 99久久婷婷国产| 欧美疯狂做受xxxx富婆| xnxx国产精品| 亚洲综合精品自拍| 黑人巨大精品欧美一区| av电影在线观看不卡| 7777精品伊人久久久大香线蕉最新版| 欧美不卡视频一区| 亚洲日本免费电影| 日本成人中文字幕在线视频| 成人综合在线观看| 欧美精品黑人性xxxx| 国产欧美一区二区精品性色超碰 | 日韩精品一区在线| 自拍偷在线精品自拍偷无码专区| 日本欧美加勒比视频| 99国产精品久久久久久久久久 | 成人免费的视频| 欧美一区二区在线看| 亚洲欧洲精品一区二区三区| 奇米一区二区三区av| 一本到高清视频免费精品| 精品国产乱码久久久久久蜜臀| 一区二区三区四区乱视频| 国产一区二区不卡| 欧美一区二区观看视频| 亚洲精品va在线观看| 国产河南妇女毛片精品久久久| 欧美亚洲动漫制服丝袜| 国产精品久久久久精k8| 国产一区二三区| 日韩欧美一区二区三区在线| 一二三区精品视频| eeuss鲁片一区二区三区在线看| 717成人午夜免费福利电影| 亚洲欧美日韩国产成人精品影院| 国产一区欧美日韩| 欧美日本一区二区在线观看| **性色生活片久久毛片| 国产福利91精品一区| 欧美mv日韩mv国产网站app| 日韩成人一区二区三区在线观看| 色综合久久天天| 国产精品久久三| 国产91精品欧美| 久久久久久久网| 精品一区二区三区影院在线午夜| 777久久久精品| 视频在线观看91| 欧美精品乱码久久久久久按摩| 亚洲精品视频在线看| a级精品国产片在线观看| 亚洲欧美日韩国产成人精品影院| 国产麻豆一精品一av一免费| 精品黑人一区二区三区久久| 日韩成人免费电影| 91精品在线一区二区| 天涯成人国产亚洲精品一区av| 在线观看成人免费视频| 亚洲精品视频在线观看网站| 91捆绑美女网站| 亚洲精品自拍动漫在线| 91麻豆精品一区二区三区| 中文字幕字幕中文在线中不卡视频| 国产不卡视频在线观看| 国产精品美女久久久久av爽李琼| 成人性生交大片免费看视频在线| 国产欧美一区二区精品忘忧草| 国产精品资源站在线| 国产日韩综合av| 成人av免费网站| 亚洲激情男女视频| 欧美日韩情趣电影| 麻豆视频观看网址久久| 欧美精品一区二区在线观看| 国产成人免费在线| 亚洲人成精品久久久久| 在线观看www91| 日本在线不卡视频一二三区| 日韩视频免费观看高清完整版 | 中文字幕亚洲成人| 在线观看免费视频综合| 日韩二区在线观看| 久久亚洲欧美国产精品乐播| 成人在线视频一区| 亚洲乱码国产乱码精品精小说| 欧美亚洲一区二区在线观看| 青椒成人免费视频| 亚洲国产精品成人综合色在线婷婷 | 国产精品色哟哟| 91一区二区三区在线观看| 午夜久久久久久| 久久综合久久99| 一本到不卡精品视频在线观看| 视频在线在亚洲| 中文字幕国产一区| 欧美人牲a欧美精品| 激情综合网av| 亚洲欧美一区二区三区久本道91| 欧美日韩一本到| 精油按摩中文字幕久久| 亚洲欧美在线观看| 欧美老人xxxx18| 国产激情一区二区三区| 亚洲综合久久久久| 久久久久久久久久久99999| 色哦色哦哦色天天综合| 九一九一国产精品| 亚洲九九爱视频| 久久免费的精品国产v∧| 在线亚洲免费视频| 国产成人福利片| 天天综合色天天| 亚洲特级片在线| 欧美成人性战久久| 欧美亚洲日本国产| 国产成人免费在线观看不卡| 婷婷开心久久网| 一区视频在线播放| 精品久久久久久久人人人人传媒 | 一区二区三区蜜桃网| 日韩一区二区三区视频在线| 国产成人精品免费| 蜜臀99久久精品久久久久久软件| 国产精品美日韩| 日韩视频123| 欧美日韩一区二区在线观看视频| 高清视频一区二区| 久久成人av少妇免费|