Python之jieba分詞使用技巧

Python之jieba分詞使用技巧

使用方法都寫在程序裏面的註釋中,請盡情享用,如果您覺得不錯可以點個贊哦🙂
代碼如下:

# -*- coding:utf-8 -*-
"""jieba庫支持三種分詞模式:精確模式、全模式和搜索引擎模式
下面是三種模式的特點:
精確模式:試圖將語句最精確的切分,不存在冗餘數據,適合做文本分析
全模式:將語句中所有可能是詞的詞語都切分出來,速度很快,但是存在冗餘數據
搜索引擎模式:在精確模式的基礎上,對長詞再次進行切分
"""
import jieba

__author__ = 'Evan'


def jieba_example():
    # 三種模式
    seg_str = "好好學習,天天向上。"
    print('精確模式:{}'.format(jieba.lcut(seg_str)))  # 精確模式,返回一個列表類型的結果
    print('全模式:{}'.format(jieba.lcut(seg_str, cut_all=True)))  # 全模式,使用 'cut_all=True' 指定
    print('搜索引擎模式:{}'.format(jieba.lcut_for_search(seg_str)))  # 搜索引擎模式

    # 統計中文詞頻
    txt = """七禽孟獲三國中期,蜀國佔據西蜀一帶,這時南方孟獲作亂。諸葛亮出征南蠻孟獲,爲了收買人心,七次俘獲孟獲而又其次將其釋放。第七次釋放孟獲的時候,孟獲終於歸順蜀國,諸葛亮平定了南方。
空城計三國中後期,諸葛亮出兵討伐魏國,由於要地街亭失守,導致滿盤皆輸。諸葛亮被迫撤兵,司馬懿大軍追至,這時孔明手下的將領士兵基本都分配軍務調完了,只剩二千五百軍在城中。於是他命令偃旗息鼓,大開城門,獨自在城樓上彈琴。司馬懿疑心有伏兵。調頭就撤兵。諸葛亮躲過一劫!
失街亭就是在空城計之前了,馬謖自告奮勇去守街亭,結果犯了低級錯誤。被司馬懿打敗。蜀軍被斷了咽喉之路。被迫撤兵。
斬馬謖馬謖失了街亭。諸葛亮非常生氣。想起了劉備臨死前囑咐他的話“吾觀馬謖,言過其實也”。後悔不已。悲痛了斬了立了軍令狀的馬謖。
    """
    words = jieba.lcut(txt)  # 使用精確模式對文本進行分詞
    counts = {}  # 通過鍵值對的形式存儲詞語及其出現的次數
    for word in words:
        if len(word) == 1:  # 單個詞語不計算在內
            continue
        else:
            counts[word] = counts.get(word, 0) + 1  # 遍歷所有詞語,每出現一次其對應的值加 1
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)  # 根據詞語出現的次數進行從大到小排序
    print('統計中文詞頻:{}'.format(items))

    # 統計英文單詞詞頻
    def get_text():
        article = """Nothing succeeds like confidence.When you are truly confident,it radiates from you like sunlight,
        and attracts success to you like a magnet.
        """
        article = article.lower()
        for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
            article = article.replace(ch, " ")  # 將文本中特殊字符替換爲空格
        return article
    file_txt = get_text()
    words = file_txt.split()  # 對字符串進行分割,獲得單詞列表
    counts = {}
    for word in words:
        if len(word) == 1:  # 單個詞語不計算在內
            continue
        else:
            counts[word] = counts.get(word, 0) + 1  # 遍歷所有詞語,每出現一次其對應的值加 1
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)  # 根據詞語出現的次數進行從大到小排序
    print('統計英文單詞詞頻:{}'.format(items))


if __name__ == '__main__':
    jieba_example()

執行結果:

精確模式:['好好學習', ',', '天天向上', '。']
全模式:['好好', '好好學', '好好學習', '好學', '學習', '', '', '天天', '天天向上', '向上', '', '']
搜索引擎模式:['好好', '好學', '學習', '好好學', '好好學習', ',', '天天', '向上', '天天向上', '。']
統計中文詞頻:[('孟獲', 6), ('諸葛亮', 6), ('街亭', 3), ('撤兵', 3), ('司馬懿', 3), ('馬謖', 3), ('三國', 2), ('蜀國', 2), ('這時', 2), ('南方', 2), ('釋放', 2), ('空城計', 2), ('被迫', 2), ('七禽', 1), ('中期', 1), ('佔據', 1), ('西蜀', 1), ('一帶', 1), ('作亂', 1), ('出征', 1), ('南蠻', 1), ('爲了', 1), ('收買人心', 1), ('七次', 1), ('俘獲', 1), ('其次', 1), ('第七次', 1), ('時候', 1), ('終於', 1), ('歸順', 1), ('平定', 1), ('中後期', 1), ('出兵', 1), ('討伐', 1), ('魏國', 1), ('由於', 1), ('失守', 1), ('導致', 1), ('滿盤皆輸', 1), ('大軍', 1), ('追至', 1), ('孔明', 1), ('手下', 1), ('將領', 1), ('士兵', 1), ('基本', 1), ('分配', 1), ('軍務', 1), ('調完', 1), ('二千五百', 1), ('軍在', 1), ('城中', 1), ('於是', 1), ('命令', 1), ('偃旗息鼓', 1), ('大開', 1), ('城門', 1), ('獨自', 1), ('城樓', 1), ('彈琴', 1), ('疑心', 1), ('伏兵', 1), ('調頭', 1), ('躲過一劫', 1), ('失街亭', 1), ('就是', 1), ('之前', 1), ('自告奮勇', 1), ('結果', 1), ('低級', 1), ('錯誤', 1), ('打敗', 1), ('蜀軍', 1), ('咽喉', 1), ('斬馬謖', 1), ('非常', 1), ('生氣', 1), ('想起', 1), ('劉備', 1), ('臨死前', 1), ('囑咐', 1), ('的話', 1), ('觀馬謖', 1), ('言過其實', 1), ('後悔不已', 1), ('悲痛', 1), ('軍令狀', 1)]
統計英文單詞詞頻:[('like', 3), ('you', 3), ('nothing', 1), ('succeeds', 1), ('confidence', 1), ('when', 1), ('are', 1), ('truly', 1), ('confident', 1), ('it', 1), ('radiates', 1), ('from', 1), ('sunlight', 1), ('and', 1), ('attracts', 1), ('success', 1), ('to', 1), ('magnet', 1)]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章