"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > ETL : extraire le nom d'une personne à partir d'un texte

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

Publié le 2024-11-07
Parcourir:867

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


La question est donc maintenant : 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.

Nous pourrions penser : « Hé, tout ce qui précède le : devrait être le nom de l'artiste », ce qui semble intelligent, non ? Cela fonctionne dans 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 de reconnaissance d'entités nommées (NER) s'avèrent utiles. Ils sont open source et peuvent nous aider à extraire des noms du texte. Il 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, examinons cet autre cas :


happy hour on the patio: kathryn & chris


Sortir:


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
  • Divisez 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 simple programmation et une logique simple : certains défis sont mieux relevés à l'aide de modèles et de statistiques.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/garciadiazjaime/etl-extracting-a-persons-name-from-text-ahl?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3