Maison > Article > développement back-end > ETL : extraire le nom d'une personne à partir d'un texte
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 :
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 :
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!