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

如何为OpenNLP准备训练数据来标记包含多个单词的标记?

段干博涉
2023-03-14

在某些语言(例如越南语)中,一些词汇由多个单词组成。因此,一些包含多个单词的标记可以被标记,而不仅仅是使用空格。

我有以下意见:

Người dân địa phương đã nhiều lần báo Điện lực Bến Tre nhưng chưa được giải quyết .

预期产出:

["Người dân", "địa phương",  "đã", "nhiều", "lần", "báo", "Điện lực",  "Bến Tre", "nhưng", "chưa", "được", "giải quyết"]

训练数据我_连接需要在一个令牌中粘在一起的单词:

Người_dân địa_phương đã nhiều lần báo Điện_lực Bến_Tre nhưng chưa được giải_quyết .

这是我用来训练的命令行

opennlp TokenizerTrainer -model "model/vi-token.bin" -alphaNumOpt 1 -lang "vi" -data "data/merge_vlsp_removehtml" -encoding "UTF-8" -params param/wordseg.param

带参数

Iterations=1000

但是,输出不能在一个标记中连接多个单词,但它被空格拆分。

我运行以获取输出的命令

opennlp TokenizerME model/vi-token.bin < sample/sample_text > sample/sample_text.out 

我应该如何处理我们的配置参数中的训练数据,以训练每个标记都有多个单词的标记器?

共有1个答案

归鹤龄
2023-03-14

不要使用下划线进行训练,而是使用标记。OpenNLP使用标签作为培训的参考。遵循为NER和培训您的标记器提供的说明。

opennlp提供了“TokenizerTrainer”工具来训练数据。OpenNLP格式每行包含一句话。还可以指定由空格或特殊标记分隔的标记。

在opennlp中,您可以出于各种目的关注这个博客,以获得领先。这篇文章将向你展示如何创建培训文件和构建新模型。

您可以使用Modelbuilder插件轻松创建自己的训练数据集,并遵循此处提到的一些规则来训练创建良好的NER模型。

你可以在这里找到一些使用modelbuilder插件的帮助。

基本上,你把所有的信息放在一个文本文件中,把实体放在另一个文本文件中。该插件搜索特定的实体,并将其替换为所需的标记。因此产生标记数据。使用这个工具一定很容易!

此外,按照markg先生的答案来理解如何自己创建新模型。这将帮助你建立自己的模型,可以为你的应用定制。

希望这有帮助!

 类似资料:
  • 我正在尝试训练opennlp词性标记器,它会根据我的特定词汇在句子中标记单词。例如: 正常词性标注后: 句子:NodeManager/NNP失败/VBD to/TO start/VB the/DT server/NN 使用我的词性标注模型后: 句子:NodeManager/AGENT失败/其他到/其他启动/其他/其他服务器/对象 其中AGENT,OTHER,OBJECT是我定义的标签。 所以基本上

  • 编辑1:主要的问题是在训练完一个NER模型后,我将它应用到令牌上。因此,它不会识别“轮滑”,因为在代币中,它们以“轮滑”和“滑冰”的形式出现,而NER模型现在无法识别这个爱好。

  • PS:我使用的是Apache Spark 1.6.3

  • 我是使用NER进行Open NLP实体提取的新手,我在Open NLP NER中训练和评估了实体提取的模型,当我给出带有一个词的实体的输入文本时,它可以正常工作例如:“我想购买吉百利” 但它不适用于多词场景,例如:“我想买一台苹果MacBook” 如何训练模特选择多个单词 PS:我知道我需要做一些与NLP中提供的Bigram相关的事情,但是如何使用OpenNLP呢?

  • 我是opennlp新手,需要帮助来定制解析器 我已经使用了带有预训练模型的opennlp解析器en-pos-maxtent.bin用相应的语音部分标记新的原始英语句子,现在我想自定义标签。 例句:狗跳过墙。 使用en-pos-maxtent.bin进行POS标记后,结果将是 狗-NNP 跳跃-VBD 超过-在 The-DT wall-NN 但是我想训练我自己的模型并用我的自定义标签标记单词,例如

  • 我有文件及其非常大的文件说100MB文件。我想执行NER以提取组织名称。我使用OpenNLP进行了培训。 示例代码: 但是我得到了一个错误:。 有没有办法使用openNLP for NER来训练大型数据集?你能发布示例代码吗? 当我谷歌时,我发现Class GIS和DataIndexer界面可用于训练大型数据集,但我知道如何训练?你能发布示例代码吗?