jieba--做最好用的中文分片語件詳解【3】
阿新 • • 發佈:2018-12-22
寫在最前面:
null
基於TF-IDF演算法的關鍵詞抽取
import jieba.analyse
jieba.analyse.extract_tags(句子,topK = 20,withWeight = False,allowPOS =())- 句為待提取的文字
- topK為返回幾個TF / IDF權重最大的關鍵詞,預設值為20
- withWeight為是否一併返回關鍵詞權重值,預設值為False
- allowPOS僅包括指定詞性的詞,預設值為空,即不篩選
- jieba.analyse.TFIDF(idf_path = None)新建TFIDF例項,idf_path為IDF頻率檔案
import jieba.analyse jieba.load_userdict("userdict.txt") test_sent = ( "習近平指出,黨的十八大以來,在新中國成立特別是改革開放以來我國發展取得的重大成就基礎上," "黨和國家事業發生歷史性變革,我國發展站到了新的歷史起點上,中國特色社會主義進入了新的發展階段。" "中國特色社會主義不斷取得的重大成就,意味著近代以來久經磨難的中華民族實現了從站起來、富起來到強起來的歷史性飛躍," "意味著社會主義在中國煥發出強大生機活力並不斷開闢發展新境界," "意味著中國特色社會主義拓展了發展中國家走向現代化的途徑,為解決人類問題貢獻了中國智慧、提供了中國方案。" "全黨要提高戰略思維能力,不斷增強工作的原則性、系統性、預見性、創造性,按照新要求制定黨和國家大政方針,完善發展戰略和各項政策,以新的精神狀態和奮鬥姿態把中國特色社會主義推向前進。" ) '''newwords = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True,allowPOS=()) print(newwords) print(len(newwords))''' tags = jieba.analyse.extract_tags(test_sent,topK = 100,withWeight=True) for i in tags: print(i[0],i[1])
社會主義 0.30347065067857143 特色 0.2494810583969524 中國 0.23065300469790476 重大成就 0.19999010038666665 黨和國家 0.17205987050514285 發展 0.17024116906857145 意味著 0.166825010784 歷史性 0.16414236044266667 不斷 0.13729106061942858 以來 0.13348870033542856 以新 0.11385492859904761 起來 0.11318115561571429 戰略思維 0.10872162859238095 預見性 0.10339195442190476 取得 0.10109781234819049 大政方針 0.09852694848095239 習近平 0.09439708195628572 原則性 0.09422232825466667 我國 0.09401383695733333 久經 0.09339364847380953 各項政策 0.09308136444695238 磨難 0.08881873022352382 煥發 0.08843387747742858 精神狀態 0.0877079025690476 全黨 0.08539241637 生機 0.08518905327971428 飛躍 0.08411212809295238 創造性 0.08146257258342857 推向 0.080151244938 奮鬥 0.07845444925561905 系統性 0.07698634754295239 中華民族 0.07695804496780953 十八 0.07599142126028571 境界 0.07581434665961904 改革開放 0.07459287679742857 姿態 0.07213836360780952 活力 0.07198624984047619 起點 0.07135379867542857 智慧 0.07039912871428572 變革 0.06999616492314285 拓展 0.06876021879228572 開闢 0.06722916357619048 發展中國家 0.06629927338980952 途徑 0.06503908845485715 前進 0.0642184968355238 現代化 0.0642110824252381 近代 0.06232151818685714 事業 0.0605467076692381 強大 0.06005038450590476 走向 0.05808065081647619 貢獻 0.05754320948904762 完善 0.05675601981971429 制定 0.05639370244485714 方案 0.05573532293628571 增強 0.05521127022466667 戰略 0.05478316176885714 人類 0.053625377044761904 解決 0.05085571831942857 階段 0.05067867730838095 成立 0.04868071007142857 指出 0.04839481708952381 按照 0.04784224015219048 能力 0.04700326741114286 基礎 0.04536410100495238 特別 0.04521671000828571 提高 0.045087473140761905 提供 0.04461101353257143 實現 0.04454028834847619 要求 0.043871883374000005 歷史 0.04384040545857143 進入 0.04344876173523809 發生 0.04141855788190476 工作 0.040026088974761904 問題 0.03774774831504762
這裡返回了20個權重最大的詞,並不區分詞性。
關鍵詞提取所使用逆向檔案頻率(IDF)文字語料庫可以切換成自定義語料庫的路徑
jieba.analyse.set_idf_path(file_name)#file_name為自定義語料庫的路徑
import jieba.analyse
jieba.load_userdict("userdict.txt")
jieba.analyse.set_idf_path("./jieba-master/extra_dict/idf.txt.big")
test_sent = (
"李小福是創新辦主任也是雲端計算方面的專家\n"
"時至今日,滑雪運動已經成為一項越來越受歡迎的運動專案\n"
"例如我輸入一個帶“韓玉賞鑑”的標題,在自定義詞庫中也增加了此詞為N類\n"
"「臺中」正確應該不會被切開。mac上可分出「石墨烯」;此時又可以分出來凱特琳了。"
)
'''newwords = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True,allowPOS=())
print(newwords)
print(len(newwords))'''
tags = jieba.analyse.extract_tags(test_sent,topK = 100,withWeight=True)
print(tags)
中國 0.9108394287923809
發展 0.569274642995238
社會主義 0.569274642995238
以來 0.34156478579714283
不斷 0.34156478579714283
起來 0.34156478579714283
特色 0.2494810583969524
我國 0.22770985719809522
取得 0.22770985719809522
黨和國家 0.22770985719809522
歷史性 0.22770985719809522
重大成就 0.19999010038666665
意味著 0.166825010784
指出 0.11385492859904761
十八 0.11385492859904761
成立 0.11385492859904761
改革開放 0.11385492859904761
基礎 0.11385492859904761
發生 0.11385492859904761
變革 0.11385492859904761
歷史 0.11385492859904761
起點 0.11385492859904761
近代 0.11385492859904761
久經 0.11385492859904761
磨難 0.11385492859904761
實現 0.11385492859904761
煥發 0.11385492859904761
強大 0.11385492859904761
生機 0.11385492859904761
活力 0.11385492859904761
境界 0.11385492859904761
拓展 0.11385492859904761
發展中國家 0.11385492859904761
現代化 0.11385492859904761
解決 0.11385492859904761
人類 0.11385492859904761
方案 0.11385492859904761
全黨 0.11385492859904761
戰略思維 0.11385492859904761
能力 0.11385492859904761
增強 0.11385492859904761
工作 0.11385492859904761
原則性 0.11385492859904761
預見性 0.11385492859904761
按照 0.11385492859904761
制定 0.11385492859904761
戰略 0.11385492859904761
以新 0.11385492859904761
奮鬥 0.11385492859904761
推向 0.11385492859904761
大政方針 0.09852694848095239
習近平 0.09439708195628572
各項政策 0.09308136444695238
精神狀態 0.0877079025690476
飛躍 0.08411212809295238
創造性 0.08146257258342857
系統性 0.07698634754295239
中華民族 0.07695804496780953
姿態 0.07213836360780952
智慧 0.07039912871428572
開闢 0.06722916357619048
途徑 0.06503908845485715
前進 0.0642184968355238
事業 0.0605467076692381
走向 0.05808065081647619
貢獻 0.05754320948904762
完善 0.05675601981971429
階段 0.05067867730838095
特別 0.04521671000828571
提高 0.045087473140761905
提供 0.04461101353257143
要求 0.043871883374000005
進入 0.04344876173523809
問題 0.03774774831504762
可以看出使用了自定義的語料庫後詞頻發生明顯變化。
先到這兒,一邊上英語課一邊寫的,晚上還有最優化,阿西吧