Maison  >  Article  >  développement back-end  >  ETL : extraire le nom d'une personne à partir d'un texte

ETL : extraire le nom d'une personne à partir d'un texte

Linda Hamilton
Linda Hamiltonoriginal
2024-10-08 06:20:30748parcourir

Disons que nous voulons gratter chicagomusiccompass.com.

Comme vous pouvez le constater, il comporte plusieurs cartes, chacune représentant un événement. Voyons maintenant le suivant :

ETL: Extracting a Person

Notez que le nom de l'événement est :


jazmin bean: the traumatic livelihood tour


Alors maintenant la question est : Comment extraire le nom de l'artiste du texte ?

En tant qu'humain, je peux "facilement" dire que Jazmin Bean est l'artiste - il suffit de consulter leur page wiki. Mais écrire du code pour extraire ce nom peut s'avérer délicat.

On pourrait penser : « Hé, tout ce qui précède le : devrait être le nom de l'artiste », ce qui semble intelligent, non ? Cela fonctionne pour ce cas, mais qu'en est-il de celui-ci :


happy hour on the patio: kathryn & chris


Ici, l'ordre est inversé. Nous pourrions continuer à ajouter de la logique pour gérer différents cas, mais nous nous retrouverons bientôt avec une tonne de règles fragiles et qui ne couvriront probablement pas tout.

C’est là que les modèles Named Entity Recognition (NER) sont utiles. Ils sont open source et peuvent nous aider à extraire des noms du texte. Cela ne détectera pas tous les cas, mais la plupart du temps, ils nous fourniront les informations dont nous avons besoin.

Avec cette approche, l'extraction devient beaucoup plus facile. Je choisis Python car la communauté autour du Machine Learning en Python est tout simplement imbattable.


from gliner import GLiNER

model = GLiNER.from_pretrained("urchade/gliner_base")

text = "jazmin bean: the traumatic livelihood tour"
labels = ["person", "bands", "projects"]
entities = model.predict_entities(text, labels)

for entity in entities:
    print(entity["text"], "=>", entity["label"])


Ce qui génère la sortie :


jazmin bean => person


Maintenant, regardons cet autre cas :


happy hour on the patio: kathryn & chris


Sortie :


kathryn => person
chris => person


source-GLiNER

Génial, non ? Fini la logique fastidieuse pour extraire les noms, utilisez simplement un modèle. Bien sûr, cela ne couvrira pas tous les cas possibles, mais pour mon projet, ce niveau de flexibilité fonctionne très bien. Si vous avez besoin de plus de précision, vous pouvez toujours :

  • Essayez un autre modèle
  • Contribuer au modèle existant
  • Forkez le projet et ajustez-le pour l'adapter à vos besoins

Conclusion

En tant que développeur de logiciels, il est fortement recommandé de rester à jour avec les outils de l'espace Machine Learning. Tout ne peut pas être résolu avec une programmation et une logique simples : certains défis sont mieux relevés à l'aide de modèles et de statistiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn