2013-04-17 56 views
3

我試圖運行stanford-corenlp-1.3.5.jar中提供的Charniak解析器。記錄包爲edu.stanford.nlp.parser.charniakCharniakParser如何解決Stanford Charniak解析器依賴項

所以我會給出我如何嘗試使用它只是爲了完整性代碼示例:在運行該代碼時

CharniakParser cp = new CharniakParser(); 
PTBTokenizer<HasWord> ptbt = new PTBTokenizer(new FileReader("sample1.txt"), new WordTokenFactory(), ""); 
List<Word> tokens = new ArrayList<Word>(); 
for (Word token; ptbt.hasNext();) { 
    token = (Word) ptbt.next(); 
    tokens.add(token); 
} 
Tree t = cp.getBarseParse(tokens); 

就上線那裏,我得到

cannot run program "/u/nlp/packages/bllip-parser/reranking-parser.sh" ... The system cannot find the specified file

問題是人類無法找到指定的文件。我沒有看到包含在發行版中,我無法找到可能需要用該名稱下載的依賴項。谷歌搜索顯示,'reranking-parser.sh'存在的唯一地方是斯坦福版Charniak解析器的實際源代碼(我努力澄清,因爲我知道斯坦福大學最初並沒有創建Charniak解析器,來自布朗)。

那麼,有沒有人有這個解析器的經驗?什麼不見​​了?我喜歡我的機會,所以我在這裏問。

+0

介意爲[tag:charniak-parser]創建一個短標籤wiki?這是一個很好的標籤,只是不太自我描述。 – Zyerah

+0

@Telthien是的,其實它滑了我的腦海...謝謝我會做 – demongolem

+0

真棒,謝謝! – Zyerah

回答

2

好吧,好吧,@ DMoses等人。我訂閱了郵件列表,並得到了我需要做的事情的答案。因此,讓我一起把它作爲答案爲未來的遊客,因爲它沒有記錄(至今):

文件reranking-parser.sh屬於特定版本Charniak解析器。所以你需要得到那個版本爲的解析器,這個解析器在github上,叫做「bllip-parser」。 CoreNLP對Charniak解析器沒有官方支持,提供的功能也不是獨立的,而是一個學生擴展,用於與github的外部解析器一起工作。

一個相當簡單的過程真的指向C++可執行文件,但這對我來說不起作用,因爲此時我將使用Python調用Java來調用C++。

0

不幸的是,CoreNLP's code for CharniakParser.java有一個硬編碼路徑。要使用解析器,您可能需要編輯源代碼以指向​​(需要從Stanford CoreNLP單獨下載 - 請參閱第二個鏈接中的BLLIP Parser GitHub項目)。