我正在尝试使用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
我没有得到我可能错过的东西。
第一行说使用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 的构造方法即