簡體   English   中英

如何從tsv文件訓練斯坦福CRF NER

[英]How to train Stanford CRF NER from a tsv file

我想訓練自己的模型,例如,我需要通過訓練后的模型運行此字符串:“《豐田陸地巡洋艦1956-1987黃金投資組合》雜志上的49條雜志文章的書http://t.co/EqxmY1VmLg http:// t .co / F0Vefuoj9Q

tsv文件如下所示:

Toyota  PERS
Land    PERS

當我通過程序運行它時:

public static void main(String[] args) {
        String serializedClassifier2 = "C:/standford-ner/ner-model.ser.gz";
      try {
            NERClassifierCombiner classifier = new NERClassifierCombiner(false, false, 
                     serializedClassifier2);
            String ss = "Book of 49 Magazine Articles on Toyota Land Cruiser 1956-1987 Gold Portfolio http://t.co/EqxmY1VmLg http://t.co/F0Vefuoj9Q";
            System.out.println("---");
            List<List<CoreLabel>> out = classifier.classify(ss);
            for (List<CoreLabel> sentence : out) {
              for (CoreLabel word : sentence) {
                System.out.print(word.word() + '/' + word.get(AnswerAnnotation.class) + ' ');
              }
              System.out.println();
            }


        } catch (ClassCastException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

這是我得到的輸出:

Book/PERS of/PERS 49/O Magazine/PERS Articles/PERS on/O Toyota/PERS Land/PERS Cruiser/O 1956-1987/PERS Gold/PERS Portfolio/PERS http://t.co/EqxmY1VmLg/PERS http://t.co/F0Vefuoj9Q/PERS 

對我來說,輸出是錯誤的。 我需要得到Book/O of/O 我不確定它是如何獲得此值的,例如在我的tsv文件中未提及“ book”。 我在tsv文件中沒有提到的單詞應該是O 這個tsv文件僅僅是個開始; 我還有很多話要補充。

您已給分類器訓練數據,其中100%的數據是一類: PERS 由於您的訓練數據中有100%是該課程,因此您可以將100%的作業返還給該課程。

對於算法, O只是另一類。 您沒有提供O示例,因此它不會將任何內容歸類為O

斯坦福大學NER CRF常見問題解答提供了培訓數據示例

CHAPTER O
I   O
Emma    PERS
Woodhouse   PERS
,   O
handsome    O
,   O
clever  O
,   O
and O
rich    O
,   O
with    O
a   O
comfortable O
home    O
...

因此,您可以在其中看到它們在原位標記每個標記,並帶有大量O類的示例。 我並不完全熟悉CRF分類器的工作原理,但是我懷疑您需要為它提供經過適當標記的實際數據,而不僅僅是給出目標類成員示例的列表。

但是,這引出了另一個問題-如果您只是想為該任務匹配字符串,為什么要使用NER? 為什么不匹配字符串? 如果這是您的目標,那么跳過復雜的NLP將使您免於頭疼。 您將更快地獲得結果,並且更容易手動調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM