문제

최근에 UIMA에 대해 알게되었습니다.http://uima.apache.org/). 토큰 화, 문장 분할, 부품 태그 등과 같은 간단한 NLP 작업에 유망한 것으로 보입니다.

파이프 라인에 OpenNLP 구성 요소를 사용하는 이미 구성된 최소 Java 샘플을 손에 넣었습니다.

코드는 다음과 같습니다.

public void ApplyPipeline() throws IOException, InvalidXMLException,
        ResourceInitializationException, AnalysisEngineProcessException {

    XMLInputSource in = new XMLInputSource(
            "opennlp/OpenNlpTextAnalyzer.xml");
    ResourceSpecifier specifier = UIMAFramework.getXMLParser()
            .parseResourceSpecifier(in);

    AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);

    JCas jcas = ae.newJCas();
    jcas.setDocumentText("This is my text.");

    ae.process(jcas);
    this.doSomethingWithResults(jcas);

    jcas.reset();
    ae.destroy();
}

private void doSomethingWithResults(JCas jcas) {
    AnnotationIndex<Annotation> idx = jcas.getAnnotationIndex();
    FSIterator<Annotation> it = idx.iterator();

    while (it.hasNext()) {
        System.out.println(it.next().toString());
    }

}

OpenNlptextAnalyzer.xml에서 발췌 :

<delegateAnalysisEngine key="SentenceDetector">
    <import location="SentenceDetector.xml" />
</delegateAnalysisEngine>
<delegateAnalysisEngine key="Tokenizer">
    <import location="Tokenizer.xml" />
</delegateAnalysisEngine>

Java 코드는 다음과 같이 출력을 생성합니다.

Token
   sofa: _InitialView
   begin: 426
   end: 435
   pos: "NNP"

ToString () 메소드가 사용하는 각 주석 개체에서 동일한 정보를 얻으려고합니다. 나는 이미 UIMA의 소스 코드를 조사하여 값이 어디에서 왔는지 이해합니다. 내 작업을 되 찾으려는 시도는하지만 어떤 식 으로든 똑똑하지는 않습니다.

나는 쉬운 예제를 찾기 위해 고군분투하고 있으며, JCAS 객체에서 정보를 추출하는 데 어려움을 겪고 있습니다.

예를 들어 모든 주석이 내 우편 논리 또는 추가 사용을 위해 문장 플러로 생성 할 수있는 방법을 찾고 있습니다.

나는 추측한다

List<Feature> feats = it.next().getType().getFeatures();

값을 얻는 시작이지만 UIMA로 인해 원시 유형에 대한 클래스를 소유하고 주석 클래스에서 Tostring 메소드의 소스 코드조차도 얼굴의 때리는 것처럼 읽습니다.

기본 UIMA 물건을 사용하는 Java 코드는 어디에서 찾을 수 있으며 좋은 튜토리얼 (프레임 워크 자체의 Javadoc 제외)은 어디에 있습니까?

도움이 되었습니까?

해결책

주석 유형에 대한 JCAS 래퍼 클래스를 생성합니다 (UIMA와 함께 제공되는 Eclipse 용 Type System 편집기 UIMA 플러그인을 사용하여 수행 할 수 있음). 이렇게하면 주석에 액세스하는 데 사용할 수있는 Java 클래스를 제공합니다.이 기능은 기능을위한 getters and setter를 제공합니다.

당신은 살펴 봐야합니다 uimafit, JCA (JCAS, Token.class)에서 주석을 검색하는 편리한 방법을 포함하여보다 편리한 API를 제공합니다 (Token.class는 Type System 편집기와 함께 생성 한 클래스 중 하나입니다).

빠른 시작을 찾을 수 있습니다 그루비 스크립트 및 UIMA 구성 요소 모음 DKPRO 코어 페이지.

UIMA@GSCL 2013 튜토리얼 (슬라이드 및 샘플 코드)의 자료가 유용 할 수 있습니다. 가다 여기 "자습서"로 스크롤하십시오.

공개 : UIMA, UIMAFIT, DKPRO Core 및 UIMA@GSCL 2013 워크숍의 공동 주최자 개발자입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top