几年来,SpaCy一直是每个愿意启动实体提取项目的公司的事实标准。是什么让spaCy如此受欢迎?在2023年,对于任何试图启动实体提取项目的人来说,是否有好的spaCy替代品?让我们在本文中讨论这些问题。

第一个spaCy版本于2015年发布,它很快就成为企业级实体提取(也称为NER)的标准框架。
如果你有一段非结构化的文本(例如来自网络),而你想从中提取结构化的数据,如日期、姓名、地点等,spaCy是一个非常好的解决方案。
SpaCy很有意思,因为有几个预训练的模型可用于大约20种语言 (更多信息见这里)。 这意味着你不一定要训练你自己的实体提取模型。这也意味着,如果你想训练你自己的模型,你可以从一个预先训练好的模型开始,而不是从头开始,这可能会节省你很多时间。
SpaCy被认为是一个 "生产级 "的框架,因为它非常快速、可靠,并配有全面的文档。
然而,如果spaCy预训练的模型所支持的默认实体是不够的,你将需要进行 "数据注释"(也称为 "数据标记"),以训练你自己的模型。这个过程非常耗时,许多企业实体提取项目因为这个挑战而失败。
假设你想从一段文本(例如从简历或公司网页)中提取工作职位。由于spaCy预训练的模型默认不支持这样的实体,你需要教spaCy如何识别工作职位。你将需要创建一个训练数据集,其中包含几千个工作头衔提取的例子(甚至可能更多!)。你可以使用像Prodigy(由spaCy团队制作)这样的付费注解软件,但它仍然涉及大量的人力工作。实际上很常见的是,为了执行一个数据注释项目,公司雇用了一群承包商,为期数月。这样的工作是如此的重复和枯燥,以至于产生的数据集往往包含很多错误...

让我们看看在2023年,你可以尝试哪些替代解决方案!

Stanford CoreNLP的第一个版本是在2013年发布的。它是一个Java框架(而spaCy是一个Python框架),允许你以非常好的结果进行实体提取。
斯坦福大学CoreNLP也提出了预训练的模型,但比spaCy少。 (更多信息见这里)。
这个框架的准确性与spaCy相似,但这取决于你所分析的数据。例如,斯坦福大学CoreNLP在法律数据上给出了更好的结果。另外值得注意的是,与spaCy相比,一些实体的处理方式略有不同(例如GPE实体就是这种情况)。
谈到性能,斯坦福显然比spaCy慢,如果你试图达到一个非常高的吞吐量,这可能是一个问题。

Flair是一个较新的Python框架(2018年发布),基于PyTorch深度学习框架。
它获得了很多人的青睐,因为与spaCy相比,它在许多语言中达到了更高的准确性。提出了几个预训练的模型 (更多信息见这里)。
然而,这种准确性的提高是以速度为代价的。与spaCy相比,你的吞吐量将大大降低。
几年前,一种新的人工智能模型开始出现:生成式模型。这些模型最初是为文本生成而创建的(写下一段文本的开头,让模型生成其余部分),但人们很快意识到,这些模型在各种自然语言处理用例中都非常出色,包括实体提取。
目前最流行的生成模型是GPT-3、GPT-J、GPT-NeoX、T5和Bloom。所有这些深度学习模型都使用谷歌在2017年发明的Transformer架构。
这种新一代的人工智能模型运行起来非常沉重和昂贵。它们通常需要基于一个或几个GPU的高端硬件。此外,它们也比spaCy等框架慢。但是多亏了这些模型,现在可以在不训练专用模型的情况下提取任何种类的实体了
由于几率学习,在不创建专门模型的情况下提取任何实体是可能的。这种技术是通过在运行时只做几个例子来快速向模型展示你想做的事情。 在这里了解更多关于少数派学习的信息。
回到我们的职称提取例子,如果你想用GPT-J这样的模型来提取职称,你将不需要注释任何数据。这将为你节省数周或数月的人力工作。而且准确率很可能比用spaCy进行的任何实体提取要高得多。
SpaCy是一个伟大的自然语言处理框架,目前许多公司都在生产中使用它来完成实体提取任务。
然而,spaCy和像Stanford CoreNLP或Flair这样的替代品在准确性方面是有限的,而且它们需要繁琐的注释工作来提取新实体。在2023年,几个基于文本生成的替代模型可用于实体提取,而无需任何注释,如GPT-J、GPT-NeoX、GPT-3......这些新模型将真正帮助越来越多的公司在其实体提取项目中取得成功。
如果你想使用GPT-J和GPT-NeoX,请不要犹豫,在NLP Cloud API上试一试。 (在这里尝试)!
Juliette
NLP云的市场经理