jieba入門2

import jieba


'''
添加自定義詞典
1、載入詞典:
    a、開發者可以指定自己自定義的詞典,以便包含 jieba 詞庫裏沒有的詞。雖然 jieba 有新詞識別能力,但是自行添加新詞可以保證更高的正確率
    b、用法: jieba.load_userdict(file_name),file_name 爲文件類對象或自定義詞典的路徑
    c、詞典格式和 dict.txt 一樣,一個詞佔一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。
       file_name 若爲路徑或二進制方式打開的文件,則文件必須爲 UTF-8 編碼。
    d、詞頻省略時使用自動計算的能保證分出該詞的詞頻。
'''

content = '李小福是創新辦主任也是雲計算方面的專家'
jieba.load_userdict('text.txt')
print('-'.join(jieba.cut(content, cut_all=False, HMM=True)))
# 李小福-是-創新辦-主任-也-是-雲計算-方面-的-專家

print(','.join(jieba.cut(content, cut_all=False, HMM=True)))
# 李小福-是-創新-辦-主任-也-是-雲-計算-方面-的-專家


'''
2、調整詞典
    a、使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中動態修改詞典。
    b、使用 suggest_freq(segment, tune=True) 可調節單個詞語的詞頻,使其能(或不能)被分出來。
    注意:自動計算的詞頻在使用 HMM 新詞發現功能時可能無效。
'''
print(','.join(jieba.cut('如果放到post中將出錯', HMM=False)))
# 如果,放到,post,中將,出錯

jieba.suggest_freq(('中', '將'), True)
print(','.join(jieba.cut('如果放到post中將出錯', HMM=False)))
# 如果,放到,post,中,將,出錯


'''
3、關鍵詞提取
    1、import jieba.analyse
        a、jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
            sentence 爲待提取的文本
            topK 爲返回幾個 TF/IDF 權重最大的關鍵詞,默認值爲 20
            withWeight 爲是否一併返回關鍵詞權重值,默認值爲 False
            allowPOS 僅包括指定詞性的詞,默認值爲空,即不篩選
        b、jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實例,idf_path 爲 IDF 頻率文件

    2、關鍵詞提取所使用逆向文件頻率(IDF)文本語料庫可以切換成自定義語料庫的路徑
    用法: jieba.analyse.set_idf_path(file_name)  # file_name爲自定義語料庫的路徑
    自定義語料庫示例:
        勞動防護 13.900677652
        勞動防護 13.900677652
        生化學 13.900677652
        生化學 13.900677652
        ......
    用法示例:
        jieba.analyse.set_idf_path("../extra_dict/idf.txt.big");
        tags = jieba.analyse.extract_tags(content, topK=topK)
        print(",".join(tags))

    3、關鍵詞提取所使用停止詞(Stop Words)文本語料庫可以切換成自定義語料庫的路徑
    用法: jieba.analyse.set_stop_words(file_name)  # file_name爲自定義語料庫的路徑
    自定義語料庫示例:
        the
        of
        is
        and
    用法示例:
    jieba.analyse.set_stop_words("../extra_dict/stop_words.txt")
    jieba.analyse.set_idf_path("../extra_dict/idf.txt.big");
    tags = jieba.analyse.extract_tags(content, topK=topK)
    print(",".join(tags))

    4、基於 TextRank 算法的關鍵詞抽取
    基本思想:
        a、將待抽取關鍵詞的文本進行分詞
        b、以固定窗口大小(默認爲5,通過span屬性調整),詞之間的共現關係,構建圖
        c、計算圖中節點的PageRank,注意是無向帶權圖
    jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默認過濾詞性。
    jieba.analyse.TextRank() 新建自定義 TextRank 實例

'''

'''
4、詞性標註
jieba.posseg.POSTokenizer(tokenizer=None) 新建自定義分詞器,tokenizer 參數可指定內部使用的 jieba.Tokenizer 分詞器。
jieba.posseg.dt 爲默認詞性標註分詞器。標註句子分詞後每個詞的詞性,採用和 ictclas 兼容的標記法。
用法示例:
import jieba.posseg as pseg

words = pseg.cut("我愛北京天安門")
for word, flag in words:
    print('%s %s' % (word, flag))
結果:
    我 r
    愛 v
    北京 ns
    天安門 ns  

'''

'''
5、Tokenize:返回詞語在原文的起止位置
    注意,輸入參數只接受 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]))
        結果:
        word 永和                start: 0                end:2
        word 服裝                start: 2                end:4
        word 飾品                start: 4                end:6
        word 有限公司            start: 6                end:10
    搜索模式:    
        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]))
        結果:
        word 永和                start: 0                end:2
        word 服裝                start: 2                end:4
        word 飾品                start: 4                end:6
        word 有限                start: 6                end:8
        word 公司                start: 8                end:10
        word 有限公司            start: 6                end:10

'''




編輯整理參考:https://blog.csdn.net/alis_xt/article/details/53522435














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章