德国小说与 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 标记器
- 根据外部分析引擎,您也许还可以通过重新定义令牌来解决此问题。
我试过了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 标记器
- 根据外部分析引擎,您也许还可以通过重新定义令牌来解决此问题。