首頁 > 軟體

Ubuntu安裝設定ROUGE教學

2020-06-16 16:46:16

前言

  這次做自然語言處理的作業,是關於多文件摘要生成的,其中對於生成的摘要進行效果測評需要用到ROUGE(不是那個文字高亮的外掛!!)。沒想到安裝這個軟體這麼麻煩,於是寫個部落格造福後人了。

ROUGE簡介

  ROUGE是由微軟亞洲研究院知識挖掘組(The Knowledge Mining group at Microsoft Research Asia)調研經理(research manager) Chin-Yew Lin 研發的,用於摘要的自動評價,通過比較機器自動生成的摘要(called system_summary)與人工生成的摘要(called model_summary, 認為它是理想的)中重疊單元的數量,來評價機器自動生成的摘要。該方法中考慮的重疊單元有n-gram, word sequences, word-pairs等,並提出了四個測量標準ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S。 
  該包用Perl語言編寫,目前版本為ROUGE-1.5.5。

ROUGE安裝教學

說實話ROUGE真心是難裝,按理說在Ubuntu下幾行命令就應該要安裝成功一個程式,可是ROUGE完全沒有體現這一點。

安裝要求

  1. 需要安裝perl直譯器(ubuntu 系統已自帶, 通過perl -v可檢視當前版本); 
  2. 需要額外安裝perl直譯器的XML::DOM模組以及DB_File模組,而XML::DOM的安裝又需要XML::RegExp、XML::Parser、LWP::UserAgent和XML::Parser::PerlSAX模組(對,就是這麼噁心); 
  3. 設定系統環境變數ROUGE_EVAL_HOME,需要設定為ROUGE安裝目錄下詞庫data所在路徑

獲取方法

現在不知道官網是哪個了,不過可以從github上獲取,也可以從我的Linux公社資源站(1.5.5版本)獲取,另外其他依賴的模組包我也放進這個連結裡了,可以一起下載省去尋找的麻煩。

可以到Linux公社資源站下載:

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

使用者名稱與密碼都是www.linuxidc.com

具體下載目錄在 /2018年資料/9月/22日/Ubuntu安裝設定ROUGE教學/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

安裝過程

step1: 檢查perl版本

因為DOM要求perl版本要在5.6.0以上,所以先在終端用perl -v檢視一下當前版本,版本較低的話先升級一下perl。

step2: 安裝XML::Parser

假設使用我百度網路硬碟裡的檔案,將XML-Parser-2.44.tar解壓到當前資料夾或指定路徑。

tar -zxvf XML-Parser-2.44.tar.gz1

進入解壓得到的資料夾並開始安裝。

cd XML-Parser-2.44
perl Makefile.PL
make
make test # if %%%Result看到PASS為成功就繼續,否則仔細看哪個case報錯了
sudo make install # if %%%必須要sudo,否則可能沒有讀寫檔案的許可權12345

step3: 安裝XML::RegExp

參考step2安裝

step4: 安裝LWP::UserAgent

LWP::UserAgent是libwww-perl中的一部分,直接用apt-get安裝就好啦。

sudo apt-get update
sudo apt-get install libwww-perl12

step5: 安裝XML::Parser::PerlSAX

這個模組是libxml-perl中的一部分,也可以直接用apt-get安裝(其實我在想前面幾個模組能不能也這麼安裝)。

sudo apt-get install libxml-perl1

step6: 安裝XML::DOM

如果前面幾個都沒問題的話,到這裡應該也能一遍過了,繼續參考step2的方法,進入XML::DOM的安裝包路徑,用perl安裝即可。如果在make test的時候還報錯如下:

