本篇文章,將帶你一步步的安裝文本標注工具brat。
brat是一個文本標注工具,可以標注實體,事件、關系、屬性等,只支持在linux下安裝,其使用需要webserver,官方給出的教程使用的是Apache2。
使用示例
下載brat
建議下載brat的release版本,地址:https://github.com/nlplab/brat/releases/tag/v1.3p1
安裝環境
本文將在Ubuntu18.04操作系統下介紹brat的安裝過程。
安裝過程
首先,安裝apache2,使用命令:
sudo apt-get install apache2
安裝完成后會在 /var 目錄下生成一個www/html目錄,進入該目錄:
cd /var/www/html
將下載的brat-1.3p1.zip文件移動到該目錄下,使用 如下命令解壓到當前目錄:
unzip brat-1.3p1.zip
在當前目錄下使用如下命令將brat-1.3p1重命名為brat
mv brat-1.3p1 brat
使用 如下命令對brat目錄授權:
sudo chmod 777 -R /var/www/html/brat
進入brat目錄
cd /var/www/html/bratsudo ./install.sh
執行以下命令,根據提示輸入用戶名、密碼、管理員郵箱
./install.sh
現在開始配置apache2.conf文件: 執行命令:
vim /etc/apache2/apache2.conf
在文件末尾加入如下內容,注意縮進,(如果后面重啟apache2服務的時候報錯“...the control process exited with error code....”,可以看看是不是這里的縮進有問題,可以試試手動敲下面的配置,而不是直接復制粘貼):
<Directory /var/www/html/brat> AllowOverride Options Indexes FileInfo Limit Require all granted AddType application/xhtml+xml .xhtml AddType font/ttf .ttf Options +ExecCGI AddHandler cgi-script .cgi </Directory>
重新啟動apache2:
sudo service apache2 restart
然后打開 http://xxx.xxx.xxx.xxx/brat , xxx是你brat所在主機的ip,默認80端口。
打開網頁后,會發現報錯,是關於協議什么的錯誤,這就是坑的地方,我們還需要一個步驟,如下:
cd /etc/apache2/mods-enabled sudo ln -s ../mods-available/cgi.load
只有這樣才能使用cgi模塊,而這步在brat的官方文檔中貌似沒有提及。但是在issue的#1141中提到了這點。
接下來,重新加載apache2的配置:
sudo service apache2 reload
此時再訪問 http://xxx.xxx.xxx.xxx/brat,就能看到下面的界面了:
然后,用之前輸入的用戶名、密碼登錄后,就可以使用了,使用教程可以參考官方文檔: http://brat.nlplab.org/configuration.html
最后,我們看看如何添加多個用戶:
找到/var/www/html/brat/config.py 對應的行,增加:
USER_PASSWORD = { 'admn': 'admin', 'test': 'test', # (add USERNAME:PASSWORD pairs below this line.) }
重新啟動apache2后,使用test就可以登錄了。
補充說明:
- brat默認不支持中文標注,需要手動修改brat主目錄/server/src路徑下的projectconfig.py文件的第162行代碼,注釋源代碼,然后另起一行加入新代碼(修改之后記得重啟apache2服務):
# n = re.sub(r'[^a-zA-Z0-9_-]', '_', n) n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
- 如果已經配置了支持中文,但是仍然報不支持的字符的問題,可能是你的配置里面有中文標點符號,要么全部改成英文標點,要么修改上面的正則,如下(修改之后記得重啟apache2服務):
# n = re.sub(r'[^a-zA-Z0-9_-]', '_', n) n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>\u2014-\uff1b,0-9_-]', '_', n)
- 如果修改之后,仍然有字符問題,請檢查配置文件的編碼格式是否是UTF-8,且是標准的UTF-8,而不是帶BOM的UTF-8,具體可以使用Notepad++打開文件再編碼選項中查看和轉換
- 如果使用brat加載本地文件的時候報錯“unable to read text file xxx/xxx/xxx/xxx.txt ”,請確保你的txt文件和ann文件已經授權給當前linux系統的登錄用戶,授權方式可以參考如下方式:
sudo chmod 777 xxx.txt sudo chmod 777 xxx.ann
- 請確保python2環境存在,並且python軟連接指向的是python2,否則brat可能運行報錯(最新的release版本只支持python2),如果需要安裝python3可以建立新的軟連接,名字叫python3即可;當然這只是參考處理方案,也可以采用虛擬環境的方式在python2下運行brat。
ok,工具搭建好了,下一篇《用深度學習做命名實體識別(三):文本數據標注過程》 將介紹如何標注我們的數據,本篇就這么多內容啦~,感謝閱讀O(∩_∩)O,88~