<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TextRank4ZH中文文本關(guān)鍵詞和摘要提取庫(kù)

          聯(lián)合創(chuàng)作 · 2023-09-29 05:18

          TextRank4ZH 用于自動(dòng)從中文文本中提取關(guān)鍵詞和摘要,基于 TextRank 算法,使用 Python 編寫。

          TextRank 算法可以用來從文本中提取關(guān)鍵詞和摘要(重要的句子)。TextRank4ZH是針對(duì)中文文本的TextRank算法的python算法實(shí)現(xiàn)。

          安裝

          本程序使用python 2.7測(cè)試沒有問題,暫時(shí)不兼容python 3。

          先確定已經(jīng)有jieba、numpy、networkx這三個(gè)庫(kù)。可以使用pip安裝:

          $ sudo pip install numpy
          $ sudo pip install jieba
          $ sudo pip install networkx

          關(guān)于庫(kù)版本,以下作為參考:

          $ pip show jieba
          ---
          Name: jieba
          Version: 0.35
          Location: /usr/local/lib/python2.7/dist-packages
          Requires: 
          $ pip show numpy
          ---
          Name: numpy
          Version: 1.7.1
          Location: /usr/lib/python2.7/dist-packages
          Requires: 
          $ pip show networkx
          ---
          Name: networkx
          Version: 1.9.1
          Location: /usr/local/lib/python2.7/dist-packages
          Requires: decorator

          另外,請(qǐng)確保安裝最新版本的jieba分詞,TextRank4ZH需要新版本jieba提供的詞性標(biāo)注功能。

          $ sudo pip install jieba --upgrade

          TextRank4ZH暫不支持使用easy_install、pip來安裝,使用者可以將textrank4zh拷貝到項(xiàng)目目錄,或者環(huán)境變量PYTHONPATH指向的目錄中。

          目錄結(jié)構(gòu)

          ├── LICENSE         #許可證
          ├── README.md       #使用說明
          ├── stopword.data   #停止詞詞典
          ├── test.py         #測(cè)試
          ├── text            #存放測(cè)試所需要的文本
          │   ├── 01.txt
          │   ├── 02.txt
          │   ├── 03.txt
          │   ├── 04.txt
          │   └── 05.txt
          └── textrank4zh     #!main
              ├── __init__.py
              ├── Segmentation.py
              ├── TextRank4Keyword.py
              └── TextRank4Sentence.py

          原理

          TextRank的詳細(xì)原理請(qǐng)參考:

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

          關(guān)鍵詞提取

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

          每個(gè)單詞作為pagerank中的一個(gè)節(jié)點(diǎn)。設(shè)定窗口大小為k,假設(shè)一個(gè)句子依次由下面的單詞組成:

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

          w1, 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)鍵短語(yǔ)提取

          參照關(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)作摘要。

          測(cè)試

          test.py提供了使用的示例:

          #-*- encoding:utf-8 -*-
          
          import codecs
          from textrank4zh import TextRank4Keyword, TextRank4Sentence
          
          text = codecs.open('./text/01.txt', 'r', 'utf-8').read()
          tr4w = TextRank4Keyword(stop_words_file='./stopword.data')  # 導(dǎo)入停止詞
          
          #使用詞性過濾,文本小寫,窗口為2
          tr4w.train(text=text, speech_tag_filter=True, lower=True, window=2)  
          
          print '關(guān)鍵詞:'
          # 20個(gè)關(guān)鍵詞且每個(gè)的長(zhǎng)度最小為1
          print '/'.join(tr4w.get_keywords(20, word_min_len=1))  
          
          print '關(guān)鍵短語(yǔ):'
          # 20個(gè)關(guān)鍵詞去構(gòu)造短語(yǔ),短語(yǔ)在原文本中出現(xiàn)次數(shù)最少為2
          print '/'.join(tr4w.get_keyphrases(keywords_num=20, min_occur_num= 2))  
          
          tr4s = TextRank4Sentence(stop_words_file='./stopword.data')
          
          # 使用詞性過濾,文本小寫,使用words_all_filters生成句子之間的相似性
          tr4s.train(text=text, speech_tag_filter=True, lower=True, source = 'all_filters')
          
          print '摘要:'
          print '\n'.join(tr4s.get_key_sentences(num=3)) # 重要性最高的三個(gè)句子

          得到的關(guān)鍵詞:

          媒體/高圓圓/微/賓客/趙又廷/答謝/謝娜/現(xiàn)身/記者/新人/北京/博/展示/捧場(chǎng)/禮物/張杰/當(dāng)晚/戴/酒店/外套

          得到的關(guān)鍵短語(yǔ):

          微博

          得到的摘要:

          中新網(wǎng)北京12月1日電(記者 張曦) 30日晚,高圓圓和趙又廷在京舉行答謝宴,諸多明星現(xiàn)身捧場(chǎng),其中包括張杰(微博)、謝娜(微博)夫婦、何炅(微博)、蔡康永(微博)、徐克、張凱麗、黃軒(微博)等
          高圓圓身穿粉色外套,看到大批記者在場(chǎng)露出嬌羞神色,趙又廷則戴著鴨舌帽,十分淡定,兩人快步走進(jìn)電梯,未接受媒體采訪
          記者了解到,出席高圓圓、趙又廷答謝宴的賓客近百人,其中不少都是女方的高中同學(xué)

          使用說明

          類TextRank4Keyword、TextRank4Sentence在處理一段文本時(shí)會(huì)將文本拆分成4種格式:

          sentences:由句子組成的列表。

          words_no_filter:對(duì)sentences中每個(gè)句子分詞而得到的兩級(jí)列表。

          words_no_stop_words:去掉words_no_filter中的停止詞而得到的兩級(jí)列表。

          words_all_filters:保留words_no_stop_words中指定詞性的單詞而得到的兩級(jí)列表。

          例如,對(duì)于:

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

          對(duì)類TextRank4Sentence,在speech_tag_filter=True, lower=True, source = 'all_filters'時(shí),

          sentences:

          ['這間酒店位于北京東三環(huán),里面擺放很多雕塑,文藝氣息十足', 
          '答謝宴于晚上8點(diǎn)開始']

          words_no_filter:

          [
              [ '這', '間, '酒店, '位于, '北京, '東三環(huán), '里面, '擺放, '很多, '雕塑, '文藝, '氣息, '十足'],
              [ '答謝', '宴于, '晚上, '8, '點(diǎn), '開始' ]
          ]

          words_no_stop_words:

          [
              [ '間', '酒店, '位于, '北京, '東三環(huán), '里面, '擺放, '很多, '雕塑, '文藝, '氣息, '十足' ],
              [ '答謝', '宴于, '晚上, '8, '點(diǎn)' ]
          ]

          words_all_filters:

          [
              [ '酒店', '位于, '北京, '東三環(huán), '擺放, '雕塑, '文藝, '氣息' ],
              [ '答謝', '宴于, '晚上' ]
          ]

          類TextRank4Keyword位于textrank4zh/TextRank4Keyword.py中,類TextRank4Sentence位于textrank4zh/TextRank4Sentence.py中,類的實(shí)現(xiàn)、函數(shù)的參數(shù)請(qǐng)參考源碼注釋。

          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人三级在线 | 亚洲视频在线焦 | 谁有毛片网站 | 北条麻妃无码播放 | 内射亚洲|