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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jieba 使用笔记

發(fā)布時(shí)間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jieba 使用笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jieba 使用筆記

  • 初始化
  • 分詞 jieba.cut(sentence, cut_all , HMM)
  • 自定義詞典
  • 詞性標(biāo)注
  • 關(guān)鍵詞提取
  • Tokenize:返回詞語(yǔ)在原文的起止位置
  • ChineseAnalyzer for Whoosh 搜索引擎

安裝: pip 即可

初始化

import jieba import jieba.posseg # 詞性標(biāo)注 import jieba.analyse # 關(guān)鍵詞 from jieba.analyse import ChineseAnalyzer # 搜索引擎 # jieba.initialize() # 手動(dòng)初始化(可選)

分詞 jieba.cut(sentence, cut_all , HMM)

cut_all= 參數(shù)用來(lái)控制分詞模式 False 為精確模式 True為全模式
HMM= 參數(shù)用來(lái)控制是否使用 HMM 模型用于新詞發(fā)現(xiàn)
jieba提供3種分詞模式:

  • 精確模式,試圖將句子最精確地切開(kāi),適合文本分析;
  • 全模式,把句子中所有的可以成詞的詞語(yǔ)都掃描出來(lái), 速度非常快,但是不能解決歧義;
  • 搜索引擎模式,在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分,提高召回率,適合用于搜索引擎分詞。
    并行分詞(不支持win)
    jieba.enable_parallel(2) # 開(kāi)啟并行分詞模式,參數(shù)為并行進(jìn)程數(shù)
    jieba.disable_parallel() # 關(guān)閉并行分詞模式
    cut/cut_for_search 返回 generator
    lcut/lcut_for_search 返回 list
    為print更清晰 易于比較 使用 str.ljust()/center()/rjust()函數(shù)實(shí)現(xiàn)輸出的字符串左對(duì)齊、居中、右對(duì)齊
  • default = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源他來(lái)到了網(wǎng)易杭研大廈') # 默認(rèn)模式 默認(rèn)cut_all=False, HMM=True hmm = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源他來(lái)到了網(wǎng)易杭研大廈', cut_all=False, HMM=True)accurate = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源他來(lái)到了網(wǎng)易杭研大廈', cut_all=False, HMM=False) # 精確模式 full = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源', cut_all=True) # 全模式 search = jieba.cut_for_search('在南京市長(zhǎng)江大橋研究生命的起源') # 搜索引擎模式default_list = jieba.lcut('在南京市長(zhǎng)江大橋研究生命的起源') # 返回list search_list = jieba.lcut_for_search('在南京市長(zhǎng)江大橋研究生命的起源')# jieba.Tokenizer(dictionary=) # 新建分詞器 print('default'.rjust(15), "/".join(default)) print('hmm'.rjust(15), "/".join(hmm))print('accurate'.rjust(15), "/".join(accurate))print('full'.rjust(15), "/".join(full)) print('search'.rjust(15), "/".join(search))print('default_list'.rjust(15), default_list) print('search_list'.rjust(15), search_list)

    自定義詞典

    詞典格式:
    一詞一行 一行:詞語(yǔ) 詞頻(可省)詞性(可省) 空格分隔 順序不可顛倒 UTF-8編碼

    華能 3 nz 云泥 ns 河勢(shì) n 廟溝 ns

    使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中動(dòng)態(tài)修改詞典。
    使用 suggest_freq(segment, tune=True) 可調(diào)節(jié)單個(gè)詞語(yǔ)的詞頻,使其能(或不能)被分出來(lái)。
    注意:自動(dòng)計(jì)算的詞頻在使用 HMM 新詞發(fā)現(xiàn)功能時(shí)可能無(wú)效。

    jieba.load_userdict('../Data/dict/30wChinsesSeqDic_clean.txt') jieba.add_word('加入自定義詞') test_sent1 = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源和加入自定義詞') print('test_sent1', "/".join(test_sent1)) jieba.del_word('加入自定義詞') test_sent2 = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源和加入自定義詞') print('test_sent2', "/".join(test_sent2)) jieba.suggest_freq('研究生命', True) test_sent3 = jieba.cut('在南京市長(zhǎng)江大橋研究生命的起源和加入自定義詞') print('test_sent3', "/".join(test_sent3))

    詞性標(biāo)注

    jieba.posseg.POSTokenizer(tokenizer=None) 新建自定義分詞器,tokenizer 參數(shù)可指定內(nèi)部使用的 jieba.Tokenizer 分詞器。jieba.posseg.dt 為默認(rèn)詞性標(biāo)注分詞器。
    標(biāo)注句子分詞后每個(gè)詞的詞性,采用和 ictclas 兼容的標(biāo)記法。
    返回 generator

    words = jieba.posseg.cut('在南京市長(zhǎng)江大橋研究生命的起源') [print(word, flag) for word, flag in words]

    關(guān)鍵詞提取

    兩種方式:

  • TF-IDF :
    jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    sentence 為待提取的文本
    topK 為返回幾個(gè) TF/IDF 權(quán)重最大的關(guān)鍵詞,默認(rèn)值為 20
    withWeight 為是否一并返回關(guān)鍵詞權(quán)重值,默認(rèn)值為 False
    allowPOS 僅包括指定詞性的詞,默認(rèn)值為空,即不篩選
    jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實(shí)例,idf_path 為 IDF 頻率文件
  • TextRank :
    jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’))
    直接使用,接口相同,注意默認(rèn)過(guò)濾詞性。
    jieba.analyse.TextRank() 新建自定義 TextRank 實(shí)例
  • tf_tags = jieba.analyse.extract_tags('在南京市長(zhǎng)江大橋研究生命的起源', topK=5, withWeight=True, allowPOS=()) [print(keyword, withWeight) for keyword, withWeight in tf_tags] print('\n') # jieba.analyse.set_idf_path('file_name') # file_name為自定義 逆向文件頻率(IDF)文本語(yǔ)料庫(kù) 的路徑 # jieba.analyse.set_stop_words(file_name) # file_name為自定義 停止詞(Stop Words)文本語(yǔ)料庫(kù) 的路徑 tr_tags = jieba.analyse.textrank('在南京市長(zhǎng)江大橋研究生命的起源', topK=5, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v')) [print(keyw, Weight) for keyw, Weight in tr_tags]

    Tokenize:返回詞語(yǔ)在原文的起止位置

    注意,輸入?yún)?shù)只接受 unicode
    有默認(rèn)模式與搜索模式

    words_locat = jieba.tokenize('研究生命起源', mode='default', HMM=False) [print("word %s\t\t start: %d \t\t end:%d" % (w[0].rjust(10), w[1], w[2])) for w in words_locat]words_locat_search = jieba.tokenize('研究生命起源', mode='search', HMM=False) [print("word %s\t\t start: %d \t\t end:%d" % (w[0].rjust(10), w[1], w[2])) for w in words_locat_search]

    ChineseAnalyzer for Whoosh 搜索引擎

    簡(jiǎn)單測(cè)試下

    analyzer = ChineseAnalyzer() [print(t.text) for t in analyzer("在南京市長(zhǎng)江大橋研究生命的起源")] print(analyzer) # Out[] # CompositeAnalyzer(ChineseTokenizer(), LowercaseFilter(), StopFilter(stops=frozenset({'that', 'or', 'with', 'for', 'if', '了', 'and', 'a', 'you', 'have', 'from', 'is', 'may', 'in', 'we', 'as', 'of', 'us', 'tbd', 'when', 'by', 'it', 'this', 'on', 'can', 'the', 'yet', 'not', 'at', '和', 'an', 'are', 'to', 'your', 'will', '的', 'be'}), min=1, max=None, renumber=True), StemFilter(stemfn=<function stem at 0x00000198D106F510>, lang=None, ignore=frozenset(), cachesize=50000, _stem=<function stem at 0x00000198D1090EA0>))

    總結(jié)

    以上是生活随笔為你收集整理的jieba 使用笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。