3

で提供されている Charniak パーサーを実行しようとしていますstanford-corenlp-1.3.5.jar。レコードのパッケージはedu.stanford.nlp.parser.charniak、クラスCharniakParserです。

したがって、完全を期すために、どのように使用しようとしているかのコード例を示します。

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

問題は、人間が指定されたファイルを見つけることもできないことです。ディストリビューションに含まれていることがわかりません。また、その名前でダウンロードする必要がある可能性のある依存関係が見つかりません。Google で検索すると、'reranking-parser.sh' が存在する唯一の場所は、スタンフォード版の Charniak パーサーの実際のソース コードにあることがわかります (スタンフォードが最初に Charniak パーサーを作成したわけではないことを知っているので、明確にするために一生懸命努力しています。ブラウンからです)。

それで、誰もこのパーサーの経験がありますか?何が欠けている?SOでのチャンスが好きなので、ここで質問します。

4

2 に答える 2

0

残念ながら、CharniakParser.java の CoreNLP のコードにはハードコーディングされたパスが含まれています。パーサーを使用するには、おそらくソースを編集して、Charniak パーサー ディストリビューションの parse-50best.shを指すようにする必要があります (スタンフォード CoreNLP から個別にダウンロードする必要があります。2 番目の BLLIP パーサー GitHub プロジェクトを参照してください)。リンク)。

于 2013-09-06T19:59:10.640 に答える