【发布时间】:2016-12-30 23:13:53
【问题描述】:
我是自然语言处理的新手。谁能告诉我 OpenNLP 或斯坦福 CoreNLP 中的训练模型是什么?在使用 apache openNLP 包在 java 中编码时,我们总是必须包含一些经过训练的模型(在此处找到 http://opennlp.sourceforge.net/models-1.5/)。它们是什么?
【问题讨论】:
标签: java nlp stanford-nlp opennlp
我是自然语言处理的新手。谁能告诉我 OpenNLP 或斯坦福 CoreNLP 中的训练模型是什么?在使用 apache openNLP 包在 java 中编码时,我们总是必须包含一些经过训练的模型(在此处找到 http://opennlp.sourceforge.net/models-1.5/)。它们是什么?
【问题讨论】:
标签: java nlp stanford-nlp opennlp
“模型”as downloadable for OpenNLP 是 a set of data representing a set of probability distributions,用于根据您提供的输入(对于 OpenNLP,通常是文本文件)预测您想要的结构(例如 part-of-speech 标签)。
鉴于自然语言是context-sensitive†,此模型用于代替基于规则的系统,因为它通常比后者更适用于 a number of reasons,我不会详细说明为了简洁起见。例如,you already mentioned,标记 perfect 可以是动词 (VB) 或形容词 (JJ),这只能在上下文中消除歧义:
DT NN VBZ JJDT NN VBZ VB但是,根据准确表示(“正确”)英语的模型§,示例 1 的概率大于示例 2:P([DT, NN, VBZ, JJ] | ["This", "answer", "is", "perfect"]) > P([DT, NN, VBZ, VB] | ["This", "answer", "is", "perfect"])
†实际上,这是有争议的,但我在这里强调的是,我是在谈论整个自然语言(包括语义/语用学/等),而不仅仅是自然语言语法,其中(至少在英语的情况下)is considered by some to be context-free。
‡当以数据驱动的方式分析语言时,事实上任何 POS标签的组合都是“可能的”,但是,给定一个“正确”的当代样本噪音很小的英语,母语人士会判断为“错误”的标签分配应该具有极低的发生概率。
§在实践中,这意味着使用适当的调整参数(如果我想更准确地说,这个脚注很容易有多个段落)。
【讨论】:
将经过训练的模型视为“具有现有信息的聪明大脑”。
当您开始机器学习时,模型的大脑是干净而空洞的。您可以下载经过训练的模型,也可以训练自己的模型(例如教孩子)
通常您只为边缘情况训练模型,否则您下载“训练模型”并开始进行预测/机器学习。
【讨论】: