德国小说与 DkPro

German Novel with DkPro

我试过了German Novel with DkPro。我的样本输入文件是一个 XHTML 文件。如何根据 XHTML 索引获取我的 PosTagger 输出。

脚本:

 PACKAGE com.github.uima.ruta.novel;
 ENGINE utils.HtmlAnnotator;
 ENGINE utils.HtmlConverter;
 ENGINE utils.ViewWriter;
 TYPESYSTEM utils.HtmlTypeSystem;
 TYPESYSTEM utils.TypeSystem;

 IMPORT PACKAGE de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos FROM desc.type.POS;
 IMPORT de.tudarmstadt.ukp.dkpro.core.api.segmentation.type.Lemma FROM desc.type.LexicalUnits;

 UIMAFIT org.dkpro.core.opennlp.OpenNlpSegmenter;
 UIMAFIT org.dkpro.core.stanfordnlp.StanfordPosTagger;

 CONFIGURE(HtmlAnnotator, "onlyContent" = false);
 Document{-> EXEC(HtmlAnnotator)};
 Document { -> CONFIGURE(HtmlConverter, "inputView" = "_InitialView","outputView" = "plain"),
 EXEC(HtmlConverter,{TAG})};

 "<\?xml version=\"1.0\" encoding=\"UTF-8\"\?>"->MARKUP;
 uima.tcas.DocumentAnnotation{-CONTAINS(POS)} -> {
 uima.tcas.DocumentAnnotation{-> SETFEATURE("language", "de")};
 EXEC(OpenNlpSegmenter);
 EXEC(StanfordPosTagger, {POS});
 };

样本输入

 <?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml"><head xmlns="http://www.w3.org/1999/xhtml"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><style></style><title></title></head><link xmlns="http://www.w3.org/1999/xhtml" src="./ckeditor.css" /><body xmlns="http://www.w3.org/1999/xhtml"><div class="WordSection1"><p class="Normal" data-name="Normal"><span data-bkmark="para10000"></span><span style="font-size:9pt">Der Idiot</span><span data-bkmark="para10000"></span></p>
 <p class="Normal" data-name="Normal"><span data-bkmark="para10001"></span><span style="font-size:9pt">Ein Roman in vier Teilen.</span><span data-bkmark="para10001"></span></p>
 </div>
 <hr align="left" size="1" width="33%" /></body>
 </html>

在示例脚本中,uima.tcas.DocumentAnnotation 被发送到 PosTagger 进程。此注释中的标记会影响准确性。我需要做什么才能获得准确性。

HtmlAnnotator 可用于隐藏额外的 MARKUP,这样规则就不会受到它们的影响。 HtmlConverter 能够创建没有 html/xml 标记的新文档文本,但只能在新的 CAS 视图中创建,因为 CAS 中的初始文本是静态的,无法更改。 EXEC 动作能够在当前 CAS 对象上应用外部分析引擎,并且可以配置为在不同的 CAS 视图上应用。但是,外部分析引擎应用于包括标记在内的完整 CAS。不会即时创建新的 CAS。

您有多种选择。

  • 您可以在“普通”视图上应用 pos 标记器,但您无法使用规则访问这些注释,因为注释将出现在不同的视图中
  • 您设置了多视图设置,例如,通过两阶段过程。首先将文本转换为没有标记的纯文本,然后在新文本上应用 pos 标记器
  • 根据外部分析引擎,您也许还可以通过重新定义令牌来解决此问题。