NLP:信息提取

数据挖掘 nlp 文本挖掘
2021-10-10 05:19:50

我需要从数据集中的文本列中提取产品名称。目前我正在使用正则表达式从文本中间提取产品名称,但有时产品名称拼写错误、不完整甚至被另一个词修改,这意味着我无法识别和提取产品名称。

我们目前在该列表中有大约 1500-2000 种产品,我有一个数据集,其中包含已经从大约 30,000 行中识别出的那些产品。有没有一种方法可以使用这些历史数据来改进对尚未识别的产品的识别?

只是一个例子:

The product X produced by the Company Y is used to treat skin diseases

注意:产品名称不会出现在固定位置。

1个回答

您可能需要的是带有自定义实体字典的 Named Entity Recognition看这个例子:

在此处输入图像描述

许多包,如 NLTK 或 Spacy,都有一个包含此类实体的大型字典,使模型能够在不使用正则表达式的情况下识别它们。但是,这些预定义的实体通常不适用于您的应用程序,因此无法识别您要查找的内容。这就是为什么您需要花时间更新/添加此类实体的列表(在您的情况下为产品)。您还提到有拼写错误、变体等使其更难。在这里,您需要使用模糊匹配算法扩展此类产品的字典,以编程方式解决此类边缘情况。

你可能会开始阅读这篇文章的想法。有关命名实体识别的更多信息:博客文章,或 Spacy 的官方命名实体识别 101Spacy 支持在实体列表中添加产品名称,见页面也可以在stackoverflow中查看这个问题但它并不像您想象的那样容易获得!