A SpaCy tem sido um padrão de facto para cada empresa disposta a lançar um projecto de extracção de entidades há vários anos. O que tornou a SpaCy tão popular? E existem boas alternativas spaCy em 2023 para qualquer pessoa que tente iniciar um projecto de extracção de uma entidade? Vamos discutir estes pontos neste artigo.

A primeira versão spaCy foi lançada em 2015 e rapidamente se tornou um quadro padrão para a extracção de entidades de grau empresarial (também conhecida como NER).
Se tiver um texto não estruturado (proveniente da web, por exemplo) e quiser extrair dele dados estruturados, como datas, nomes, lugares, etc. A spaCy é uma solução muito boa.
A SpaCy é interessante porque vários modelos pré-treinados estão disponíveis em cerca de 20 línguas (ver mais aqui). Isto significa que não tem necessariamente de treinar o seu próprio modelo para a extracção de entidades. Significa também que, se quiser treinar o seu próprio modelo, pode começar a partir de um modelo pré-treinado em vez de começar do zero, o que pode poupar-lhe muito tempo.
A SpaCy é considerada como um quadro de "grau de produção" porque é muito rápida, fiável, e vem com uma documentação abrangente.
Contudo, se as entidades por defeito suportadas pelos modelos pré-formados da spaCy não forem suficientes, terá de trabalhar na "anotação de dados" (também conhecida como "etiquetagem de dados") a fim de treinar o seu próprio modelo. Este processo é extremamente moroso e muitos projectos de extracção de entidades empresariais falham devido a este desafio.
Digamos que quer extrair títulos de emprego de um texto (de um currículo, por exemplo, ou de uma página web de uma empresa). Como os modelos pré-formados da spaCy não suportam tal entidade por defeito, terá de ensinar à spaCy como reconhecer títulos de emprego. Precisará de criar um conjunto de dados de formação que contenha vários milhares de exemplos de extracções de títulos de emprego (e talvez até muitos mais!). Poderá utilizar um software de anotação pago como Prodigy (feito pela equipa spaCy), mas ainda envolve muito trabalho humano. Na verdade, é bastante comum ver empresas contratarem um monte de contratantes durante vários meses a fim de realizarem um projecto de anotação de dados. Tal trabalho é tão repetitivo e aborrecido que os conjuntos de dados resultantes muitas vezes contêm muitos erros...

Vejamos que soluções alternativas poderia experimentar em 2023!

A primeira versão do Stanford CoreNLP foi lançada em 2013. É uma estrutura Java (enquanto que a spaCy é uma estrutura Python) que lhe permite realizar a extracção de entidades com muito bons resultados.
Stanford CoreNLP também propõe modelos pré-treinados, mas menos do que spaCy (ver mais aqui).
A precisão deste quadro é semelhante à da spaCy, mas depende dos dados que está a analisar. Por exemplo, o Stanford CoreNLP está a dar melhores resultados sobre os dados legais. Também vale a pena notar que algumas entidades são tratadas de forma ligeiramente diferente em comparação com a spaCy (é o caso da entidade GPE, por exemplo).
Quando se trata de desempenho, Stanford parece claramente mais lento do que a spaCy, o que pode ser um problema se estiver a tentar atingir um rendimento muito elevado.

Flair é uma estrutura Python mais recente (lançada em 2018) baseada na estrutura PyTorch de aprendizagem profunda.
Está a ganhar muita popularidade porque atinge uma maior precisão em muitas línguas em comparação com a spaCy. Vários modelos pré-treinados são propostos (ver mais aqui).
No entanto, esta melhoria de exactidão vem à custa da velocidade. O seu rendimento será muito mais baixo em comparação com a spaCy.
Há alguns anos, um novo tipo de modelos de IA começou a aparecer: modelos generativos. Estes modelos foram inicialmente criados para a geração de texto (escrever o início de um texto e deixar o modelo gerar o resto) mas as pessoas rapidamente se aperceberam que estes modelos eram muito bons em todo o tipo de casos de utilização de processamento de linguagem natural, incluindo a extracção de entidades.
Os modelos generativos mais populares actualmente são GPT-3, GPT-J, GPT-NeoX, T5, e Bloom. Todos estes modelos de aprendizagem profunda utilizam a arquitectura Transformer, inventada pela Google em 2017.
Esta nova geração de modelo de IA é muito pesada e dispendiosa de gerir. Requerem normalmente hardware de alta qualidade baseado em uma ou várias GPUs. Também são mais lentos do que estruturas como a spaCy. Mas graças a estes modelos é agora possível extrair qualquer tipo de entidade sem treinar um modelo dedicado!
A extracção de qualquer entidade sem criar um modelo dedicado é possível graças à aprendizagem de poucos tiros. Esta técnica consiste em mostrar rapidamente ao modelo o que se quer fazer, fazendo apenas um par de exemplos em tempo de execução. Saiba mais sobre a aprendizagem de poucos tiros aqui.
Voltando ao nosso exemplo de extracção de títulos de emprego, se quiser extrair títulos de emprego com um modelo como o GPT-J, não precisará de anotar quaisquer dados. Poupar-lhe-á então semanas ou meses de trabalho humano. E a precisão será muito provavelmente mais elevada do que qualquer extracção de entidades com spaCy.
Veja o nosso artigo sobre como realizar facilmente a extracção de entidades com modelos GPT.
A SpaCy é uma grande estrutura de processamento de linguagem natural que é utilizada na produção por muitas empresas hoje em dia para tarefas de extracção de entidades.
Contudo, spaCy e alternativas como Stanford CoreNLP ou Flair são limitadas em termos de precisão, e requerem um tedioso trabalho de anotação a fim de extrair novas entidades. Em 2023 vários modelos alternativos baseados na geração de texto podem ser utilizados para extracção de entidades sem qualquer anotação, como GPT-J, GPT-NeoX, GPT-3... Estes novos modelos irão realmente ajudar cada vez mais empresas a ter sucesso nos seus projectos de extracção de entidades.
Se quiser usar GPT-J e GPT-NeoX, não hesite em experimentar a NLP Cloud API (experimente-o aqui)!
Juliette
Gestor de marketing na NLP Cloud