Abd*_*lah 1 java nlp stanford-nlp opennlp
我是自然语言处理的新手.谁能告诉我OpenNLP或Stanford CoreNLP中训练有哪些模型?在使用apache openNLP包在java中编码时,我们总是要包含一些训练有素的模型(在http://opennlp.sourceforge.net/models-1.5/中找到).这些是什么?
可下载OpenNLP的 "模型" 是一组数据,表示用于根据您提供的输入预测所需结构的概率分布集(例如,词性标签)(在OpenNLP的情况下,通常是文本文件) ).
鉴于自然语言是上下文敏感的†,该模型用于代替基于规则的系统,因为它通常比后者更好地工作,原因有很多,为简洁起见,我在此不再赘述.例如,正如您已经提到的,令牌完美可以是动词(VB
)或形容词(JJ
),这只能在上下文中消除歧义:
DT NN VBZ JJ
DT NN VBZ VB
但是,根据准确表示("正确")英语§的模型,示例1的概率大于示例2的概率:P([DT, NN, VBZ, JJ] | ["This", "answer", "is", "perfect"]) > P([DT, NN, VBZ, VB] | ["This", "answer", "is", "perfect"])
†实际上,这是非常有争议的,但我在此强调,我所说的是整个自然语言(包括语义/语用学等)而不仅仅是自然语言语法,(在英语的情况下,至少)被一些人认为是无背景的.
‡在以数据驱动的方式分析语言时,事实上POS标签的任何组合都是"可能的",但是,如果给出一个"正确"的当代英语样本,噪音很小,那么母语人士会判断为"错误"的标签分配应该具有极低的发生概率.
§在实践中,这意味着一个模型训练在一个大的,多样的(当代)英语(或你想要分析的其他目标领域)的语料库中,并具有适当的调整参数(如果我想更加精确,这个脚注很容易就可以了多段长).