婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python預測分詞的實現(xiàn)

Python預測分詞的實現(xiàn)

熱門標簽:大連crm外呼系統(tǒng) 老人電話機器人 梅州外呼業(yè)務系統(tǒng) 無錫客服外呼系統(tǒng)一般多少錢 百度地圖標注位置怎么修改 高德地圖標注是免費的嗎 地圖標注視頻廣告 北京電信外呼系統(tǒng)靠譜嗎 洪澤縣地圖標注

前言

在機器學習中,我們有了訓練集的話,就開始預測。預測是指利用模型對句子進行推斷的過程。在中文分詞任務中也就是利用模型推斷分詞序列,同時也叫解碼。

在HanLP庫中,二元語法的解碼由ViterbiSegment分詞器提供。本篇將詳細介紹ViterbiSegment的使用方式

加載模型

在前篇博文中,我們已經(jīng)得到了訓練的一元,二元語法模型。后續(xù)的處理肯定會基于這幾個文件來處理。所以,我們首先要做的就是加載這些模型到程序中:

if __name__ == "__main__":
    MODEL_PATH = "123"
    HanLP.Config.CoreDictionaryPath = MODEL_PATH + ".txt"
    HanLP.Config.BiGramDictionaryPath = MODEL_PATH + ".ngram.txt"
    CoreDictionary = SafeJClass("com.hankcs.hanlp.dictionary.CoreDictionary")
    CoreBiGramTableDictionary = SafeJClass('com.hankcs.hanlp.dictionary.CoreBiGramTableDictionary')
    print(CoreDictionary.getTermFrequency("秦機"))
    print(CoreBiGramTableDictionary.getBiFrequency("秦機","的"))

運行之后,效果如下:

這里我們使用CoreDictionary.getTermFrequency()方法獲取”秦機“的頻次。使用CoreBiGramTableDictionary.getBiFrequency()方法獲取“秦機 的”的二元語法頻次。

構(gòu)建詞網(wǎng)

在前文中我們介紹了符號“末##末“,代表句子結(jié)尾,”始##始“代表句子開頭。而詞網(wǎng)指的是句子中所有一元語法構(gòu)成的網(wǎng)狀結(jié)構(gòu)。比如MSR詞典中的“秦機和科技”這個句子,是給定的一元詞典。我們將句子中所有單詞找出來。得到如下詞網(wǎng):

[始##始]
[秦機]
[]
[和,和科]
[科技]
[技]
[末##末]

對應的此圖如下所示:

當然,這里博主只是舉例說明詞網(wǎng)的概念,“和科”并不是一個單詞。

下面,我們來通過方法構(gòu)建詞網(wǎng)。具體代碼如下:

def build_wordnet(sent, trie):
    JString = JClass('java.lang.String')
    Vertex = JClass('com.hankcs.hanlp.seg.common.Vertex')
    WordNet = JClass('com.hankcs.hanlp.seg.common.WordNet')
    searcher = trie.getSearcher(JString(sent), 0)
    wordnet = WordNet(sent)
    while searcher.next():
        wordnet.add(searcher.begin + 1,
                    Vertex(sent[searcher.begin:searcher.begin + searcher.length], searcher.value, searcher.index))
    # 原子分詞,保證圖連通
    vertexes = wordnet.getVertexes()
    i = 0
    while i  len(vertexes):
        if len(vertexes[i]) == 0:  # 空白行
            j = i + 1
            for j in range(i + 1, len(vertexes) - 1):  # 尋找第一個非空行 j
                if len(vertexes[j]):
                    break
            wordnet.add(i, Vertex.newPunctuationInstance(sent[i - 1: j - 1]))  # 填充[i, j)之間的空白行
            i = j
        else:
            i += len(vertexes[i][-1].realWord)

    return wordnet


if __name__ == "__main__":
    MODEL_PATH = "123"
    HanLP.Config.CoreDictionaryPath = MODEL_PATH + ".txt"
    HanLP.Config.BiGramDictionaryPath = MODEL_PATH + ".ngram.txt"
    CoreDictionary = SafeJClass("com.hankcs.hanlp.dictionary.CoreDictionary")
    CoreBiGramTableDictionary = SafeJClass('com.hankcs.hanlp.dictionary.CoreBiGramTableDictionary')
    print(build_wordnet("秦機和科技", CoreDictionary.trie))

運行之后,我們會得到與上圖歸納差不多的內(nèi)容:

維特比算法

如果現(xiàn)在我們賦予上述詞圖每條邊以二元語法的概率作為距離,那么如何求解詞圖上的最短路徑就是一個關(guān)鍵問題。

假設(shè)文本長度為n,則一共有2(n-1次方)種切分方式,因為每2個字符間都有2種選擇:切或者不切,時間復雜度就為O(2(n-1次方))。顯然不切實際,這里我們考慮使用維特比算法。

維特比算法原理:它分為前向和后向兩個步驟。

  • 前向:由起點出發(fā)從前往后遍歷節(jié)點,更新從起點到該節(jié)點的最下花費以及前驅(qū)指針
  • 后向:由終點出發(fā)從后往前回溯前驅(qū)指針,取得最短路徑

維特比算法用python代碼的實現(xiàn)如下:

def viterbi(wordnet):
    nodes = wordnet.getVertexes()
    # 前向遍歷
    for i in range(0, len(nodes) - 1):
        for node in nodes[i]:
            for to in nodes[i + len(node.realWord)]:
                # 根據(jù)距離公式計算節(jié)點距離,并維護最短路徑上的前驅(qū)指針from
                to.updateFrom(node)
    # 后向回溯
    # 最短路徑
    path = []
    # 從終點回溯
    f = nodes[len(nodes) - 1].getFirst()
    while f:
        path.insert(0, f)
        # 按前驅(qū)指針from回溯
        f = f.getFrom()
    return [v.realWord for v in path]

實戰(zhàn)

現(xiàn)在我們來做個測試,我們在msr_test_gold.utf8上訓練模型,為秦機和科技常見詞圖,最后運行維特比算法。詳細代碼如下所示:

if __name__ == "__main__":
    MODEL_PATH = "123"
    corpus_path = r"E:\ProgramData\Anaconda3\Lib\site-packages\pyhanlp\static\data\test\icwb2-data\gold\msr_test_gold.utf8"
    train_model(corpus_path, MODEL_PATH)
    HanLP.Config.CoreDictionaryPath = MODEL_PATH + ".txt"
    HanLP.Config.BiGramDictionaryPath = MODEL_PATH + ".ngram.txt"
    CoreDictionary = SafeJClass("com.hankcs.hanlp.dictionary.CoreDictionary")
    CoreBiGramTableDictionary = SafeJClass('com.hankcs.hanlp.dictionary.CoreBiGramTableDictionary')
    ViterbiSegment = JClass('com.hankcs.hanlp.seg.Viterbi.ViterbiSegment')
    MODEL_PATH = "123"
    HanLP.Config.CoreDictionaryPath = MODEL_PATH + ".txt"
    HanLP.Config.BiGramDictionaryPath = MODEL_PATH + ".ngram.txt"
    sent = "秦機和科技"
    wordnet = build_wordnet(sent, CoreDictionary.trie)
    print(viterbi(wordnet))

有的人可能有疑問,因為二元模型里,本身就存在秦機 和
科技這個樣本。這么做不是多此一舉嗎?那好,我們替換sent的文本內(nèi)容為“北京和廣州”,這個樣本可不在模型中。運行之后,效果如下:

我們發(fā)現(xiàn)依然能正確的分詞為[北京 和 廣州],這就是二元語法模型的泛化能力。至此我們走通了語料標注,訓練模型,預測分詞結(jié)果的完整步驟。

到此這篇關(guān)于Python預測分詞的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python預測分詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python jieba分詞并統(tǒng)計詞頻后輸出結(jié)果到Excel和txt文檔方法
  • Python基于jieba庫進行簡單分詞及詞云功能實現(xiàn)方法
  • python中文分詞庫jieba使用方法詳解
  • python中文分詞,使用結(jié)巴分詞對python進行分詞(實例講解)
  • python實現(xiàn)中文分詞FMM算法實例
  • Python中文分詞庫jieba,pkusegwg性能準確度比較
  • python實現(xiàn)機械分詞之逆向最大匹配算法代碼示例

標簽:長春 清遠 安慶 泉州 怒江 吉林 岳陽 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python預測分詞的實現(xiàn)》,本文關(guān)鍵詞  Python,預測,分詞,的,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python預測分詞的實現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python預測分詞的實現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲成a人v欧美综合天堂下载| 精品国产一区二区亚洲人成毛片 | 日本欧美一区二区三区乱码| 色偷偷成人一区二区三区91| 亚洲素人一区二区| 精品国产免费人成在线观看| 国产精品91xxx| 自拍视频在线观看一区二区| 欧美在线影院一区二区| 亚洲国产成人porn| 91精品欧美久久久久久动漫| 狠狠色丁香久久婷婷综合_中| 精品国产乱码久久久久久牛牛| 精品一二线国产| 国产精品久久久一本精品| 91麻豆国产精品久久| 亚洲综合激情小说| 日韩一区二区麻豆国产| 成人精品免费看| 国产乱码精品一区二区三区忘忧草 | 91精品国产品国语在线不卡| 老司机午夜精品99久久| 国产精品网友自拍| 91精品国产乱码久久蜜臀| 国产精品中文字幕欧美| 亚洲精品视频在线看| 日韩欧美一区二区不卡| 91在线播放网址| 美女www一区二区| 国产精品人人做人人爽人人添| 91福利在线播放| 激情综合亚洲精品| 亚洲精品视频在线看| 久久无码av三级| 制服视频三区第一页精品| 91美女视频网站| 狠狠色综合播放一区二区| 亚洲综合成人网| 中文字幕在线一区免费| 精品国产91久久久久久久妲己 | 欧美一区二区三区在线视频| 国产传媒久久文化传媒| 日韩中文字幕1| 1区2区3区精品视频| 欧美精品一区男女天堂| 欧美精品免费视频| 91成人看片片| jizzjizzjizz欧美| 国模大尺度一区二区三区| 五月激情六月综合| 一区二区三区在线观看视频| 国产日韩欧美精品电影三级在线 | 亚洲欧美电影一区二区| 国产日韩欧美高清| 亚洲综合免费观看高清在线观看| 欧美草草影院在线视频| 在线电影国产精品| 欧美色精品在线视频| 91国产精品成人| 不卡视频免费播放| 成人免费的视频| 国产精品18久久久久久久久 | 午夜伦欧美伦电影理论片| 亚洲欧美国产毛片在线| 亚洲精品水蜜桃| 亚洲一二三区视频在线观看| 亚洲免费观看高清完整版在线| 欧美激情中文字幕一区二区| 久久久久国产一区二区三区四区| 日韩视频在线一区二区| 欧美一级黄色录像| 久久伊人中文字幕| 久久久精品中文字幕麻豆发布| 在线视频国内一区二区| 欧美日韩性生活| 精品噜噜噜噜久久久久久久久试看| 日韩一卡二卡三卡国产欧美| 亚洲视频在线一区观看| 一区二区三区日韩在线观看| 亚洲电影你懂得| 琪琪久久久久日韩精品| 经典三级在线一区| 丁香天五香天堂综合| 91亚洲午夜精品久久久久久| 欧美日韩激情一区二区| 日韩欧美中文字幕制服| www精品美女久久久tv| 国产精品视频yy9299一区| 一区二区三区欧美视频| 日本不卡一二三区黄网| 国产尤物一区二区在线| 91浏览器打开| 久久综合国产精品| 亚洲国产高清在线| 一区二区三区在线视频播放| 日韩av电影免费观看高清完整版| 国产在线精品一区二区| 91视频免费观看| 欧美一区二区三区视频在线| 久久精品亚洲一区二区三区浴池| 欧美韩国日本综合| 国精品**一区二区三区在线蜜桃| 久久99国产精品免费| 国产精品夜夜嗨| 在线一区二区视频| 日韩欧美一区二区三区在线| 亚洲欧美日韩成人高清在线一区| 免费欧美高清视频| 精品一区二区三区免费播放| 成人久久视频在线观看| 欧美酷刑日本凌虐凌虐| 中文字幕不卡在线| 九九在线精品视频| 日本韩国精品在线| 国产精品成人一区二区三区夜夜夜 | 亚洲三级电影网站| 欧美a一区二区| 色哟哟一区二区在线观看| 久久影院电视剧免费观看| 亚洲影视资源网| 成人深夜视频在线观看| 欧美sm美女调教| 亚洲一区二区三区国产| 懂色av一区二区三区免费看| 精品国偷自产国产一区| 日韩中文字幕1| 欧美系列日韩一区| 亚洲天堂中文字幕| 成人免费视频视频在线观看免费| 精品盗摄一区二区三区| 久久丁香综合五月国产三级网站| 欧美一区二区三区播放老司机| 一个色妞综合视频在线观看| 成人国产在线观看| 国产女同互慰高潮91漫画| 狠狠久久亚洲欧美| 精品国产伦一区二区三区免费| 日日欢夜夜爽一区| 欧美日韩综合在线免费观看| 亚洲精品国产一区二区三区四区在线| caoporn国产一区二区| 亚洲丝袜制服诱惑| 久久久不卡影院| 久久国产欧美日韩精品| 欧美日韩国产乱码电影| 视频一区视频二区中文| 在线不卡中文字幕| 欧美激情综合在线| 色视频成人在线观看免| 亚洲r级在线视频| 欧美三级一区二区| 美女视频黄 久久| 欧美韩国日本不卡| 91蜜桃免费观看视频| 亚洲精选视频在线| 制服丝袜在线91| 美国十次综合导航| 欧美激情一区在线观看| 99精品视频在线播放观看| 一区二区激情小说| 日韩一区二区三区av| 北条麻妃国产九九精品视频| 亚洲一区二区三区国产| 日韩精品资源二区在线| 成人h版在线观看| 午夜精品一区二区三区免费视频| 日韩免费看的电影| 国产一区二区三区在线看麻豆| 亚洲欧美日韩国产一区二区三区| 在线观看国产精品网站| 午夜精品久久久久久不卡8050| 精品国产伦一区二区三区免费| 99久久精品国产一区| 日韩和欧美的一区| 国产亚洲午夜高清国产拍精品| 91亚洲国产成人精品一区二三| 热久久免费视频| 中文字幕亚洲成人| 4438成人网| 91在线你懂得| 麻豆成人91精品二区三区| 国产精品乱码人人做人人爱| 欧美日韩的一区二区| 国产一区视频网站| 亚洲精品乱码久久久久久黑人| 欧美性视频一区二区三区| 美女一区二区三区在线观看| 亚洲天堂网中文字| 91精品福利在线一区二区三区| 91美女精品福利| 岛国av在线一区| 国产在线精品视频| 亚洲成人自拍网| 国产日产亚洲精品系列| 欧美人妖巨大在线| 99久久免费视频.com| 国内国产精品久久| 美女脱光内衣内裤视频久久影院| 亚洲一区二区偷拍精品| 国产精品网站一区|