强制斯坦福解析器接受未经解析器词典许可的POS标签

问题描述

| 我有一个预加标记的句子文件,其中一些在命令式中(隐式主语,动词在前等)。没有任何部分标记,斯坦福解析器错误地将第一个单词(动词)标记为这些命令式句子中大多数(但不是全部)主题的名词。通过部分标记(我肯定可以做得很好-我已经编辑并重新编译了LexicalizedParser以确保相关的命令行选项被识别并最终在lexicalizedParser.java中的正确位置)句子(使用_VB),其行为与没有标记时没有什么不同。 根据lexparser程序包的摘要(在页面“大约有60%的解释限制...”的页面中查找大约60%的内容),这是因为将POS标签VB放在其中某些单词上太奇怪了让解析器相信。 如何使解析器读取并跟随所有标签(最好从命令行)?更新词典? 使用EnglishFactored.ser.gz而不是EnglishPCFG.ser.gz可以减轻此问题,但不会消失。 几年前,有人在斯坦福[parser-user]邮件列表中张贴了类似的问题,但我似乎找不到此帖子的答案。 编辑: 使用解析器的另一个版本(从2010年8月20日开始),似乎根本不会出现此问题。     

解决方法

        当前没有办法以它认为“太奇怪”的方式来进行分析标记。如果它认为一个单词的标签是不可能的,则无法使其成为可能,但是可以在它认为尽可能的范围内指定它应该使用的内容。通常这足够了。在这里应该足够了。这是一个例子。正如您所注意到的,它经常会在没有帮助的情况下错误地使命令错误(部分原因是它们在训练数据中的证据不充分。它并不总是会错误,但通常会错误,我选择了3,它确实错误了。 :
$ cat imper.txt
Use care when opening.
Brush your hair!
Shut the door.
$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser englishPCFG.ser.gz imper.txt 2> /dev/null
(ROOT
  (S
    (NP (NNP Use))
    (VP (VBP care)
      (SBAR
        (WHADVP (WRB when))
        (S
          (VP (VBG opening)))))
    (. .)))

(ROOT
  (NP
    (NP (NNP Brush))
    (NP (PRP$ your) (NN hair))
    (. !)))

(ROOT
  (NP
    (NP (NNP Shut))
    (NP (DT the) (NN door))
    (. .)))
但是带有标记和部分标记的文本是这样的:
$ cat imper.tok
Use_VB care when opening .
Brush_VB your hair !
Shut_VB the door .
一切都是固定的:
$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser -tokenized -tagSeparator _ englishPCFG.ser.gz imper.tok 2> /dev/null
(ROOT
  (S
    (VP (VB Use)
      (NP (NN care))
      (SBAR
        (WHADVP (WRB when))
        (S
          (VP (VBG opening)))))
    (. .)))

(ROOT
  (S
    (VP (VB Brush)
      (NP (PRP$ your) (NN hair)))
    (. !)))

(ROOT
  (S
    (VP (VB Shut)
      (NP (DT the) (NN door)))
    (. .)))
但是您必须使用正确的标签。它不会将\“使用\”标记为VB。算是太不可思议了。 \“使用\”作为动词应为VBG。它是当前的分词形式,而不是命令式中使用的简单动词。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...