【发布时间】:2014-02-24 05:23:39
【问题描述】:
我正在使用 stanford parser 从评论句子中提取语法依赖结构。我的问题是,由于某种原因,我的代码生成的输出与我的斯坦福在线工具生成的输出不同。下面是一个例子。
点评句:相机的画质不好。
我的代码输出(它使用了 EnglishPCFG 模型和 typedDependenciesCollapsed 结构)
root(ROOT-0, -LSB--1),
det(quality-4, The-2),
nn(quality-4, picture-3),
nsubj(-RSB--11, quality-4),
det(camera-7, the-6),
prep_of(quality-4, camera-7),
cop(-RSB--11, is-8),
neg(-RSB--11, not-9),
amod(-RSB--11, good-10),
ccomp(-LSB--1, -RSB--11)
斯坦福在线工具输出:
det(quality-3, The-1)
nn(quality-3, picture-2)
nsubj(good-9, quality-3)
det(camera-6, the-5)
prep_of(quality-3, camera-6)
cop(good-9, is-7)
neg(good-9, not-8)
root(ROOT-0, good-9)
我正在寻找造成这种差异的原因。在线解析器使用什么样的模型和依赖结构?如果我遗漏了一些明显的东西,我深表歉意。任何帮助将不胜感激。
如果需要,我可以添加代码 sn-p
更新:
我更改了代码以忽略 SP 分词器生成的 LSB 和 RSB,但生成的语法结构仍然与在线工具不同。这是一个例子:
点评句:相机的尺寸和画质都很完美。
我的代码输出:
det(quality-5, The-1),
nn(quality-5, size-2),
conj_and(size-2, picture-4),
nsubj(perfect-10, quality-5),
det(camera-8, the-7),
prep_of(quality-5, camera-8),
cop(perfect-10, is-9),
root(ROOT-0, perfect-10)
斯坦福在线工具输出:
det(quality-5, The-1)
nn(quality-5, size-2)
conj_and(size-2, picture-4)
**nn(quality-5, picture-4)**
nsubj(perfect-10, quality-5)
det(camera-8, the-7)
prep_of(quality-5, camera-8)
cop(perfect-10, is-9)
root(ROOT-0, perfect-10)
请注意我的代码输出中缺少的 nn 依赖项。我试图弄清楚为什么会这样。任何帮助将不胜感激。
更新(相关代码如下sn-p):
rawWords2 = [-LSB-, 大小, 和, 图片, 质量, of, the, the, camera, is, perfect, -RSB-] p>
lp = 使用EnglishPCFG模型的LexicalizedParser
Tree parse = lp.apply(rawWords2.subList(1,rawWords2.size() - 1));
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
tdl = (List<TypedDependency>) gs.typedDependenciesCollapsed();
System.out.println(tdl.toString());
屏幕输出如文章前面所述。
另一个观察结果。
我使用斯坦福图书馆向我展示了quality 和picture 之间的依赖关系,如斯坦福在线工具中所示为nn,但图书馆显示的依赖关系为dep(即可以' t 找到更合适的依赖项)。现在的问题是为什么斯坦福在线工具将quality 和picturewhere 之间的nn 依赖显示为斯坦福图书馆,将dep 显示为依赖。
【问题讨论】:
-
您的代码输出看起来很奇怪。您是否缺少后处理步骤?
-RSB--11似乎是一些与good-9相对应的内部斯坦福标识符。 -
@mbatchkarov 你说得对,我想通了。 SP 的新版本在标记化步骤中添加了
LSB和RSB作为一些标识符。我真正需要做的是忽略这些标识符并为句子结构的其余部分生成依赖关系。 -
@mbatchkarov 我编辑了我的帖子。请看一看。
-
你能发布你的代码吗?
-
@mbatchkarov 我添加了代码。请看一下
标签: nlp stanford-nlp