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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

jieba模块

發布時間:2023/12/10 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jieba模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jieba

做最好的 Python 中文分詞組件

文章目錄

  • jieba
    • 特點
    • 主要功能
      • 分詞
      • 添加自定義詞典
        • 載入詞典
      • 基于 TF-IDF 算法的關鍵詞抽取
      • 并行分詞
      • 詞語在原文的位置
      • 延遲加載
      • 命令分詞

特點

  • 支持三種分詞模式:
    • 精確模式:將句子最精確地切開,適合文本分析
    • 全模式:將句子中所有的可以成詞的詞語都掃描出來,速度很快,但是不能解決歧義
    • 搜索引擎模式:在精確的基礎上,對長詞再次切分,提高召回率,適用于搜索引擎分詞
  • 支持繁體分詞
  • 支持自定義詞典

主要功能

分詞

  • jieba.cut:接受三個輸參數:需要分詞的字符串;cut_all參數來控制是否采用全模式(默認精確模式);HMM 參數用來控制是否使用 HMM 模型。
  • jieba.cut_for_search:接受兩個參數:需要分詞的字符串;使用使用 HMM 模型,該方法適合用于搜索引擎的構建倒排索引的分詞,粒度比較細。

注意:

  • 待分詞的字符串可以是 unicode 、 UTF8 、GBK字符串 。
  • jieba.cut 和 jieba.cut_for_search 返回的結構都是一個可迭代的 generator ,用for循環來獲取分詞后的詞語(unicode)。
  • jieba.lcut 和 jieba.lcut_for_search 直接返回list。
  • import jiebaseg_list = jieba.cut("我來到北京清華大學", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式seg_list = jieba.cut("我來到北京清華大學", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精確模式seg_list = jieba.cut("他來到了網易杭研大廈") # 默認是精確模式 print(", ".join(seg_list))seg_list = jieba.cut_for_search("小明碩士畢業于中國科學院計算所,后在日本京都大學深造") # 搜索引擎模式 print(", ".join(seg_list))

    添加自定義詞典

    載入詞典

    • 指定自己自定義的詞典,來補充jieba詞庫里沒有的詞。
    • 用法:jieba.load_userdict(file_name) file_name 文件對象或路徑
    • 詞典格式,一個詞占一行;一行分為三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不能顛倒。file_name 若為路徑或二進制打開,文件必須為UTF-8編碼。
    # userdict.text文件 云計算 5 李小福 2 nr import jieba jieba.load_userdict("userdict.txt") # 加載字典 jieba.add_word('八一雙鹿') # 加載單詞 demo = '李小福是創新辦主任也是云計算方面的專家; 什么是八一雙鹿' words = jieba.cut(demo) print('/'.join(words))
  • 使用add_word 和 del_word 可以動態修改詞典。
  • 基于 TF-IDF 算法的關鍵詞抽取

    • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
      • sentence:待提取的文本
      • topK:為返回幾個TF-IDF權重的關鍵詞
      • withWeight:是否一并返回關鍵詞權重
      • allowPOS:僅包括指定詞性的詞
    • jieba.analyse.TFIDF(idf_path=None) 新建TF-IDF實例,為IDF頻率文件

    并行分詞

    原理:將目標文件按行分隔后,把各行文本分配到多個Python進程,然后歸并結果,從而獲得分詞速度提升
    基于 Python 自帶的 multiprocessing 模塊

    • jieba.enable_parallel(4) 開啟并行分詞模式,參數為并行進程數
    • jieba.disable_parallel() 關閉并行分詞模式

    **注意:**并行分詞僅支持默認分詞器 jieba.dt 和 jieba.posseg.dt。

    import time import jiebajieba.enable_parallel(1) # 創建1個線程content = open('./1.txt',"rb").read()t1 = time.time() words = "/ ".join(jieba.cut(content)) t2 = time.time()log_f = open("1.log","wb") log_f.write(words.encode('utf-8'))print('speed %s bytes/second' % (len(content)/t2-t1))

    詞語在原文的位置

    • 只接受unicode
    # 默認模式 result = jieba.tokenize(u'永和服裝飾品有限公司') for tk in result:print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2])) # 搜索模式 result = jieba.tokenize(u'永和服裝飾品有限公司', mode='search') for tk in result:print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

    延遲加載

    jieba 加載采用延遲加載,import jieba 和 jieba.Tokenizer() 不會立即觸發詞典的加載,一旦有必要才開始加載詞典構建前綴字典。如果你想手工初始 jieba,也可以手動初始化。

    import jieba jieba.initialize() # 手動初始化(可選)

    命令分詞

    python -m jieba news.txt > cut_result.txt

    總結

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

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