如何训练模型以提取自定义和未知实体

人工智能 训练
2021-11-03 01:09:22

我试图弄清楚如何从用户的话语中提取特定的文本。

我需要从简短的文本中提取“未知”文本。在这种情况下,用户想要创建一个列表。{} 中的所有内容都是未知文本。因为它不属于特定的实体,例如食物、运动员、电影等。

  • 创建一个新的 {groceries} 列表
  • 创建一个列表 {电影}
  • 创建一个新列表 {movies}
  • 创建一个列表并将其命名为 {books}
  • 创建一个新列表并将其命名为 {stamps}
  • 创建一个标题为 {red ketchup} 的列表
  • 创建另一个名为 {rotten food} 的列表

上面的列表只是用户可以说他想要创建列表的所有不同方式的一小部分。

在我所看到的一切中,它都是基于 NER 的现有实体,当有人说这是习惯的时候,我发现这只是意味着我们必须训练一组特定的单词并希望最好。如果我再添加一个未经训练的单词,它将无法获取数据。

但在这种情况下,用户可以说出诸如“旧鞋”、“我想去的学校”、“基努·里维斯的电影”之类的任何内容。所以我看不出我怎么可能训练它。

对于 Spacy,我遵循了这个示例(https://raw.githubusercontent.com/explosion/spaCy/master/examples/training/train_intent_parser.py),它主要用于获取正确的标题。但是,我必须训练它以使每个不同的短语都起作用。

例如,如果用户说

创建一个漂亮的新列表并将其命名为 {stamps}

美丽这个词导致它失败,现在我也必须为此进行训练。按照这个速度,我们正在寻找数百万个要训练的短语。

在 Spacy 之前,我们尝试过 Dialogflow 和 Rasa。在每一点上,它都是关于训练短语,但我们训练得越多,一件事情就越奏效,另一件坏事。

在这一点上,我们已经尝试并且总体上取得了良好的意图检测成功,但是在提取此类数据时,我开始看起来像头灯下的鹿。

我们是 NLP 的新手,虽然我们已经取得了很大的进步,在过去的几周里,我们似乎找不到任何关于这个特定问题以及是否可以解决的文章。Dialogflow 具有任何实体的概念,但他们建议避免使用它,并且当事情变得复杂时,它会在 3 次中起作用。

目标是检测这些单词中的哪些是基于标题的训练。可以做到吗?如果是这样,方法是什么?

任何可能让我们入门的代码、提示或文章将不胜感激。

0个回答
没有发现任何回复~