Usando o PhraseMatcher no SpaCy para encontrar vários tipos de correspondência

A documentação e as amostras do SpaCy mostram que a classe PhraseMatcher é útil para combinar sequências de tokens nos documentos. É preciso fornecer um vocabulário de sequências que serão correspondidas.

No meu aplicativo, tenho documentos que são coleções de tokens e frases. Existem entidades de diferentes tipos. Os dados são remotamente linguagem natural (os documentos são um conjunto de palavras-chave com ordem semi-aleatória). Estou tentando encontrar correspondências de vários tipos.

Por exemplo:

yellow boots for kids

Como encontrar correspondências para cores (por exemplo, amarelo), tipos de produtos (por exemplo, botas) e idade (por exemplo, crianças) usando o PhraseMatches da SpaCy's? Esse é um bom caso de uso? Se a entidade diferente corresponder à sobreposição (por exemplo, a cor é correspondida na lista de cores e na lista de materiais), é possível produzir todos os casos exclusivos?

Eu realmente não posso usar um marcador de sequência, pois os dados são vagamente estruturados e estão repletos de ambiguidades. Eu tenho uma lista de entidades (por exemplo, cores, idade, tipos de produtos) e listas de valores associadas.

Uma idéia seria instanciar vários objetos PhraseMatcher, um para cada entidade, fazer as correspondências separadamente e depois mesclar os resultados. Cada tipo de entidade terá seu próprio vocabulário. Isso parece simples, mas pode não ser eficiente, especialmente a parte de mesclagem. As listas de valores são bastante grandes. Antes de seguir esse caminho, gostaria de saber se é uma boa ideia ou se há maneiras mais simples de fazer isso com o SpaCy.

questionAnswers(1)

yourAnswerToTheQuestion