Stanford_NLP_TOOLS:CRFClassifier


public class CRFClassifier<IN extends CoreMap>

extends AbstractSequenceClassifier<IN>

使用CRF模型進行層序划分的類。這個類具有處理不同格式文檔的功能,但是當使用標准ColumnDocumentReaderAndWriter 類用來訓練或者測試模型時,輸入文件中要一行一個token(幾列標志性的東西,比如單詞、POSchunkanswer class)。ColumnDocumentReaderAndWriter 默認訓練集是有3列輸入的,分別是:單詞、posgold class,但是這個可以通過map屬性來指定。

當使用-textFile命令在一個文件上運行的時候,文件要是普通英文文本(或者簡單的html/xml),通過PlainTextDocumentReaderAndWriter可以進行做一下簡單的英文標記測試。用來讀取文本的類可以通過 -plainTextDocumentReaderAndWriter來改變。-tokenizeOptions 標記提供了一些其他的標記器選項。

To read from stdin, use the flag -readStdin. The same reader/writer will be used as for -textFile.

要從標准輸入讀取文本的話,就是用-readStdin。至於-textFile,也可以使用同樣的reader/writer

典型命令行使用:

為了將一個(含有(提供好的序列化的分類器)的訓練好的模型)在文本文件上運行:

java -mx500m edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier conll.ner.gz -textFile samplesentences.txt

在一個屬性文件(訓練、測試、運行時)中指定全部參數:

java -mx1g edu.stanford.nlp.ie.crf.CRFClassifier -prop propFile

To train and test a simple NER model from the command line:

通過命令行訓練和測試一個簡單的NER(命名實體識別)模型:
java -mx1000m edu.stanford.nlp.ie.crf.CRFClassifier -trainFile trainFile -testFile testFile -macro > output

用多個文件進行訓練:
java -mx1000m edu.stanford.nlp.ie.crf.CRFClassifier -trainFileList file1,file2,... -testFile testFile -macro > output

使用-testFiles選項和逗號分割的列表來進行多文件測試。

各種特征值通過FeatureFactory來定義。默認使用的是NERFeatureFactory,你可以查看特征值模版和在訓練NER分類器中需要使用的特征值的屬性或標記。還有一個edu.stanford.nlp.wordseg.SighanFeatureFactory,以及各種繼承者,例如用來進行中文分詞的ChineseSegmenterFeatureFactory。特征值可以通過Properties文件(推薦)或者命令行的標記來指定。各種標記被讀入到一個SeqClassifierFlags 對象,除非用戶想添加新的特征,否則用戶不用關注它。

    CRFClassifier也可以在程序中使用,當新建一個實例的時候,你一定要指定Properties對象。然后你要調用訓練函數來訓練分類器或者加載一個分類器。另一種得到CRFClassifier的方法就是通過靜態函數getClassifier(String)來返回一個反序列化的分類器。之后你可能就會標注文檔,可以使用合適的classify()或者AbstractSequenceClassifier中合適的classify函數。可以通過printProbsDocument()或getCliqueTrees() 詢問CRF給定的概率。


免責聲明!

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



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