Py之textrank4zh:textrank4zh的简介、安装、使用方法之详细攻略
Py之textrank4zh:textrank4zh的簡(jiǎn)介、安裝、使用方法之詳細(xì)攻略
?
?
?
目錄
textrank4zh的簡(jiǎn)介
原理
關(guān)鍵詞提取
關(guān)鍵短語提取
摘要生成
textrank4zh的安裝
textrank4zh的使用方法
?
?
?
textrank4zh的簡(jiǎn)介
? ? ? TextRank算法可以用來從文本中提取關(guān)鍵詞和摘要(重要的句子)。TextRank4ZH是針對(duì)中文文本的TextRank算法的python算法實(shí)現(xiàn)。
?
原理
TextRank的詳細(xì)原理請(qǐng)參考:
Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004.
關(guān)于TextRank4ZH的原理和使用介紹:使用TextRank算法為文本生成關(guān)鍵字和摘要
?
?
關(guān)鍵詞提取
將原文本拆分為句子,在每個(gè)句子中過濾掉停用詞(可選),并只保留指定詞性的單詞(可選)。由此可以得到句子的集合和單詞的集合。
每個(gè)單詞作為pagerank中的一個(gè)節(jié)點(diǎn)。設(shè)定窗口大小為k,假設(shè)一個(gè)句子依次由下面的單詞組成:
w1, w2, w3, w4, w5, ..., wnw1, w2, ..., wk、w2, w3, ...,wk+1、w3, w4, ...,wk+2等都是一個(gè)窗口。在一個(gè)窗口中的任兩個(gè)單詞對(duì)應(yīng)的節(jié)點(diǎn)之間存在一個(gè)無向無權(quán)的邊。
基于上面構(gòu)成圖,可以計(jì)算出每個(gè)單詞節(jié)點(diǎn)的重要性。最重要的若干單詞可以作為關(guān)鍵詞。
?
?
關(guān)鍵短語提取
參照關(guān)鍵詞提取提取出若干關(guān)鍵詞。若原文本中存在若干個(gè)關(guān)鍵詞相鄰的情況,那么這些關(guān)鍵詞可以構(gòu)成一個(gè)關(guān)鍵詞組。
例如,在一篇介紹支持向量機(jī)的文章中,可以找到關(guān)鍵詞支持、向量、機(jī),通過關(guān)鍵詞組提取,可以得到支持向量機(jī)。
?
?
摘要生成
將每個(gè)句子看成圖中的一個(gè)節(jié)點(diǎn),若兩個(gè)句子之間有相似性,認(rèn)為對(duì)應(yīng)的兩個(gè)節(jié)點(diǎn)之間有一個(gè)無向有權(quán)邊,權(quán)值是相似度。
通過pagerank算法計(jì)算得到的重要性最高的若干句子可以當(dāng)作摘要。
?
?
textrank4zh的安裝
pip install textrank4zh==0.3
pip install textrank4zh
?
?
textrank4zh的使用方法
1、測(cè)試
#-*- encoding:utf-8 -*- from __future__ import print_functionimport sys try:reload(sys)sys.setdefaultencoding('utf-8') except:passimport codecs from textrank4zh import TextRank4Keyword, TextRank4Sentencetext = codecs.open('../test/doc/01.txt', 'r', 'utf-8').read() tr4w = TextRank4Keyword()tr4w.analyze(text=text, lower=True, window=2) # py2中text必須是utf8編碼的str或者unicode對(duì)象,py3中必須是utf8編碼的bytes或者str對(duì)象print( '關(guān)鍵詞:' ) for item in tr4w.get_keywords(20, word_min_len=1):print(item.word, item.weight)print() print( '關(guān)鍵短語:' ) for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num= 2):print(phrase)tr4s = TextRank4Sentence() tr4s.analyze(text=text, lower=True, source = 'all_filters')print() print( '摘要:' ) for item in tr4s.get_key_sentences(num=3):print(item.index, item.weight, item.sentence) # index是語句在文本中位置,weight是權(quán)重?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Py之textrank4zh:textrank4zh的简介、安装、使用方法之详细攻略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决UnicodeDecodeErr
- 下一篇: 成功解决UnicodeDecodeErr