日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NLP jieba分词源码解析

發布時間:2024/10/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NLP jieba分词源码解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目的

分析jieba如何從句子中拆分詞的

預備知識

  • xxx
  • jieba api

    jieba提供三種分詞方式

    if cut_all: # 123cut_block = self.__cut_allelif HMM: # 123cut_block = self.__cut_DAGelse: # 123cut_block = self.__cut_DAG_NO_HMM

    流程

  • 建立圖(dag)
  • 根據圖來計算如何切分
  • 圖的原理

    圖是如何建立的

    只有在詞頻表里的詞才會記錄下來,儲存上對應的index作為圖

    def get_DAG(self, sentence):self.check_initialized() # 初始化一下DAG = {} # 圖其實就是一個dict[int, list[int]]N = len(sentence)for k in xrange(N):tmplist = [] # 用來存儲是詞的索引i = kfrag = sentence[k]while i < N and frag in self.FREQ:if self.FREQ[frag]: # FREQ是一個dict[str, int],這個是提前load進來的詞頻表,可以根據自己的需求更改tmplist.append(i)i += 1frag = sentence[k:i + 1]if not tmplist:tmplist.append(k)DAG[k] = tmplistreturn DAG

    第一種分詞邏輯,直接遍歷出詞

    def __cut_all(self, sentence):dag = self.get_DAG(sentence)old_j = -1eng_scan = 0eng_buf = u''for k, L in iteritems(dag):if eng_scan == 1 and not re_eng.match(sentence[k]):eng_scan = 0yield eng_bufif len(L) == 1 and k > old_j:word = sentence[k:L[0] + 1]if re_eng.match(word):if eng_scan == 0:eng_scan = 1eng_buf = wordelse:eng_buf += wordif eng_scan == 0:yield wordold_j = L[0]else:for j in L:if j > k:yield sentence[k:j + 1]old_j = jif eng_scan == 1:yield eng_buf

    第二種HMM

  • 也是先做一個圖
  • 計算一個路徑,那么問題是路徑是干什么的,如何計算路徑
  • def __cut_DAG(self, sentence):DAG = self.get_DAG(sentence)route = {}self.calc(sentence, DAG, route) # 這里就是計算路徑x = 0buf = ''N = len(sentence)while x < N:y = route[x][1] + 1l_word = sentence[x:y]if y - x == 1:buf += l_wordelse:if buf:if len(buf) == 1:yield bufbuf = ''else:if not self.FREQ.get(buf):recognized = finalseg.cut(buf)for t in recognized:yield telse:for elem in buf:yield elembuf = ''yield l_wordx = yif buf:if len(buf) == 1:yield bufelif not self.FREQ.get(buf):recognized = finalseg.cut(buf)for t in recognized:yield telse:for elem in buf:yield elem
    route
    def calc(self, sentence, DAG, route): # route是一個dict[int, tuple[int, int]],是索引所對應的N = len(sentence)route[N] = (0, 0)logtotal = log(self.total)for idx in xrange(N - 1, -1, -1):route[idx] = max((log(self.FREQ.get(sentence[idx:x + 1]) or 1) -logtotal + route[x + 1][0], x) for x in DAG[idx])

    ref

    jieba分詞流程之DAG、Route

    總結

    以上是生活随笔為你收集整理的NLP jieba分词源码解析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久婷婷网站 | 99热18| 四虎黄色 | 欧美性jizz18性欧美 | 中文字幕在线观看1 | 麻豆久久久久 | 色男人的天堂 | 日本久久久久 | 久久国语对白 | 国产伦精品一区二区三区高清版禁 | www.欧美国产 | 熟妇高潮一区二区三区 | 欧美性猛交久久久乱大交小说 | 国产三级91 | 毛片在哪里看 | 国产高潮视频 | 动漫美女视频 | 国产又粗又猛又爽视频 | 国产午夜精品免费一区二区三区视频 | 日韩国产欧美一区 | 欧美第一页浮力影院 | 久久亚洲免费视频 | 欧美日韩亚洲系列 | 青青草原国产视频 | 99精品视频在线观看免费 | 黄色在线不卡 | 性欧美精品中出 | 欧美性受xxxx狂喷水 | 亚洲色偷偷综合亚洲av伊人 | 久久bb | 在线观看国产成人 | www.av.cn | 国产精品乱码一区二区三区 | 卡通动漫精品一区二区三区 | 私人网站 | 国产天堂精品 | 伊人色综合网 | 79日本xxxxxxxxx18 婷婷亚洲一区 | 韩日精品中文字幕 | 久久久久综合 | 无码成人一区二区 | 四虎网址在线 | 天天插天天狠天天透 | 日本一区二区在线免费观看 | 国产九九精品视频 | 国产浮力第一页 | 亚洲天堂2013 | 理论片午夜 | 日本涩涩视频 | av中出| 亚洲图区综合 | 午夜操一操 | av福利在线免费观看 | 一级福利视频 | www.天天综合 | 黄色99| 精品美女一区二区三区 | 日本免费一区二区三区四区 | 国产毛片91| 久久精品性爱视频 | 国产精品久久AV无码 | 日本一区二区三区视频在线观看 | 黄色a在线观看 | 成人美女毛片 | 免费看日韩 | 日韩性高潮| 2021av| 师生出轨h灌满了1v1 | 78m78成人免费网站 | 国产精品30p | a级一级黄色片 | www色中色 | 2019年中文字幕 | 亚洲精品免费看 | 午夜手机福利 | 国产精品99久久久久久久久久久久 | 亚洲91av | 欧美一区二区在线视频 | 女人舌吻男人茎视频 | 欧美高清视频一区二区 | 婷婷综合在线视频 | 夜夜骑夜夜| 青青草原av | 亚洲图片一区 | 亚洲20p | 天天综合视频 | 欲涩漫入口免费网站 | 在线看av网址 | 国产精品久久婷婷 | 一区二区一级片 | 亚洲一级影院 | 伊人激情| 91天堂素人 | 欧美亚洲图片小说 | 人妻少妇精品中文字幕av蜜桃 | 伊伊综合网| 毛片内射久久久一区 | 欧美色图国产精品 | 国产在线视频99 |