首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >串进来,拉出去?

串进来,拉出去?
EN

Stack Overflow用户
提问于 2015-07-13 17:28:23
回答 1查看 156关注 0票数 0

我是ClearTKUIMA的新手。到目前为止,我还没有找到任何关于如何创建不涉及文件的管道的例子。

我试图使用cleartk和UIMA处理存储在Java变量中的一个小文本,并获得一个XML返回( ClearTK TimeML注释器的结果)。

我能够提供一个字符串作为输入(请参阅代码摘录),但代码远非优雅(需要对CAS执行set和空URI )。而且,输出被保存到一个文件中,但是我希望得到一个字符串(将输出保存到一个文件中,然后将该文件读入内存是没有意义的)。

代码语言:javascript
复制
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.fit.factory.AnalysisEngineFactory;
import org.apache.uima.fit.pipeline.SimplePipeline;
import org.apache.uima.jcas.JCas;
import org.cleartk.corpus.timeml.TempEval2007Writer;
import org.cleartk.opennlp.tools.PosTaggerAnnotator;
import org.cleartk.snowball.DefaultSnowballStemmer;
import org.cleartk.timeml.event.*;
import org.cleartk.timeml.time.TimeTypeAnnotator;
import org.cleartk.timeml.tlink.TemporalLinkEventToDocumentCreationTimeAnnotator;
import org.cleartk.timeml.tlink.TemporalLinkEventToSameSentenceTimeAnnotator;
import org.cleartk.timeml.tlink.TemporalLinkEventToSubordinatedEventAnnotator;
import org.cleartk.timeml.type.DocumentCreationTime;
import org.cleartk.token.tokenizer.TokenAnnotator;
import org.cleartk.util.cr.FilesCollectionReader;

...

String documentText = "First make sure that you are using eggs that are several days old...";
JCas sourceCas = createJCas();

sourceCas.setDocumentText(documentText);
ViewUriUtil.setURI(sourceCas, new URI(""));

SimplePipeline.runPipeline(
        sourceCas,
        org.cleartk.opennlp.tools.SentenceAnnotator.getDescription(),
        TokenAnnotator.getDescription(),
        PosTaggerAnnotator.getDescription(),
        DefaultSnowballStemmer.getDescription("English"),
        org.cleartk.opennlp.tools.ParserAnnotator.getDescription(),
        org.cleartk.timeml.time.TimeAnnotator.FACTORY.getAnnotatorDescription(),
        TimeTypeAnnotator.FACTORY.getAnnotatorDescription(),
        EventAnnotator.FACTORY.getAnnotatorDescription(),
        EventTenseAnnotator.FACTORY.getAnnotatorDescription(),
        EventAspectAnnotator.FACTORY.getAnnotatorDescription(),
        EventClassAnnotator.FACTORY.getAnnotatorDescription(),
        EventPolarityAnnotator.FACTORY.getAnnotatorDescription(),
        EventModalityAnnotator.FACTORY.getAnnotatorDescription(),
        AnalysisEngineFactory.createEngineDescription(AddEmptyDCT.class),
        TemporalLinkEventToDocumentCreationTimeAnnotator.FACTORY.getAnnotatorDescription(),
        TemporalLinkEventToSameSentenceTimeAnnotator.FACTORY.getAnnotatorDescription(),
        TemporalLinkEventToSubordinatedEventAnnotator.FACTORY.getAnnotatorDescription(),
        TempEval2007Writer.getDescription("file:///tmp/out.tml"));

建议如何让管道以字符串作为输入,并生成另一个字符串作为执行结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-14 12:01:14

像以前一样使用SimplePipeline运行引擎,然后从sourceCas中检索您感兴趣的注释,如下所示:

代码语言:javascript
复制
Collection<MyAnnotation> myAnnotation = JCasUtil.select(sourceCas, MyAnnotation.class);
String myproperty = myAnnotation.getMyproperty();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31389748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档