nlp四大任務(分類、匹配、序列標注、文本生成)集成項目


介紹


 

本項目支持的NLP任務包括 分類、匹配、序列標注、文本生成等.
- 對於分類任務,目前支持多分類、多標簽分類,通過選擇不同的loss即可。
- 對於匹配任務,目前已支持交互模型和表示模型。
- 對於NER任務,目前已支持rnn+crf,idcnn+crf以及bert+crf
git地址:https://github.com/zhufz/nlp_research

數據


 

訓練數據(目前data下均內置了樣例數據):
(1)對於分類任務的數據使用csv格式,csv頭部包括列名‘target’和‘text’;
(2)對於匹配任務的數據使用csv格式,csv頭部包括列名‘target’,‘text’ 或者 ‘target’,‘text_a’,‘text_b’
(3)對於NER任務的數據,參考"data/ner/train_data",或者使用其它格式的數據的話,修改task/ner.py中的read_data方法即可。
預訓練數據(目前在分類和匹配任務上已支持):
- 如果使用到bert作為預訓練(直接下載google訓練好的模型即可),直接運行"sh scripts/prepare.sh"
- 如果使用elmo作為預訓練,需要准備一份corpus.txt訓練語料放在language_model/bilm_tf/data/目錄下
      然后執行指令進行預訓練: 
            cd language_model/bilm_tf
            sh start.sh

快速開始


 

[依賴]
     環境:python3+tensorflow 1.10(python2.7已支持)
     pip3 install --user -r requirements.txt
     
各類任務的參數定義在conf/model/內的以任務名命名的yml文件中"conf/model/***.yml"
目前已支持的常見任務如下:       
[分類]
     1.生成tfrecords數據,訓練:
        python3 run.py classify.yml mode=train
       或者直接使用腳本:
        sh scripts/restart.sh classify.yml
     
     2.測試:
       單個測試:python3 run.py classify.yml model=test_one
[匹配]
     1.生成tfrecords數據,訓練:
         python3 run.py match.yml mode=train
       或者直接使用腳本:
         sh scripts/restart.sh match.yml
     2.測試:
        單個測試:python3 run.py match.yml model=test_one
[序列標注]
    ...
    sh scripts/restart.sh ner.yml
[翻譯]    
    ...
    sh scripts/restart.sh translation.yml

 

模塊


 

1. encoder
    cnn
    fasttext
    text_cnn
    dcnn
    idcnn
    dpcnn
    vdcnn
    rnn        
    rcnn
    attention_rnn
    capsule
    esim
    han
    matchpyramid
    abcnn
    transformer

2. common 
    loss
    attention
    lr
    ...

3. utils
    data process

 


免責聲明!

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



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