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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

中文分词中的战斗机-jieba库

發布時間:2025/3/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中文分词中的战斗机-jieba库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

英文分詞的第三方庫NLTK不錯,中文分詞工具也有很多(盤古分詞、Yaha分詞、Jieba分詞等)。但是從加載自定義字典、多線程、自動匹配新詞等方面來看。
大jieba確實是中文分詞中的戰斗機

請隨意觀看表演

  • 安裝
  • 分詞
  • 自定義詞典
  • 延遲加載
  • 關鍵詞提取
  • 詞性標注
  • 詞語定位
  • 內部算法

安裝

  • 使用pip包傻瓜安裝:py -3 -m pip install jieba / pip install jiba(windows下推薦第一種,可以分別安裝python2和3對應jieba)
  • pypi下載地址
  • 分詞

    3種模式

  • 精確模式:試圖將句子最精確地切開,適合文本分析
  • 全模式:把句子中所有的可以成詞的詞語都掃描出來(速度快)
  • 搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞
  • 實現方式

  • 精確模式:jieba.cut(sen)
  • 全模式:jieba.cut(sen,cut_all=True)
  • 搜索引擎模式:jieba.cut_for_search(sen)
  • import jieba sen = "我愛深圳大學" sen_list = jieba.cut(sen) sen_list_all = jieba.cut(sen,cut_all=True) sen_list_search = jieba.cut_for_search(sen) for i in sen_list:print(i,end=" ") print() for i in sen_list_all:print(i,end=" ") print() for i in sen_list_search:print(i,end=" ") print()

    結果:附截圖

    自定義詞典

    創建方式

    • 后綴:txt
    • 格式:詞語( 權重 詞性 )
    • 注意事項:
    • windows下txt不能用自帶的編輯器,否則會亂碼??梢杂肰SCODE,或者其他編輯器
    • 可以只有詞語
    • 在沒有權重的情況下,只有比默認詞典長的詞語才可以加載進去。附截圖

    加載字典

    jieba.load_userdict(txtFile)

    調整字典

    添加詞:jieba.add_word(word,freq=None,tag=None)

    刪除詞:jieba.del_word(word)

    import jieba sen = "膠州市市長江大橋" sen_list = jieba.cut(sen) for i in sen_list:print(i,end=" ") print() 膠州市 市 長江大橋 jieba.add_word('江大橋',freq=20000) sen_list = jieba.cut(sen) for i in sen_list:print(i,end=" ") print()

    結果附截圖

    改變主字典

    • 占用內存較小的詞典文件
    • 支持繁體分詞更好的詞典文件
    • 加載方法:jieba.set_dictionary('data/dict.txt.big')

    延遲加載

    之前發現,詞典不是一次性加載的,說明它采用的是延遲加載。即:當遇到應用的時候才會加載。有點類似于python高級特性中的 yield (節省內存)

    效果圖如下:

    • 手動加載的方法:jieba.initialize()

    關鍵詞提取

    jieba.analyse.extract_tags(sentence,topK=20):返回topK個TF/IDF權重最大的詞語

    import jieba.analyse sen_ana = jieba.analyse.extract_tags(sen,3) for i in sen_ana:print(i) 江大橋 膠州市 市長

    詞性標注

    jieba.posseg.cut(sen):返回的每個迭代對象有兩個屬性-> word 詞語 + flag 詞性

    import jieba.posseg words = jieba.posseg.cut(sen) for word in words:print(word.flag," ",word.word) ns 膠州市 n 市長 x 江大橋

    詞語定位

    jieba.tokenize(sen,mode):mode可以設置為search,開啟搜索模式

    index= jieba.tokenize(sen) for i in index:print(i[0],"from",i[1],"to",i[2]) 膠州市 from 0 to 3 市長 from 3 to 5 江大橋 from 5 to 8

    內部算法

  • 基于Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)
  • 采用了動態規劃查找最大概率路徑, 找出基于詞頻的最大切分組合
  • 對于未登錄詞,采用了基于漢字成詞能力的HMM模型,使用了Viterbi算法。
  • 參考文獻

    • python中jieba分詞快速入門
    • 使用Jieba工具中文分詞及文本聚類概念

    轉載于:https://www.cnblogs.com/AsuraDong/p/jieba.html

    總結

    以上是生活随笔為你收集整理的中文分词中的战斗机-jieba库的全部內容,希望文章能夠幫你解決所遇到的問題。

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