lonePatient / BERT-NER-Pytorch

Chinese NER(Named Entity Recognition) using BERT(Softmax, CRF, Span)
MIT License
2.06k stars 424 forks source link

how to predict a single sentence?如何输入单个句子,输出结果? #44

Open ww75369 opened 3 years ago

rmxkyz commented 3 years ago

1.將要輸入的句子放在train.txt的資料夾 並命名為test.txt 2.在run_softmax_ner.sh 中 加入--do_predict 3.predict結果會存在output中的 test_prediction.json中 一個句子而已的話應該也只會有一行output點出每個entity在sequence的start位置和end位置

AQA6666 commented 3 years ago

1.將要輸入的句子放在train.txt的資料夾 並命名為test.txt 2.在run_softmax_ner.sh 中 加入--do_predict 3.predict結果會存在output中的 test_prediction.json中 一個句子而已的話應該也只會有一行output點出每個entity在sequence的start位置和end位置

这个文件内容的格式应该是怎么样的呢,跟训练集保持一致吗,例如对于CNER,应当每行一个字还是每行一个句子?是否需要带有假label?

rmxkyz commented 3 years ago

我的做法是和訓練集一致,每行都是一個字 例 O 如 O 谷 S-ORG 歌 E-ORG 是 O 一 O 家 O 公 O 司 O 。 O

至於你說的是否帶label 可以參照processors/utils_ner.py 的做法,我自己的情況是一樣保持著label 因為在執行的時候這部分的代碼會有些問題造成 O label無法正確標在每一行的字後面

AQA6666 commented 3 years ago

我的做法是和訓練集一致,每行都是一個字 例 O 如 O 谷 S-ORG 歌 E-ORG 是 O 一 O 家 O 公 O 司 O 。 O

至於你說的是否帶label 可以參照processors/utils_ner.py 的做法,我自己的情況是一樣保持著label 因為在執行的時候這部分的代碼會有些問題造成 O label無法正確標在每一行的字後面

好的,感谢您的帮助

zmz125 commented 1 year ago

请问能否不带Label直接使用一个完整的句子做预测?

rmxkyz commented 1 year ago

這項目我目前沒在做了,但根據我的理解,如果程式執行上沒問題是可以不帶label用整個句子進行預測的。具體預測的結果跟準確度會跟模型的預訓練權重有直接關係,或是你也可以在此之上用自己相關的資料集對該權重進行微調。