日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

textrank4zh是_GitHub - renxiaowei941015/TextRank4ZH: 从中文文本中自动提取关键词和摘要...

發布時間:2025/3/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 textrank4zh是_GitHub - renxiaowei941015/TextRank4ZH: 从中文文本中自动提取关键词和摘要... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TextRank4ZH

TextRank算法可以用來從文本中提取關鍵詞和摘要(重要的句子)。TextRank4ZH是針對中文文本的TextRank算法的python算法實現。

安裝

方式1:

$ python setup.py install --user

方式2:

$ sudo python setup.py install

方式3:

$ pip install textrank4zh --user

方式4:

$ sudo pip install textrank4zh

Python 3下需要將上面的python改成python3,pip改成pip3。

卸載

$ pip uninstall textrank4zh

依賴

jieba >= 0.35

numpy >= 1.7.1

networkx >= 1.9.1

兼容性

在Python 2.7.9和Python 3.4.3中測試通過。

原理

TextRank的詳細原理請參考:

Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004.

關鍵詞提取

將原文本拆分為句子,在每個句子中過濾掉停用詞(可選),并只保留指定詞性的單詞(可選)。由此可以得到句子的集合和單詞的集合。

每個單詞作為pagerank中的一個節點。設定窗口大小為k,假設一個句子依次由下面的單詞組成:

w1, w2, w3, w4, w5, ..., wn

w1, w2, ..., wk、w2, w3, ...,wk+1、w3, w4, ...,wk+2等都是一個窗口。在一個窗口中的任兩個單詞對應的節點之間存在一個無向無權的邊。

基于上面構成圖,可以計算出每個單詞節點的重要性。最重要的若干單詞可以作為關鍵詞。

關鍵短語提取

參照關鍵詞提取提取出若干關鍵詞。若原文本中存在若干個關鍵詞相鄰的情況,那么這些關鍵詞可以構成一個關鍵詞組。

例如,在一篇介紹支持向量機的文章中,可以找到關鍵詞支持、向量、機,通過關鍵詞組提取,可以得到支持向量機。

摘要生成

將每個句子看成圖中的一個節點,若兩個句子之間有相似性,認為對應的兩個節點之間有一個無向有權邊,權值是相似度。

通過pagerank算法計算得到的重要性最高的若干句子可以當作摘要。

示例

example/example01.py:

#-*- encoding:utf-8 -*-

from __future__ import print_function

import sys

try:

reload(sys)

sys.setdefaultencoding('utf-8')

except:

pass

import codecs

from textrank4zh import TextRank4Keyword, TextRank4Sentence

text = 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對象,py3中必須是utf8編碼的bytes或者str對象

print( '關鍵詞:' )

for item in tr4w.get_keywords(20, word_min_len=1):

print(item.word, item.weight)

print()

print( '關鍵短語:' )

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是權重

運行結果如下:

關鍵詞:

媒體 0.02155864734852778

高圓圓 0.020220281898126486

微 0.01671909730824073

賓客 0.014328439104001788

趙又廷 0.014035488254875914

答謝 0.013759845912857732

謝娜 0.013361244496632448

現身 0.012724133346018603

記者 0.01227742092899235

新人 0.01183128428494362

北京 0.011686712993089671

博 0.011447168887452668

展示 0.010889176260920504

捧場 0.010507502237123278

禮物 0.010447275379792245

張杰 0.009558332870902892

當晚 0.009137982757893915

戴 0.008915271161035208

酒店 0.00883521621207796

外套 0.008822082954131174

關鍵短語:

微博

摘要:

摘要:

0 0.0709719557171 中新網北京12月1日電(記者 張曦) 30日晚,高圓圓和趙又廷在京舉行答謝宴,諸多明星現身捧場,其中包括張杰(微博)、謝娜(微博)夫婦、何炅(微博)、蔡康永(微博)、徐克、張凱麗、黃軒(微博)等

6 0.0541037236415 高圓圓身穿粉色外套,看到大批記者在場露出嬌羞神色,趙又廷則戴著鴨舌帽,十分淡定,兩人快步走進電梯,未接受媒體采訪

27 0.0490428312984 記者了解到,出席高圓圓、趙又廷答謝宴的賓客近百人,其中不少都是女方的高中同學

使用說明

類TextRank4Keyword、TextRank4Sentence在處理一段文本時會將文本拆分成4種格式:

sentences:由句子組成的列表。

words_no_filter:對sentences中每個句子分詞而得到的兩級列表。

words_no_stop_words:去掉words_no_filter中的停止詞而得到的二維列表。

words_all_filters:保留words_no_stop_words中指定詞性的單詞而得到的二維列表。

例如,對于:

這間酒店位于北京東三環,里面擺放很多雕塑,文藝氣息十足。答謝宴于晚上8點開始。

#-*- encoding:utf-8 -*-

from __future__ import print_function

import codecs

from textrank4zh import TextRank4Keyword, TextRank4Sentence

import sys

try:

reload(sys)

sys.setdefaultencoding('utf-8')

except:

pass

text = "這間酒店位于北京東三環,里面擺放很多雕塑,文藝氣息十足。答謝宴于晚上8點開始。"

tr4w = TextRank4Keyword()

tr4w.analyze(text=text, lower=True, window=2)

print()

print('sentences:')

for s in tr4w.sentences:

print(s) # py2中是unicode類型。py3中是str類型。

print()

print('words_no_filter')

for words in tr4w.words_no_filter:

print('/'.join(words)) # py2中是unicode類型。py3中是str類型。

print()

print('words_no_stop_words')

for words in tr4w.words_no_stop_words:

print('/'.join(words)) # py2中是unicode類型。py3中是str類型。

print()

print('words_all_filters')

for words in tr4w.words_all_filters:

print('/'.join(words)) # py2中是unicode類型。py3中是str類型。

運行結果如下:

sentences:

這間酒店位于北京東三環,里面擺放很多雕塑,文藝氣息十足

答謝宴于晚上8點開始

words_no_filter

這/間/酒店/位于/北京/東三環/里面/擺放/很多/雕塑/文藝/氣息/十足

答謝/宴于/晚上/8/點/開始

words_no_stop_words

間/酒店/位于/北京/東三環/里面/擺放/很多/雕塑/文藝/氣息/十足

答謝/宴于/晚上/8/點

words_all_filters

酒店/位于/北京/東三環/擺放/雕塑/文藝/氣息

答謝/宴于/晚上

API

TODO.

類的實現、函數的參數請參考源碼注釋。

License

總結

以上是生活随笔為你收集整理的textrank4zh是_GitHub - renxiaowei941015/TextRank4ZH: 从中文文本中自动提取关键词和摘要...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。