用深度學習做命名實體識別(二):文本標注工具brat


本篇文章,將帶你一步步的安裝文本標注工具brat。

brat是一個文本標注工具,可以標注實體,事件、關系、屬性等,只支持在linux下安裝,其使用需要webserver,官方給出的教程使用的是Apache2。

使用示例

8a891b6467697ede57e517f5505d8a6b.png

下載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,就能看到下面的界面了:
65dab51b6200718614f50463ea8c8bcd.png

然后,用之前輸入的用戶名、密碼登錄后,就可以使用了,使用教程可以參考官方文檔:   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~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM