【发布时间】:2018-12-19 23:23:44
【问题描述】:
我是 NLP 新手,遇到了 OpenNLP。据我了解tokenization 意味着将文本分割成单词和句子。单词通常由空格分隔,但并非所有空格都相等。比如Los Angeles中的一个人认为不管留白。但是每当我运行 OpenNLP Tokenizer 时,它都会为洛杉矶创建两个不同的标记:Los 和 Angeles。这是我的代码(我从旧 OpenNLP 站点获得模型 en-token.bin)。
InputStream inputStream = new FileInputStream("C:\\apache-opennlp-1.9.0\\Models\\en-token.bin");
TokenizerModel tokenModel = new TokenizerModel(inputStream);
//Instantiating the TokenizerME class
TokenizerME tokenizer = new TokenizerME(tokenModel);
String tokens[] = tokenizer.tokenize(sentence2);
for(String token : tokens) {
System.out.println(token);
}
这是输出:
The
city
of
Los
Angeles
is
one
of
the
most
beautiful
places
in
California
我在网上测试了一些其他的分词器,它们产生了相同的输出。如果不是标记化,那么识别这两个词的过程是什么?
【问题讨论】: