Stanford_NLP_TOOLS:CRFClassifier
public?class?CRFClassifier<IN?extends?CoreMap>
extends?AbstractSequenceClassifier<IN>
使用CRF模型進(jìn)行層序劃分的類。這個(gè)類具有處理不同格式文檔的功能,但是當(dāng)使用標(biāo)準(zhǔn)ColumnDocumentReaderAndWriter?類用來訓(xùn)練或者測(cè)試模型時(shí),輸入文件中要一行一個(gè)token(幾列標(biāo)志性的東西,比如單詞、POS、chunk和answer?class)。ColumnDocumentReaderAndWriter?默認(rèn)訓(xùn)練集是有3列輸入的,分別是:單詞、pos、gold?class,但是這個(gè)可以通過map屬性來指定。
當(dāng)使用-textFile命令在一個(gè)文件上運(yùn)行的時(shí)候,文件要是普通英文文本(或者簡(jiǎn)單的html/xml),通過PlainTextDocumentReaderAndWriter可以進(jìn)行做一下簡(jiǎn)單的英文標(biāo)記測(cè)試。用來讀取文本的類可以通過?-plainTextDocumentReaderAndWriter來改變。-tokenizeOptions?標(biāo)記提供了一些其他的標(biāo)記器選項(xiàng)。
To?read?from?stdin,?use?the?flag?-readStdin.?The?same?reader/writer?will?be?used?as?for?-textFile.
要從標(biāo)準(zhǔn)輸入讀取文本的話,就是用-readStdin。至于-textFile,也可以使用同樣的reader/writer。
典型命令行使用:
為了將一個(gè)(含有(提供好的序列化的分類器)的訓(xùn)練好的模型)在文本文件上運(yùn)行:
java?-mx500m?edu.stanford.nlp.ie.crf.CRFClassifier?-loadClassifier?conll.ner.gz?-textFile?samplesentences.txt
在一個(gè)屬性文件(訓(xùn)練、測(cè)試、運(yùn)行時(shí))中指定全部參數(shù):
java?-mx1g?edu.stanford.nlp.ie.crf.CRFClassifier?-prop?propFile
To?train?and?test?a?simple?NER?model?from?the?command?line:
通過命令行訓(xùn)練和測(cè)試一個(gè)簡(jiǎn)單的NER(命名實(shí)體識(shí)別)模型:
java?-mx1000m?edu.stanford.nlp.ie.crf.CRFClassifier?-trainFile?trainFile?-testFile?testFile?-macro?>?output
用多個(gè)文件進(jìn)行訓(xùn)練:
java?-mx1000m?edu.stanford.nlp.ie.crf.CRFClassifier?-trainFileList?file1,file2,...?-testFile?testFile?-macro?>?output
使用-testFiles選項(xiàng)和逗號(hào)分割的列表來進(jìn)行多文件測(cè)試。
各種特征值通過FeatureFactory來定義。默認(rèn)使用的是NERFeatureFactory,你可以查看特征值模版和在訓(xùn)練NER分類器中需要使用的特征值的屬性或標(biāo)記。還有一個(gè)edu.stanford.nlp.wordseg.SighanFeatureFactory,以及各種繼承者,例如用來進(jìn)行中文分詞的ChineseSegmenterFeatureFactory。特征值可以通過Properties文件(推薦)或者命令行的標(biāo)記來指定。各種標(biāo)記被讀入到一個(gè)SeqClassifierFlags?對(duì)象,除非用戶想添加新的特征,否則用戶不用關(guān)注它。
????CRFClassifier也可以在程序中使用,當(dāng)新建一個(gè)實(shí)例的時(shí)候,你一定要指定Properties對(duì)象。然后你要調(diào)用訓(xùn)練函數(shù)來訓(xùn)練分類器或者加載一個(gè)分類器。另一種得到CRFClassifier的方法就是通過靜態(tài)函數(shù)getClassifier(String)來返回一個(gè)反序列化的分類器。之后你可能就會(huì)標(biāo)注文檔,可以使用合適的classify()或者AbstractSequenceClassifier中合適的classify函數(shù)。可以通過printProbsDocument()或getCliqueTrees()?詢問CRF給定的概率。
本文轉(zhuǎn)自ZH奶酪博客園博客,原文鏈接:http://www.cnblogs.com/CheeseZH/archive/2012/11/29/2794280.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Stanford_NLP_TOOLS:CRFClassifier的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift教程之继承
- 下一篇: python基础:字典的使用