Keyphrase Extraction Algorithm
項目地址:https://github.com/JackHCC/Chinese-Keyphrase-Extraction
無監(jiān)督學(xué)習(xí):中文關(guān)鍵詞抽?。↘eyphrase Extraction),基于LDA與PageRank(TextRank, TPR, Salience Rank, Single TPR)
英文Keyphrase Extraction參考:https://github.com/JackHCC/Keyphrase-Extraction
Introduction
| Algorithm | Intro | ref |
|---|---|---|
| TextRank | 將PageRank應(yīng)用于文本關(guān)鍵詞抽取 | paper |
| TPR | 首次將主題(Topic)信息整合到 PageRank 計算的公式中 | paper |
| Single TPR | 單詞迭代計算的Topic PageRank | paper |
| Salience Rank | 引入顯著性的Topic PageRank | paper |
Dependencies
- sklearn
- jieba==0.42.1
- networkx==2.5
- numpy==1.20.1
- pandas==1.2.4
- matplotlib==3.3.4
- queue==0.6.3
File
-
main.py:主程序入口 -
process.py:數(shù)據(jù)預(yù)處理和配置加載 -
lda.py:潛在迪利克雷分配 -
ranks.py:Topic PageRank算法實現(xiàn) -
utils.py:工具函數(shù)
Data
本項目采用新浪新聞8個領(lǐng)域(體育,娛樂,彩票,房產(chǎn),教育,游戲,科技,股票)的新聞數(shù)據(jù)共800條作為實驗數(shù)據(jù)。
數(shù)據(jù)集位于data/data.xlsx下,由兩列組成,第一列content存放新聞標題和新聞的正文內(nèi)容,第二列是type是該新聞的話題類型。
在模型訓(xùn)練過程只需要利用excel文件中的content列,第二列是根據(jù)提取的關(guān)鍵詞來衡量提取的準確性。
如何使用自己的數(shù)據(jù)
按照data.xlsx的數(shù)據(jù)格式放置你的數(shù)據(jù),只需要content列即可。
Config
config目錄下可以配置:
-
jieba分詞庫的自定義詞典jieba_user_dict.txt,具體參考:Jieba - 添加停用詞(stopwords)
stop_words.txt - 添加詞性配置
POS_dict.txt,即設(shè)置提取最終關(guān)鍵詞的詞性篩選,具體詞性表參考:詞性表
Usage
Install
git clone https://github.com/JackHCC/Chinese-Keyphrase-Extraction.git
cd Chinese-Keyphrase-Extraction
pip install -r requirements.txt
Run
# TextRank
python main.py --alg text_rank
# TPR
python main.py --alg tpr
# Single TPR
python main.py --alg single_tpr
# Salience Rank
python main.py
Custom
python main.py --alg salience_rank --data ./data/data.xlsx --topic_num 10 --top_k 20 --alpha 0.2
-
alg:選擇Top PageRank算法,提供四種選擇:text_rank,tpr,single_tpr,salience_rank -
data:訓(xùn)練數(shù)據(jù)集路徑 -
topic_num:確定潛在迪利克雷分配的主題數(shù)量 -
top_k:每個文檔提取關(guān)鍵詞的數(shù)量 -
alpha:salience_rank算法的超參數(shù),用于控制語料庫特異性和話題特異性之間的權(quán)衡,取值位于0到1之間,越趨近于1,話題特異性越明顯,越趨近于0,語料庫特異性越明顯
Result
- TextRank前十條數(shù)據(jù)提取關(guān)鍵詞結(jié)果
0 : 訓(xùn)練;大雨;球員;隊員;隊伍;雨水;熱身賽;事情;球隊;全隊;國奧;影響;情況;比賽;傷病
1 : 戰(zhàn)術(shù);姑娘;首戰(zhàn);比賽;過程;記者;主帥;交鋒;信心;剪輯;將士;軟肋;世界杯;夫杯;遭遇
2 : 冠軍;活動;女士;文靜;游戲;抽獎;俱樂部;眼鏡;大獎;特等獎;獎品;現(xiàn)場;環(huán)節(jié);教練;球隊
3 : 俱樂部;球員;工資;危機;宏運;球隊;獎金;管理;老隊員;教練;笑里藏刀;前提;集體;集團;經(jīng)驗
4 : 警方;立案偵查;總局;產(chǎn)業(yè);電話;足球;外界;消息;公安部門;依法;中體;主席;裁判;檢察機關(guān);委員會
5 : 比賽;鹿隊;機會;命中率;隊員;聯(lián)賽;調(diào)整;開賽;壓力;包袱;外援;主場;狀態(tài);體育訊;金隅
6 : 火箭;球隊;比賽;原因;時間;效率;開局;事實;教練組;變化;軌道;過程;漫長;判斷能力;時機
7 : 勝利;球隊;隊友;火箭;籃板;比賽;關(guān)鍵;墊底;句式;小牛;新浪;戰(zhàn)績;體育訊;活塞;時間
8 : 火箭;交易;活塞;球隊;球員;情況;籌碼;價值;命運;市場;續(xù)約;掘金;遭遇;球星;核心
9 : 湖人;比賽;球隊;后衛(wèi);揭幕戰(zhàn);沙農(nóng);時間;出場;陣容;板凳;火力;外線;念頭;貢獻;證明
10 : 公牛;球員;球隊;教練;數(shù)據(jù);比賽;能力;體系;主教練;命中率;交流;研究;水平;記者;小時
- 最終提取結(jié)果寫入excel表格中,具體在
result目錄下。
Reference
- Text Rank: Mihalcea and Tarau. 2004. Textrank: Bringing order into texts.
- TPR: Liu et al. 2010. Automatic keyphrase extraction via topic decomposition.
- Single TPR: Sterckx et al. 2015. Topical word importance for fast keyphrase extraction.
- Salience Rank: Nedelina et al . 2017.Salience Rank: Efficient Keyphrase Extraction with Topic Modeling.