2015-01-31 4 views
0

스탠포드 nlp 스택을 실험에 사용하고 있으며 스탠포드 PCFG 파서가 일부 문장에 이상하게 행동하기 시작할 때까지 좋았습니다. 나는 http://tomato.banatao.berkeley.edu:8080/parser/parser.html 버클리 파서가 내 데이터 세트의 문장에 대해 올바른 구문 분석 트리를 제공한다는 것을 알았다. 어떻게하면 bekley 파서로 stanford pos tagger를 스왑하고 스탠포드 종속 파서를 계속 사용할 수 있습니까? 나는 그것이 할 수 있었다는 것을 http://brenocon.com/blog/2011/09/end-to-end-nlp-packages/ 발견했다. 그러나 확실하지 않은 방법.스탠포드 corenlp에서 버클리 파서를 바꾸기

 

    props.put("parse.type","charniak"); 
    props.put("parse.executable","src/main/resources/berkeley.bat"); 
    props.put("parse.model",""); 

    /*File: berkeley.bat*/ 

    @ECHO OFF 
    java -jar C:\Users\Arindam\Downloads\berkeleymy.jar -gr C:/Users/Arindam/Downloads/eng_sm6.gr -inputFile %4 -maxLength 399 -sentence_likelihood -kbest 2 

+0

구체적으로 할 수있는 파이프 라인은 무엇입니까? 수정하려는 CoreNLP의 현재 주석 자 목록은 무엇입니까? –

+0

나는 내 파이프 라인에서 pos, lemmatization, ner, parse, dcoref를 갖고 싶었다. – CSStudent

답변

2

프로그래밍에 후크 자신의 주석 자를 구축하는 것이 작업을 수행 할 수있는 어렵지만 깨끗한 방법 : 사전에

덕분에


나는이 목적을 위해 다음과 같은 구성을 사용했다 Berkeley 파서의 API. 기본적으로 ParserAnnotator의 동작을 모방하여 Stanford ParserQuery 구현에 대한 참조를 필요한 변환을하는 Berkeley Parser + 코드에 대한 참조로 바꾸는 것이 좋습니다.

그런 다음 Berkeley Parser (Stanford 프레임 워크로 변환)에서 반환 한 결과를 사용하여 EnglishGrammaticalStructure을 사용하여 Berkeley 선거 구민 분석을 종속성 트리로 변환 할 수 있습니다.


적은 깨끗한 그러나 아마 쉬운 방법은 버클리 파서 출력 PTB 형식의 구문 분석이 있고,이 CoNLL 형식의 종속성 파싱에서 생성 the main method of EnglishGrammaticalStructure을 사용하는 것입니다. 요청에 따라 첫 번째 옵션에


더 많은 정보 :

당신은/서브 클래스 ParserAnnotator으로 구성하는 자신의 주석 자를해야한다. 재정의하는 주요 방법은 ParserAnnotator#doOneSentence입니다. 여기에서 Berkeley Parser API를 호출하고 결과를 구문 분석 한 다음 올바르게 변환 된 트리를 사용하여 ParserAnnotator#finishSentence으로 호출 할 수 있습니다. finishSentence은 올바른 특수 효과를 대신 처리해야합니다.

특수 속성을 사용하여 기본 파이프 라인의 사용자 정의 주석자를 쉽게 연결할 수 있습니다. 예제 코드는 this SO answer을 참조하십시오 (나는 customAnnotatorClass 속성을 참조하고 있습니다).

+0

코드를 탐색하고 위에서 언급 한 솔루션을 생각해 냈습니다. 지금은 작동하지만 해킹 여부는 확실하지 않습니다. – CSStudent

+0

하, 약간의 해킹입니다. 이것은 분명히 'CharniakParser'가 만들어진 것이 아닙니다.하지만 작동하는 것이 좋습니다! –

+0

안녕하세요, Jon이 첫 번째 방법에 대해 더 자세히 알려주시겠습니까? 감사합니다. – CSStudent

관련 문제