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

分析文档分类培训文件时发生OpenNLP错误

万俟靖
2023-03-14

我正在尝试使用opennlp处理文档分类器。但是我对训练文件有困难。当opennlp读取文件时,我收到以下错误:

Indexing events using cutoff of 5

    Computing event counts...  done. 17 events
    Indexing...  Dropped event greetings:[bow=hello]
Dropped event greetings:[bow=hi]
Dropped event greetings:[bow=salam]
Dropped event internet_problem:[bow=internet]
Dropped event internet_problem:[bow=no, bow=data]
Dropped event internet_problem:[bow=data, bow=not, bow=working]
Dropped event internet_problem:[bow=not, bow=able, bow=to, bow=open, bow=website]
Dropped event internet_problem:[bow=browsing, bow=issue]
Dropped event balance_problem:[bow=balance]
Dropped event balance_problem:[bow=usage]
Dropped event balance_problem:[bow=bill, bow=amount]
Dropped event balance_problem:[bow=billed]
Dropped event voice_problem:[bow=signals]
Dropped event voice_problem:[bow=call]
Dropped event voice_problem:[bow=voice]
Dropped event voice_problem:[bow=call, bow=drop]
Dropped event voice_problem:[bow=not, bow=connecting]
done.
Sorting and merging events... Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at opennlp.tools.ml.model.AbstractDataIndexer.sortAndMerge(AbstractDataIndexer.java:89)
    at opennlp.tools.ml.model.TwoPassDataIndexer.<init>(TwoPassDataIndexer.java:105)
    at opennlp.tools.ml.AbstractEventTrainer.getDataIndexer(AbstractEventTrainer.java:74)
    at opennlp.tools.ml.AbstractEventTrainer.train(AbstractEventTrainer.java:91)
    at opennlp.tools.ml.model.TrainUtil.train(TrainUtil.java:53)
    at opennlp.tools.doccat.DocumentCategorizerME.train(DocumentCategorizerME.java:204)
    at com.nlp.CategoryTrainUtil.trainModel(CategoryTrainUtil.java:39)
    at com.nlp.Boot.main(Boot.java:12)

我的培训文件如下所示:

greetings hello
greetings hi
greetings salam
internet_problem internet
internet_problem no data
internet_problem data not working
internet_problem not able to open website
internet_problem browsing issue
balance_problem balance
balance_problem usage
balance_problem bill amount
balance_problem billed
voice_problem signals
voice_problem call
voice_problem voice
voice_problem call drop
voice_problem not connecting

我没有得到我可能错过的东西。

共有1个答案

牟波
2023-03-14

第一行说使用5的截止值索引事件

这可能意味着你必须给每个分类至少5个例子。因此,再举两个例子来说明问候语,以及培训数据中没有5个例子的其他例子。

或者,如果你没有足够的训练数据,你可以将截止时间减少到3,但这不会给你带来好的结果。

希望这有帮助!

 类似资料:
  • 我正在尝试使用OpenNLP对发票进行分类。根据它的描述,我将它分为两类。我已经建立了一个包含20K描述的培训文件,并将每个描述标记到正确的类中。 培训数据如下所示(第一列是代码,我将其用作类,第二列是发票描述): 使用OpenNLP的Document分类器,我实现了98.5%的正确率。但是,为了提高效率,我取了错误的分类文档并用它来扩展训练数据。 例如,当我第一次运行它时,“MOTONETA I

  • OpenNLP的性能明显低于我测试过的其他文档分类器,所以在我放弃它之前,我决定确保我在玩所有的刻度盘和旋钮。对我来说最突出的一件事是OpenNLP,它可以非常快地训练我的模型(大约1.2秒)。我使用过的其他NLP工具可能需要几分钟甚至几个小时的训练。我的培训档案中有大约12k条记录。 我试图将迭代次数从10次增加到10000次,不幸的是,它似乎对训练时间或准确性没有任何影响。 奇怪的是OpenN

  • 我试图用下面的代码训练模型,但我一直在方法上收到错误,它告诉我将更改为。为什么?

  • 我遵循的留档。我能够理解句子检测、标记器、名称查找器。但是我被分类器卡住了。原因是,我不明白,如何创建分类模型。 我确实明白我需要创建一个文件。格式非常清楚,它需要是一个类别空间和一个单行文档。以扩展名保存文件。 所以我创建了以下文件: 我给这个命令- Opennlp DoccatTrainer模型en-doccat.binlang en数据en-doccat.train编码UTF-8 它开始做某

  • 在下面的屏幕截图中,可以看到dirb工具能够找到许多文件的结果。下面是我们已经知道的一些文件: 在下面的屏幕截图中,我们可以看到只是一个图标文件。是我们经常看到的索引。页脚和标题可能只是样式文件。可以看到有一个登录页面。 现在,我们可以通过利用一个非常复杂的漏洞找到目标的用户名和密码。但我们最终无法登录,因为无法找到登录的位置(页面)。在这种情况下,像这样的工具会很有用。我们查看文件通常非常有用,

  • 如果仅仅因为想要查找文档中的<a>标签而将整片文档进行解析,实在是浪费内存和时间.最快的方法是从一开始就把<a>标签以外的东西都忽略掉. SoupStrainer 类可以定义文档的某段内容,这样搜索文档时就不必先解析整篇文档,只会解析在 SoupStrainer 中定义过的文档. 创建一个 SoupStrainer 对象并作为 parse_only 参数给 BeautifulSoup 的构造方法即