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

如何在OpenNLP中训练标记器?

司迪
2023-03-14
My hobbies are reading books, magazines, Roller skating and playing football.

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

共有1个答案

平光明
2023-03-14

我没有一个具体的答案(我不认为没有),但一些问题和要点你可能需要考虑。

代币器需要知道那些是逗号分隔的爱好吗?如果是这样,您就有一个更大的问题,即标记化。如果不是,你仍然有一个问题,你将如何处理结束的部分,逗号分隔。顺便说一句,在这种情况下逗号的用法是错误的,因为轮滑后应该有一个逗号。我有一种感觉,您实际上需要构建一个“命名实体识别模型”,而不是一个标记器,但希望我在这里的评论能让您更进一步(可能无处可去)

例如,如果您用逗号标记您的句子,您将得到以下标记:

My hobbies are reading books
magazines
Roller skating and playing football.

这里有几个想法

>

  • 使用句子块创建标记。..这将基于名词短语和动词短语等,这可能是有用的

    使用一个NER模型来提取“爱好”实体,这将是嘈杂的,但它会给你一些概率标记

    NP: My hobbies
    VP: are reading
    NP: books
    NP: magazines
    NP: Roller skating and playing football
    

    请记住,您在火车时间使用的任何标记方法都必须在分类时间使用。

    希望这有帮助,但我有一种感觉,这不会有太大帮助。

    UPDATE IN RESPONSE TO THE OP EDIT
    

    NER(NameFinder)将在单个令牌数组中查找多个令牌实体;所以别担心那个。从nameFinder.find()方法返回的Span对象是句子标记的头部和尾部。有多个零件名称是很常见的。现在,如果特定的NER模型不返回多部分名称,那就另当别论了,您可能需要对更多的数据进行训练,不要把它归咎于标记化。

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

    • 我正在尝试训练名称查找器模型来检测名称,但它没有给出正确的结果。这是代码。 这是iam得到的输出: 检测到的名称:[07-20 19:35:47.516 8799:8799 I/Adreno EGL] en-ner-person.train内容是: 请帮忙。

    • 问题内容: 好的,我有以下代码来训练来自OpenNLP的NER标识符 我不知道我是否做错了什么,如果缺少什么,但是分类不起作用。我认为train.txt错误。 *发生 *的错误 是所有令牌仅被分类为一种类型。 我的train.txt数据类似于以下示例,但是条目的变化和数量更多。另一件事是,我每次都从文本中逐字逐句地查找,而不是所有标记。 有人可以证明我做错了吗? 问题答案: 您的训练数据不正确。

    • 在某些语言(例如越南语)中,一些词汇由多个单词组成。因此,一些包含多个单词的标记可以被标记,而不仅仅是使用空格。 我有以下意见: 预期产出: 训练数据我_连接需要在一个令牌中粘在一起的单词: 这是我用来训练的命令行 带参数 但是,输出不能在一个标记中连接多个单词,但它被空格拆分。 我运行以获取输出的命令 我应该如何处理我们的配置参数中的训练数据,以训练每个标记都有多个单词的标记器?

    • 我发现很难创建自己的openNLP模型。谁能告诉我,如何拥有自己的模型。培训应该如何进行。 输入应该是什么,输出模型文件将存储在哪里。

    • 我使用的OpenNLP模型如下: 我想把我的数据附加到训练数据集中,这些模型就是在这个数据集中训练的。那么请告诉我从哪里可以得到原始数据集?