当前位置: 首页 > 知识库问答 >
问题:

“处理名称序列时发现意外注释”

吕高寒
2023-03-14

我想在OpenNLP中进行命名实体识别功能的培训。我根据http://opennlp.apache.org/documentation/1.5.2-incubating/manual/opennlp.html#tools.namefind写了一段代码

我从一个试图训练“数字”的简单示例开始,并在这样的训练文件中标记了所有\d:

In <START:number> 1941 <END>, Paramount Pictures produced a movie version of the play.

代码是:

static String markedFile    = "C:/MyStuff/eclipse_workspace/OpenNlpTest/src/NameFinderTraining/en-ner-number-marked.train";
    static String modelFile     = "C:/MyStuff/eclipse_workspace/OpenNlpTest/src/NameFinderTraining/en-ner-number-marked.bin";

    @SuppressWarnings("deprecation")
    public static void main(String[] args) throws Exception 
    {
        Charset charset = Charset.forName("UTF-8");
        ObjectStream<String> lineStream =
                new PlainTextByLineStream(new FileInputStream( markedFile), charset);
        ObjectStream<NameSample> sampleStream = new NameSampleDataStream(lineStream);

        TokenNameFinderModel model;

        try 
        {
            model = NameFinderME.train("en", "person", sampleStream,
                    Collections.<String, Object>emptyMap(), 100, 5);
        }
        finally 
        {
            sampleStream.close();
        }

        BufferedOutputStream modelOut = null;
        try 
        {
            modelOut = new BufferedOutputStream(new FileOutputStream(modelFile));
            model.serialize(modelOut);
        } 
        finally 
        {
            if (modelOut != null) 
                    modelOut.close();      
        }   
    }

我有以下例外:

Computing event counts...  java.io.IOException: Found unexpected annotation while handling a name sequence: until the ###<START:number>### 1950 <END>s

我猜“数字”不在默认注释列表中。我该怎么办?如果我需要一个“自定义注释”,有人能给我举个例子吗。

共有1个答案

商正浩
2023-03-14

当标签无法正确识别时,OpenNLP会抛出这种异常。

尝试删除标记后/前的任何特殊字符。

<END>. is invalid.
<END> . is valid. 
 类似资料:
  • 它抛出了一个错误。 开始新的alter操作前缺少逗号。(靠近位置50的“to”)SQL查询:复制 更改表客户将列dob重命名为生日日期 MySQL说:文档 #1064-您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第3行“Column dob to birthdate Date”附近使用正确的语法

  • 大家好,我想在将Pojo序列化为json时删除属性名。我有以下课程 SubFieldItems类: 当我序列化时,json输出是 但我希望子字段的值不带属性名,如下所示: 我可以使用什么Jackson注释,我已经尝试过在toString方法中使用@JsonValue来强制执行,就像在评论中一样,但是我一直得到奇怪的结果。请提供任何帮助,谢谢。谢谢

  • 函数 unexpected 调用 set_unexpected 函数指定的函数。如果没有用 set_unexpected 函数指定函数,则默认调用 terminate。 函数 terminate 可以显式调用,在无法捕获抛出的异常时、在异常处理期间打乱堆栈时、作为调用unexpected的默认操作时或在异常导致堆栈解退时析构函数抛出异常的情况下都会调用 terminate。 函数set_termi

  • 错误:此时安装意外。 当我在CMD上运行此脚本时,安装应用程序后,突出显示的(粗体)echo语句中会出现错误。我尝试过删除@ECHO OFF,但似乎不起作用。请建议。 下面是代码:

  • 问题内容: 我正在尝试让SignalR与自定义JsonSerializerSettings一起处理其有效负载,特别是我正在尝试设置。 这个问题似乎是,该SignalR中使用的设置,并为它的内部数据结构以及它然后导致各种混乱的(当我设置内部服务器崩溃的最粗鲁的例子,但我也得问题,特别是当回调参与)。 有任何解决方法,还是我做错了? 示例代码演示: 服务器: 客户: 共享: 问题答案: 这可以通过利用

  • 我正在使用jdbc PreparedStatement进行数据插入。 tablename和columnString是动态生成的。 我尝试过参数化tablename和columnString,但它们只会解析为类似'tablename'这样的东西,这将违反语法。