繁体   English   中英

如何从UIMA和简单的NLP任务开始?

[英]How start with UIMA and simple NLP tasks?

我最近发现了UIMA( http://uima.apache.org/ )。 它对于简单的NLP任务看起来很有前景,例如标记化,句子分割,词性标注等。

我已经设法了解已经配置的最小java样本,该样本正在为其管道使用OpenNLP组件。

代码如下所示:

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()方法使用的每个Annotation对象获取相同的信息。 我已经查看了UIMA的源代码,以了解值的来源。 我尝试检索它们的作品,但它们在任何方面都不聪明。

我很难找到简单的例子,从JCas对象中提取信息。

我正在寻找一种方法来获取我的PosTagger或SentenceSplitter产生的所有Annotations以供进一步使用。

我猜

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

获取值是一个开始,但由于UIMA拥有原始类型的类,因此注释类中toString方法的源代码读起来就像是面部中的一个slap。

我在哪里可以找到使用基本UIMA内容的java代码以及哪些是好的教程(除了框架本身的javadoc)?

为注释类型生成JCas包装类(您可以使用UIMA附带的Eclipse类型系统编辑器UIMA插件来完成此操作)。 这将为您提供可用于访问注释的Java类 - 这些类提供了功能的getter和setter。

你应该看一下uimaFIT ,它提供了一个更方便的API,包括从JCas中检索注释的便捷方法,例如select(jcas,Token.class)(其中Token.class是你用类型系统编辑器生成的类之一) )。

您可以在DKPro Core页面上找到一些快速启动的Groovy脚本和一组UIMA组件。

UIMA @ GSCL 2013教程(幻灯片和示例代码)中的材料可能对您有用。 转到此处并向下滚动到“Tutorial”。

披露:我是UIMA,uimaFIT,DKPro Core以及UIMA @ GSCL 2013研讨会的共同组织者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM