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

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

?? algor.cpp

?? 用python寫的分詞程序,實現的是最大匹配方法,簡單易用
?? CPP
字號:
#include <cctype>#include <cassert>#include "rules.h"#include "algor.h"using namespace std;namespace rmmseg{    Token Algorithm::next_token()    {        do        {            if (m_pos >= m_text_length)                return Token(NULL, 0);                 Token tk(NULL, 0);            int len = next_char();            if (len == 1)                tk = get_basic_latin_word();            else                tk = get_cjk_word(len);            if (tk.length > 0)                return tk;        }        while (true);    }    Token Algorithm::get_basic_latin_word()    {        int len = 1;        int start, end;        // Skip pre-word whitespaces and punctuations        while (m_pos < m_text_length)        {            if (len > 1)                break;            if (isalnum(m_text[m_pos]))                break;            m_pos++;            len = next_char();        }        start = m_pos;        while (m_pos < m_text_length)        {            if (len > 1)                break;            if (!isalnum(m_text[m_pos]))                break;            m_pos++;            len = next_char();        }        end = m_pos;        // Skip post-word whitespaces and punctuations        while (m_pos < m_text_length)        {            if (len > 1)                break;            if (isalnum(m_text[m_pos]))                break;            m_pos++;            len = next_char();        }        return Token(m_text+start, end-start);    }    Token Algorithm::get_cjk_word(int len)    {        vector<Chunk> chunks = create_chunks();        if (chunks.size() > 1)            mm_filter(chunks);        if (chunks.size() > 1)            lawl_filter(chunks);        if (chunks.size() > 1)            svwl_filter(chunks);        if (chunks.size() > 1)            lsdmfocw_filter(chunks);        if (chunks.size() < 1)            return Token(NULL, 0);        Token token(m_text+m_pos, chunks[0].words[0]->nbytes);        m_pos += chunks[0].words[0]->nbytes;        return token;    }        vector<Chunk> Algorithm::create_chunks()    {        vector<Chunk> chunks;        Chunk chunk;        Word *w1, *w2, *w3;        int orig_pos = m_pos;        typedef vector<Word *> vec_t;        typedef vec_t::iterator it_t;        vec_t words1 = find_match_words();        for (it_t i1 = words1.begin();             i1 != words1.end();             ++i1)        {            w1 = *i1;            chunk.words[0] = w1;            m_pos += w1->nbytes;            if (m_pos < m_text_length)            {                vec_t words2 = find_match_words();                for (it_t i2 = words2.begin();                     i2 != words2.end();                     ++i2)                {                    w2 = *i2;                    chunk.words[1] = w2;                    m_pos += w2->nbytes;                    if (m_pos < m_text_length)                    {                        vec_t words3 = find_match_words();                        for (it_t i3 = words3.begin();                             i3 != words3.end();                             ++i3)                        {                            w3 = *i3;                            if (w3->length == -1) // tmp word                            {                                chunk.n = 2;                            }                            else                            {                                chunk.n = 3;                                chunk.words[2] = w3;                            }                            chunks.push_back(chunk);                        }                    }                    else if (m_pos == m_text_length)                    {                        chunk.n = 2;                        chunks.push_back(chunk);                    }                    m_pos -= w2->nbytes;                }            }            else if (m_pos == m_text_length)            {                chunk.n = 1;                chunks.push_back(chunk);            }            m_pos -= w1->nbytes;        }        m_pos = orig_pos;        return chunks;    }    int Algorithm::next_char()    {        // ONLY for UTF-8        unsigned char ch = m_text[m_pos];        if (ch >= 0xC0 && ch <= 0xDF)            return 2;        if (ch >= 0xE0 && ch <= 0xEF)            return 3;        return 1;    }    vector<Word *> Algorithm::find_match_words()    {        for (int i = 0; i < match_cache_size; ++i)            if (m_match_cache[i].first == m_pos)                return m_match_cache[i].second;        vector<Word *> words;        Word *word;        int orig_pos = m_pos;        int n = 0, len;        while (m_pos < m_text_length)        {            len = next_char();            if (len <= 1)                break;            if (n >= max_word_length())                break;            m_pos += len;            n++;            word = dict::get(m_text+orig_pos, m_pos-orig_pos);            if (word)                words.push_back(word);        }        m_pos = orig_pos;                if (words.empty())        {            word = get_tmp_word();            word->nbytes = next_char();            word->length = -1;            strncpy(word->text, m_text+m_pos, word->nbytes);            word->text[word->nbytes] = '\0';            words.push_back(word);        }        m_match_cache[m_match_cache_i] = make_pair(m_pos, words);        m_match_cache_i++;        if (m_match_cache_i >= match_cache_size)            m_match_cache_i = 0;        return words;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲自拍偷拍九九九| 欧美极品少妇xxxxⅹ高跟鞋| 成人综合在线网站| 日韩午夜在线观看视频| 亚洲chinese男男1069| 日韩在线一区二区三区| 欧美日韩三级一区二区| 成人av在线播放网站| 免费成人结看片| 亚洲亚洲精品在线观看| 国产精品美女久久久久久2018| 欧美一区二区三区在线视频| 在线看日韩精品电影| 成人激情小说乱人伦| 国产揄拍国内精品对白| 日本视频在线一区| 午夜伊人狠狠久久| 亚洲精品第1页| 国产精品成人免费在线| 久久久久久久久久久久电影| 日韩欧美一卡二卡| 欧美一区二区啪啪| 欧美精品亚洲一区二区在线播放| 99热这里都是精品| www.激情成人| 久久久国产精品麻豆| 一本在线高清不卡dvd| 日韩电影免费一区| 亚洲国产精品久久艾草纯爱| 一区二区三区欧美视频| 亚洲裸体在线观看| 亚洲美女少妇撒尿| 亚洲精品乱码久久久久久黑人| 国产精品免费视频观看| 欧美激情一区二区三区四区| 国产欧美综合在线观看第十页 | 一区二区免费在线播放| 欧美高清在线一区| 国产精品美女久久久久久2018| 欧美韩日一区二区三区| 国产精品视频在线看| 国产精品色婷婷久久58| 国产精品精品国产色婷婷| 国产精品蜜臀av| 国产精品美女久久久久久久| 国产精品不卡一区| 亚洲精品视频免费观看| 午夜免费欧美电影| 蜜桃一区二区三区在线| 国产一区二区在线电影| 粉嫩av亚洲一区二区图片| 成人动漫av在线| 色综合久久中文综合久久97| 91国在线观看| 日韩视频123| 欧美激情中文字幕一区二区| 18成人在线观看| 午夜精品久久久久久久蜜桃app| 日本成人在线网站| 狠狠色丁香九九婷婷综合五月| 国产激情精品久久久第一区二区 | 亚洲精品精品亚洲| 亚洲网友自拍偷拍| 免费成人小视频| 国产精品99久久久久久久女警| 99久久精品免费看| 欧美日韩国产高清一区| 久久婷婷久久一区二区三区| 中文字幕一区二区三区不卡| 亚洲国产sm捆绑调教视频| 美女网站视频久久| 成人网男人的天堂| 91精品国模一区二区三区| 久久久无码精品亚洲日韩按摩| 亚洲精品免费在线播放| 麻豆精品在线看| 成人福利视频网站| 在线成人免费观看| 中文字幕欧美激情| 五月婷婷综合激情| 国产成人99久久亚洲综合精品| 欧美性一区二区| 久久伊99综合婷婷久久伊| 亚洲靠逼com| 狠狠色丁香婷综合久久| 在线免费观看成人短视频| 精品国产凹凸成av人导航| 亚洲欧美国产毛片在线| 国产在线精品视频| 欧美色图天堂网| 久久久久久综合| 亚洲福利国产精品| 99综合电影在线视频| 51久久夜色精品国产麻豆| 亚洲欧洲三级电影| 狠狠色狠狠色综合系列| 欧美日韩国产经典色站一区二区三区 | 国产亚洲1区2区3区| 亚洲高清免费一级二级三级| 福利一区二区在线| 日韩免费福利电影在线观看| 一区二区欧美在线观看| 成人高清在线视频| 久久久国产精品不卡| 日韩成人免费电影| 色嗨嗨av一区二区三区| 国产精品三级视频| 国产一区二区三区不卡在线观看| 欧美日韩精品一区二区三区 | 精品国产一区二区国模嫣然| 午夜精品一区二区三区电影天堂| 91亚洲国产成人精品一区二区三 | 香蕉久久一区二区不卡无毒影院 | 国产精品亚洲第一| 日韩欧美激情四射| 日韩不卡一区二区三区| 欧美在线一区二区| 亚洲三级小视频| 成人激情小说网站| 中文字幕精品一区| 岛国精品一区二区| 久久综合九色欧美综合狠狠| 精品亚洲欧美一区| 精品少妇一区二区三区免费观看| 日韩成人一区二区三区在线观看| 欧美日韩三级一区| 亚洲va欧美va天堂v国产综合| 色综合久久久久综合体桃花网| 国产精品乱码一区二区三区软件| 国产精品乡下勾搭老头1| 一区二区三区国产豹纹内裤在线| 国产suv一区二区三区88区| 久久综合狠狠综合久久激情| 精油按摩中文字幕久久| 亚洲精品一区二区三区精华液| 蜜臀av国产精品久久久久| 日韩色在线观看| 国内一区二区视频| 欧美激情一区二区三区四区| 成人亚洲一区二区一| 中文字幕一区免费在线观看| 色综合视频在线观看| 亚洲精品国产精品乱码不99| 欧美三级电影网| 丝袜美腿亚洲色图| 日韩一区二区精品| 国产精品中文字幕一区二区三区| 国产女主播一区| 99久精品国产| 亚洲主播在线播放| 在线播放一区二区三区| 精品一区二区三区免费视频| 久久久久久亚洲综合| 成人免费av网站| 伊人色综合久久天天| 欧美日韩国产天堂| 国产一区999| 综合久久给合久久狠狠狠97色| 色屁屁一区二区| 秋霞电影网一区二区| www激情久久| 99国产精品一区| 秋霞电影网一区二区| 中文字幕国产一区| 欧美日韩一区二区三区在线看| 奇米在线7777在线精品| 国产日韩精品一区二区三区| 91久久精品国产91性色tv| 日韩精品电影在线| 国产丝袜美腿一区二区三区| 一本高清dvd不卡在线观看 | 91丝袜美腿高跟国产极品老师| 香蕉乱码成人久久天堂爱免费| 日韩精品中文字幕在线不卡尤物| 国产91精品久久久久久久网曝门 | 国产精品网站一区| 欧美日韩精品二区第二页| 久久99久久精品| 亚洲激情男女视频| 精品久久久久久综合日本欧美| 91啦中文在线观看| 黑人巨大精品欧美一区| 亚洲精品免费播放| 久久蜜桃一区二区| 欧美日韩专区在线| 成人av资源站| 日本91福利区| 亚洲精品中文在线| 久久理论电影网| 这里只有精品电影| 色偷偷成人一区二区三区91 | 日韩av高清在线观看| 国产精品私人自拍| 欧美变态口味重另类| 在线中文字幕不卡| 成人黄动漫网站免费app| 九色综合狠狠综合久久| 亚洲午夜日本在线观看| 国产精品国产精品国产专区不蜜| 精品蜜桃在线看|