Parsing 神经网络依赖解析器中的树形语言包函数

Parsing 神经网络依赖解析器中的树形语言包函数,parsing,neural-network,stanford-nlp,Parsing,Neural Network,Stanford Nlp,如果我想为另一种语言培训斯坦福神经网络依赖性解析器,则需要“treebankLanguagePack”(TLP),但关于此TLP的信息非常有限: 树库及其包含的语言的特殊性 如果我的“树库”采用与PTB相同格式的另一种语言,并且我的数据使用CONLL格式。依赖项格式遵循“通用依赖项”UD。我需要这个TLP吗 自当前CoreNLP版本起,依赖项解析器中仅使用TreebankLanguagePack 1)确定输入文本编码,2)确定哪些标记算作标点[1] 那么,快速解决方案的最佳选择可能是坚持使用UD

如果我想为另一种语言培训斯坦福神经网络依赖性解析器,则需要“treebankLanguagePack”(TLP),但关于此TLP的信息非常有限:

树库及其包含的语言的特殊性


如果我的“树库”采用与PTB相同格式的另一种语言,并且我的数据使用CONLL格式。依赖项格式遵循“通用依赖项”UD。我需要这个TLP吗

自当前CoreNLP版本起,依赖项解析器中仅使用TreebankLanguagePack 1)确定输入文本编码,2)确定哪些标记算作标点[1]

那么,快速解决方案的最佳选择可能是坚持使用UD英语树状语言包。您应该通过将属性
language
指定为
“UniversalEnglish”
(无论您是通过代码还是命令行访问依赖项解析器)来实现这一点。如果您通过CoreNLP主入口点使用依赖项解析器,则此属性键应为
depparse.language


技术细节 接下来是两个非常微妙的细节。如果你一开始只是想把一些东西拼凑在一起,你可能不需要担心这些问题,但是最好提一提,这样你就可以避免将来出现天启式的/砸脑袋的错误

  • 评估和标点:如果您选择坚持使用通用英语,请注意有一个漏洞,它会覆盖特别用于英语语法分析的标点集。您对
    PenntreBanklanguagePack
    (通用英语使用的TLP)中的标点符号所做的任何更改都将被忽略!如果您需要绕过这一点,只需将
    PenntreBanklanguagePack
    复制并粘贴到您自己的代码库中,并将其命名为其他代码就足够了
  • 潜在内存泄漏:在生成要返回给用户的解析结果时,依赖项解析器。此缓存不是实时更新。这意味着,如果您没有使用通过
    language
    属性指定的语言正式定义关系,那么只要这些关系出现在解析器预测中,它们就会导致新对象的实例化。(如果您碰巧将解析对象存储在某个地方,这可能是一个很大的内存方面的问题。)

[1] :评估期间不包括标点符号。这是整个依赖项解析文献中使用的标准“欺骗”。

Sorry@Jon Gauthier,我对您最后的澄清([1])感兴趣。你能给我一些关于排除标点符号以评估依赖解析的文献吗?