我正在尝试标记一些句子。例如句子:
String sentence = "The sky is blue. A cat is #blue.";
我在Open nlp中使用以下命令:
SimpleTokenizer tokenizer = SimpleTokenizer.INSTANCE;
String[] result = tokenizer.tokenize(sentence);
但是我希望opennlp将'
#
'视为一个单词的字母。因此,“ #blue#
”将是一个令牌。这个怎么做 ?
最佳答案
您只需要创建一个新的Tokenizer对象(实现Tokenizer)。
Tokenizer t = new Tokenizer() {
@Override
public Span[] tokenizePos(String arg0) {
}
@Override
public String[] tokenize(String arg0) {
}
};
然后,将SimpleTokenizer代码复制/粘贴到那些2函数中。
并将“#”与其他字母数字值关联:
if (StringUtil.isWhitespace(c)) {
charType = CharacterEnum.WHITESPACE;
} else if (Character.isLetter(c) || c=='#') {
charType = CharacterEnum.ALPHABETIC;
} else if (Character.isDigit(c)) {
charType = CharacterEnum.NUMERIC;
} else {
charType = CharacterEnum.OTHER;
}
关于java - 使用Open nlp标记忽略标签的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17147733/