Test Summary Report
-------------------
t/build_dom.t      (Wstat: 512 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 2 tests but ran 1.
Files=21, Tests=128,  2 wallclock secs ( 0.07 usr  0.01 sys +  1.56 cusr  0.10 csys =  1.74 CPU)
Result: FAIL
Failed 1/21 test programs. 1/128 subtests failed.
Makefile:968: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 2551234567891011

可以用這兩行命令修復一下。

sudo apt-get install -f
sudo apt-get update --fix-missing 12

step7: 安裝DB_File

先獲得DB_File的安裝包,可以用如下命令,也可以從我給的網路硬碟連結裡直接下載。

sudo wget http://www.cpan.org/authors/id/P/PM/PMQS/DB_File-1.835.tar.gz1

接下來如同step2,進入資料夾後使用perl命令安裝。

cd DB_File-1.835
perl Makefile.PL
make
make test # if %%%看到PASS為成功
sudo make install12345

在make的時候如果出錯如下:

version.c:30:16: fatal error: db.h: 沒有那個檔案或目錄
compilation terminated.
Makefile:360: recipe for target 'version.o' failed
make: *** [version.o] Error 11234

說明未安裝Berkeley DB library,或安裝不正確。解決方法如下:

sudo apt-get install libdb-dev1

如果還沒有用,可能是沒有安裝對應的版本,先使用

sudo apt-cache search libdb1

檢視當前Berkeley DB library 的版本,然後再安裝對應的版本.

sudo apt-get install libdb5.3-dev1

step8: 設定ROUGE環境變數

設定環境變數ROUGE_EVAL_HOME,假設你解壓的ROUGE-1.5.5在/usr/local/RELEASE-1.5.5,則:

sudo gedit etc/profile %%%這樣對所有使用者都有效,若希望僅對當前使用者有效則輸入sudo gedit ~/.profile 1

在跳出來的文字編輯器末尾新增 :

export ROUGE_EVAL_HOME="$ROUGE_EVAL_HOME:/usr/local/RELEASE-1.5.5/data"1

step9: 測試安裝是否成功

以上步驟都進行完畢後,怎麼知道自己的ROUGE是否安裝設定成功了呢?可以進入ROUGE檔案所在路徑(即RELEASE-1.5.5),然後執行一下runROUGE-test.pl檔案。

perl runROUGE-test.pl1

如果有以下輸出,且sample-output路徑下各個檔案都有內容的話,基本是安裝成功了。

../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-a-m-s.out
^C../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -l 10 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-l10-a-m-s.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a -m ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a-m.out
../ROUGE-1.5.5.pl -e ../data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -b 75 -a -m -s ROUGE-test.xml > ../sample-output/ROUGE-test-c95-2-1-U-r1000-n4-w1.2-b75-a-m-s.out
../ROUGE-1.5.5.pl -e ../data -3 HM -z SIMPLE DUC2002-BE-F.in.26.lst 26 > ../sample-output/DUC2002-BE-F.in.26.lst.out
../ROUGE-1.5.5.pl -e ../data -3 HM DUC2002-BE-F.in.26.simple.xml 26 > ../sample-output/DUC2002-BE-F.in.26.simple.out
../ROUGE-1.5.5.pl -e ../data -3 HM -z SIMPLE DUC2002-BE-L.in.26.lst 26 > ../sample-output/DUC2002-BE-L.in.26.lst.out
../ROUGE-1.5.5.pl -e ../data -3 HM DUC2002-BE-L.in.26.simple.xml 26 > ../sample-output/DUC2002-BE-L.in.26.simple.out
../ROUGE-1.5.5.pl -e ../data -n 4 -z SPL DUC2002-ROUGE.in.26.spl.lst 26 > ../sample-output/DUC2002-ROUGE.in.26.spl.lst.out
../ROUGE-1.5.5.pl -e ../data -n 4 DUC2002-ROUGE.in.26.spl.xml 26 > ../sample-output/DUC2002-ROUGE.in.26.spl.out123456789101112131415

至此就全部大功告成啦!

Ubuntu安裝設定pyrouge

之前設定pyrouge是很麻煩的事,安裝完之後會各種報錯,解決起來令人頭皮發麻。

這次重新安裝ROUGE和pyrouge,找到了一種簡潔的安裝pyrouge的方法,不會出錯,非常方便。記錄一下。

很簡單,就是幾行命令。

git clone https://github.com/bheinzerling/pyrouge
cd pyrouge
python setup.py install
python -m pyrouge.test1234

在最後一步,python -m pyrouge.test前,要設定rouge路徑。

pyrouge_set_rouge_path /absolute/path/to/ROUGE-1.5.5/directory1

例如我的ROUGE檔案放在了/usr/local/RELEASE-1.5.5下,就設定為

pyrouge_set_rouge_path /usr/local/RELEASE-1.5.5

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-09/154295.htm


IT145.com E-mail:sddin#qq.com