我正在使用MaxEntTagger通过使用以下代码进行pos标记和句子分割:
MaxentTagger tagger = new MaxentTagger("models/left3words-wsj-0-18.tagger");
@SuppressWarnings("unchecked")
List<Sentence<? extends HasWord>> sentences = MaxentTagger.tokenizeText(new BufferedReader(new StringReader(out2)));
for (Sentence<? extends HasWord> sentence : sentences) {
content.append(sentence + "\n");
Sentence<TaggedWord> tSentence = MaxentTagger.tagSentence(sentence);
out.append(tSentence.toString(false) + "\n");
}
Run Code Online (Sandbox Code Playgroud)
问题是它会抱怨文本中有无法识别的字符.标记的输出将省略那些不可识别的字符.因此,例如,原始文本是:令Σ是一组有限的函数符号,即签名.
其中Σ是big5代码.但程序将显示以下警告消息:无法识别:Σ(十进制中的第一个字符:931)
标记输出为:令/ VB为/ VB a/DT有限/ JJ设置/ NN/IN函数/ NN符号/ NNS,/,/ DT签名/ NN ./.
我得到的分裂句子是:设为一组有限的函数符号,即签名.
我的问题是如何保留这些不可言说的角色?
我已经尝试修改模式的道具文件,但没有运气:
tagger training invoked at Sun Sep 21 23:03:26 PDT 2008 with arguments:
model = left3words-wsj-0-18.tagger
arch = left3words,naacl2003unknowns,wordshapes(3)
trainFile = /u/nlp/data/pos-tagger/train-wsj-0-18 ...
encoding = Big5
initFromTrees = false
有什么建议吗?
感谢Manning教授的帮助.但是在使用解析器树时遇到了同样的问题. …
stanford-nlp ×1