2011-06-09 55 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