我正在尝试用https://nlp.stanford.edu/software/crf-faq.html来训练我自己的中文NER模型。我将数据转换为一行一个汉字,并在字符后面标注实体,它喜欢:
红ORG 帽ORG 首O 席O 执O 行O 官O 吉姆人 怀特赫斯特人 曾O 表O 示O ,O 亚ORG 马ORG 逊ORG 公O 共O 云O 有O 许O 多O
..。
在使用命令java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop tech.prop之后,它最终生成了类符(chinese.misc.distsim.crf.ser.gz)。然后,我检查了类函数在带注释的测试数据上的工作方式,我使用了命令java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier chinese.misc.distsim.crf.ser.gz -testFile test.tsv,它看起来很有效。
但是当我用一个文本段落来检查分类器,而不是使用命令java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier chinese.misc.distsim.crf.ser.gz -textfile test.txt注释测试数据时,它似乎是无用的,它没有识别出分词汉语。
当我训练新的中国人新模型时,有什么问题吗?我认为一个可能的问题是,我每一行将训练数据转换成一个汉字。事实上,在汉语中,一个汉字不是一个汉字,我应该使用分词的汉语训练数据,并将数据按行转换成一个汉字,然后给汉字贴上标签。
发布于 2017-07-19 13:28:57
对于处理不同类型的文本输入可能有用的标志是:
-plainTextDocumentReaderAndWriter CLASSNAME Specify a class to read text documents (which extends DocumentReaderAndWriter)
-tokenizerFactory CLASSNAME Specify a class to do tokenization (which extends TokenizerFactory)
-tokenizerOptions "tokenizeNLs=true,asciiQuotes=true" Give options to the tokenizer, such as the two example options here. 这也可能是有用的:https://stanfordnlp.github.io/CoreNLP/human-languages.html
除此之外,您还应该看看SeqClassifierFlags中的中文分词功能。
https://stackoverflow.com/questions/44127579
复制相似问题