安裝與運行
安裝與運行 Terrier
如果你立刻就想要運用Terrier在標準測試集上建立索引和進行檢索,那麼你可以跟着下面的步驟做。 我們爲在Linux和Windows上安裝Terrier提供了一步步的操作指南,指導你在TREC WT2G測試集上進行你的第一次索引建立和檢索。
Terrier必備條件
Terrier唯一的要求是你安裝過Java JRE1.7.0或更高版本。 你可以從Java website.下載JRE或JDK(如果你想要Terrier用作開發或者想運行基於web的界面)。
下載Terrier
你可以從主頁[Terrier Home]下載Terrier version 4.1的一份拷貝。 網站提供Terrier最新的預編譯版本和之前的Unix或Windows版本。
Unix下安裝
下載完Terrier之後將其放到你要安裝他的位置。命令行導航到這個位置下,並用以下命令解壓:
tar -zxvf terrier-core-4.1-bin.tar.gz
這將導致在當前目錄下創建一個Terrier目錄。然後我們來確認你的系統裏是否有正確版本的Java,在命令行輸入:
echo $JAVA_HOME
如果$JAVA_HOME環境變量被設置過了,這條命令會輸出你的Java安裝路徑(e.g. /usr/java/jre1.7.0),如果這條命令告訴你已經有了正確的版本的Java(1.7.0or later)那就行了。如果你的系統不滿足要求,你可以從JRE 1.7 download website下載Java1.7,然後設置環境變量(把下面這句加入/etc/profile 或 ~/.bashrc files文件):
export JAVA_HOME="你的java安裝絕對路徑"
Windows下安裝
想要使用Terrier你只需要將你下載的Zip包裏的內容解壓到你選好的位置。Terrier需要Java1.7或更高版本Java,如果你的系統不滿足要求,你可以從 JRE download website下一個Java。最後,Terrier是假設你的java.exe在path下的,所以你需要在控制面板中設置環境變量,保證java\bin目錄在PATH環境變量下。
使用 Terrier
Terrier帶有三個應用:
Batch (TREC) Terrier
允許你輕鬆地對TREC數據集做索引、檢索和結果評價。下一節裏會一步一步教你怎麼用這個應用。
Interactive Terrier
這個允許你做交互式的檢索,並且是一個快速測試Terrier的方式。 假定你在Windows上安裝了Terrier,你可以運行Terrier的bin目錄下的interactive_terrier.bat 文件來啓動交互式Terrier(InteractiveTerrier)。在Unix系統或 Mac上,你可以通過執行interactive_terrier.sh文件來運行交互式Terrier。你可以用 InteractiveQuerying類中提到的屬性來配置交互式Terrier的檢索功能。
Desktop Terrier
一個桌面搜索應用的例子,如果你還想了解更多關於Desktop Terrier的信息,可以看他的tutorial.
教程: 如何使用Batch (TREC) Terrier
索引
這篇嚮導會逐步的講解用Terrier爲TREC集建立索引。我們假設這是在Linux系統下,數據集、查詢的Topic和相關性評估(qrels)都存在/local/collections/WT2G/目錄下。
1. 進入Terrier 文件夾.
cd terrier-core-4.1
2. 通過輸入以下命令爲使用TREC測試集安裝Terrier:
./bin/trec_setup.sh "Absolute_Path_To_Collection_Files"
在我們的例子裏:
./bin/trec_setup.sh /local/collections/WT2G/
這會導致在”etc”目錄下創建一個collection.spec 文件。這個文件包含了剛剛選定的語料庫目錄下的文件列表。
3. 如有必要,可以修改 collection.spec 文件,當集合目錄下包含了一些你不想要建索引的文件時你可能需要這樣做。另外,你可以直接通過以下命令修改:
find /local/collections/WT2G/ -type f | grep -v "PATTERN" > etc/collection.spec
這裏"PATTERN"是正則表達式,用來識別不應該被索引的文件。
4. 現在我們已經準備好開始爲文檔集建立索引了。
./bin/trec_terrier.sh -i
注意: 如果你不想保留直接索引結構(比如不會用到查詢擴展),那你可以用輸入bin/trec_terrier.sh -i -j 用更快的單通道索引。
檢索
想要從剛剛建過索引的測試集檢索,跟着下面的步驟做。
1. 首先我們要做一些配置。 Terrier的大量功能是通過屬性來控制的。 你可以在etc/terrier.properties文件裏預先設好,或者一個一個在命令行裏指定。接下來我們要用命令行指定合適的屬性。想要檢索和評價批量查詢的結果,我們需要知道:
- 查詢的位置(也就是topic文件) – 用trec.topics指定
- 要使用的加權模型(e.g. TF_IDF) - 用trec.model指定 – 包括參數
- 對應topics的相關性評估文件(也叫qrels) – 由trec.qrels指定。
2. 我們來做一次檢索:
./bin/trec_terrier.sh -r -Dtrec.model=PL2 -c 10.99 -Dtrec.topics=/local/collections/WT2G/info/topics.401-450
這是什麼意思呢? "-r" 參數指示Terrier做檢索,"-c" 告訴Terrier加權模型的參數。PL2是一個高級的 Divergence FromRandomness加權模型,他往往比 TF_IDF 更高效。(模型細節在 the description of the DFR framework)。
如果一切進展順利,在var/results目錄下將會有一個叫InL2c10.99_0.res的.res文件。
3. 現在我們將用"-e"參數評估得到的結果。
./bin/trec_terrier.sh -e -Dtrec.qrels=/local/collections/WT2G/info/qrels.trec8.small_web.gz
注意Terrier可以讀壓縮文件。(e.g. Gzip壓縮 – 由.gz後綴標識).
Terrier會到 var/results目錄下去找所有.res文件評價,然後將評價結果保存爲一個與對應.res文件同名的.eval文件。
4. 現在我們要再做一次檢索,只不過這次是帶查詢擴展(QE)的,在”-r”的基礎上用到參數”-q”:
./bin/trec_terrier.sh -r -q -Dtrec.model=PL2 -c 10.99 -Dtrec.topics=/local/collections/WT2G/info/topics.401-450
到the guide for configuring retrieval 獲取更多關於查詢擴展的內容。 注意你的索引必須具有直接索引結構來支持QE,默認單通道索引的話是不會建立的。 (更多詳情看Configuring Indexing ). 隨後我們可以用帶”-e”參數的trec_terrier.sh再做一次結果評價。
./bin/trec_terrier.sh -e -Dtrec.qrels=/local/collections/WT2G/info/qrels.trec8.small_web.gz
5. 現在我們可以執行下面的命令查看所有結果的平均檢索精度值(MeanAverage Precision - MAP):
tail -1 var/results/*.eval
第一輪運行的MAP應該是0.3140.
採用查詢擴展後的MAP應該是 0.3305
與Terrier交互
你可以用基於web的查詢界面與你的索引交互。首先,啓動他自帶的HTTP server:
./bin/http_terrier.sh
然後你可以在 http://localhost:8080輸入查詢並看到結果。如果你在另一臺機器上運行Terrier,就把localhost換成遠程主機的hostname。 更多關於配置web界面的內容請看 UsingWeb-based results。