首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们可以在门中分组注释吗?

我们可以在门中分组注释吗?
EN

Stack Overflow用户
提问于 2014-01-06 14:51:41
回答 1查看 325关注 0票数 0

如何在两个注释之间对所有注释进行分组?

我是门的新手,并试图将注释组合在一起,不确定我们是否能做到这一点,请帮助。例如,在以下案文中:

代码语言:javascript
运行
复制
Page-1
Age:53 
Person: Nathan

Page-2
Treatment : Initial Evaluation
History: Yes

Page-3
..........

如果我的地名名录包括不同的标签,每个页面的标签,年龄,人,治疗,历史等。我想分组所有标签从页-1到页-2页下的注释和所有标签之间的页-2和页-3在第-2页。

如果需要更多关于这个问题的信息,请告诉我。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 15:38:11

我不太清楚您所说的“聚在一起”是什么意思,但是您当然可以创建跨越每个“页面”内容的注释。假设您在每个"Page-1“、"Page-2”上都有一个PageNumber注释,那么您可以使用类似的东西来创建从一个PageNumber到下一个PageNumber的注释。我正在使用control = once JAPE来完成这个任务,您可以等效地使用Groovy脚本或自定义PR

代码语言:javascript
运行
复制
Imports: { import static gate.Utils.*; }
Phase: PageSpans
Input: PageNumber
Options: control = once

Rule: PageSpan
({PageNumber})
-->
{
  try {
    List<Annotation> numbers = inDocumentOrder(inputAS.get("PageNumber"));
    for(int i = 0; i < numbers.size(); i++) {
      outputAS.add(start(numbers.get(i)), // from start of this PageNumber, to...
                   (i+1 < numbers.size()
                     ? start(numbers.get(i+1)) // start of the next number, or...
                     : end(doc) // ...if no more PageNumbers then end of document
                   ),
                   "Page",
                   // store the text under the PageNumber as a feature of Page
                   featureMap("id", stringFor(doc, numbers.get(i))));
    }
  } catch(InvalidOffsetException e) {
    throw new JapeException("Invalid offset from existing annotation", e);
  }
}

在您的评论中,您询问如何将每个“页面”下的所有注释移动到一个单独的注释集中。完成上述操作后,这将是相对简单的,如果您在Page注释中将页码作为特性,就像我对"id“特性所做的那样。然后,您可以定义另一个执行如下操作的JAPE:

代码语言:javascript
运行
复制
Imports: { import static gate.Utils.*; }
Phase: SetPerPage
Input: Age X Y // and whatever other annotation types you want to copy
Options: control = all

Rule: MoveToPageSet
({Age}|{X}|{Y}):entity
-->
:entity {
  try {
    for(Annotation e : entityAnnots) {
      // find the (only) Page annotation that covers this entity
      Annotation thePage = getOnlyAnn(getCoveringAnnotations(inputAS, e, "Page"));
      // get the corresponding annotation set
      AnnotationSet pageSet = doc.getAnnotations(
              (String)thePage.getFeatures().get("id"));
      // and copy the annotation into it
      pageSet.add(start(e), end(e), e.getType(), e.getFeatures());
    }
  } catch(InvalidOffsetException e) {
    throw new JapeException("Invalid offset from existing annotation", e);
  }
  // optionally remove from input set
  // inputAS.removeAll(entityAnnots);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20952575

复制
相关文章

相似问题

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