2011-06-09 57 views
0

我有一个pretokenized句子的文件,其中一些语句是命令式的(隐式主语,动词第一等)。没有任何部分标记,斯坦福分析器错误地将第一个单词(动词)标记为大多数(但不是全部)这些命令性句子的主语中的名词。通过部分标记(我相当肯定我的工作正确 - 我编辑并重新编译了LexicalizedParser,以确保相关的命令行选项得到识别,并最终在lexicalizedParser.java中的正确位置)对这些句子的第一个单词(使用_VB),其行为与如果标签不存在不同。强制斯坦福解析器接受未通过解析器词典许可的POS标签

按照lexparser package summary(看的方式约60%下降的页面“上有解释一些限制......”),这是因为把POS标签VB的一些这话实在是太怪异让解析器相信。

如何让解析器读取并遵循所有标记(最好来自命令行)?更新词典?

使用EnglishFactored.ser.gz而不是EnglishPCFG.ser.gz减轻了这个问题,但它并没有消失。

有人在几年前向stanford [parser-user]邮件列表发布了a similar question,但我似乎无法找到本文的答案。

编辑: 使用解析器的另一个版本(从2010年8月20日),这个问题似乎没有/////。

回答

1

目前还没有办法让解析标签的东西被认为是“太奇怪”了。如果它把一个单词的标签看作是不可能的,那么你不可能做到这一点,但是你可以在它认为可能的范围内指定它应该使用的内容。通常这就够了。这里应该够了。这是一个例子。正如你注意到的那样,它经常会在命令错误的帮助下被错误的部分地解释(部分原因是它们在训练数据中没有得到很好的证明,但并不总是让它们错误,但它通常是这样做的,我选择了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。它是现在分词形式,而不是命令式中使用的光明动词。

+0

我的数据中包含下列词语(出现在基本形式中,如下所示,如“数字1至10的行数”或“删除”foo。“后面的”bar“的所有实例)解析器中最有问题的命令式动词: '显示,打印,删除,排序,提取,拆分,编号,计数,转换,插入,对齐,中心,替换,更改,反向,加入, strip' 除了一些值得注意的例外(编号,删除,打印)外,这个列表中的单词几乎不会被接受为我的数据中的动词。 – iltrn 2011-06-10 17:00:10