Une bibliothèque basée sur un transformateur pour les tâches sociales.
Prise en charge actuellement:
| Tâche | Langues |
|---|---|
| Analyse des sentiments | es, en, it, pt |
| Détection de discours de haine | es, en, it, pt |
| Détection d'ironie | es, en, it, pt |
| Analyse des émotions | es, en, it, pt |
| Tagging NER et POS | es, en |
| Détection de discours de haine contextualisé | es |
| Analyse des sentiments ciblés | es |
Faites simplement pip install pysentimiento et commencez à l'utiliser:
from pysentimiento import create_analyzer
analyzer = create_analyzer ( task = "sentiment" , lang = "es" )
analyzer . predict ( "Qué gran jugador es Messi" )
# returns AnalyzerOutput(output=POS, probas={POS: 0.998, NEG: 0.002, NEU: 0.000})
analyzer . predict ( "Esto es pésimo" )
# returns AnalyzerOutput(output=NEG, probas={NEG: 0.999, POS: 0.001, NEU: 0.000})
analyzer . predict ( "Qué es esto?" )
# returns AnalyzerOutput(output=NEU, probas={NEU: 0.993, NEG: 0.005, POS: 0.002})
analyzer . predict ( "jejeje no te creo mucho" )
# AnalyzerOutput(output=NEG, probas={NEG: 0.587, NEU: 0.408, POS: 0.005})
"""
Emotion Analysis in English
"""
emotion_analyzer = create_analyzer ( task = "emotion" , lang = "en" )
emotion_analyzer . predict ( "yayyy" )
# returns AnalyzerOutput(output=joy, probas={joy: 0.723, others: 0.198, surprise: 0.038, disgust: 0.011, sadness: 0.011, fear: 0.010, anger: 0.009})
emotion_analyzer . predict ( "fuck off" )
# returns AnalyzerOutput(output=anger, probas={anger: 0.798, surprise: 0.055, fear: 0.040, disgust: 0.036, joy: 0.028, others: 0.023, sadness: 0.019})
"""
Hate Speech (misogyny & racism)
"""
hate_speech_analyzer = create_analyzer ( task = "hate_speech" , lang = "es" )
hate_speech_analyzer . predict ( "Esto es una mierda pero no es odio" )
# returns AnalyzerOutput(output=[], probas={hateful: 0.022, targeted: 0.009, aggressive: 0.018})
hate_speech_analyzer . predict ( "Esto es odio porque los inmigrantes deben ser aniquilados" )
# returns AnalyzerOutput(output=['hateful'], probas={hateful: 0.835, targeted: 0.008, aggressive: 0.476})
hate_speech_analyzer . predict ( "Vaya guarra barata y de poca monta es XXXX!" )
# returns AnalyzerOutput(output=['hateful', 'targeted', 'aggressive'], probas={hateful: 0.987, targeted: 0.978, aggressive: 0.969})Voir les tâches pour plus de détails sur les tâches et langues prises en charge, ainsi que pour les performances rapportées pour chaque modèle de référence.
Vérifiez également ces cahiers avec des exemples d'utilisation pysentimiento pour chaque langue:
pysentimiento dispose d'un pré-traitant Tweet spécialement adapté à la classification des tweet avec des modèles basés sur les transformateurs.
from pysentimiento . preprocessing import preprocess_tweet
# Replaces user handles and URLs by special tokens
preprocess_tweet ( "@perezjotaeme debería cambiar esto http://bit.ly/sarasa" ) # "@usuario debería cambiar esto url"
# Shortens repeated characters
preprocess_tweet ( "no entiendo naaaaaaaadaaaaaaaa" , shorten = 2 ) # "no entiendo naadaa"
# Normalizes laughters
preprocess_tweet ( "jajajajaajjajaajajaja no lo puedo creer ajajaj" ) # "jaja no lo puedo creer jaja"
# Handles hashtags
preprocess_tweet ( "esto es #UnaGenialidad" )
# "esto es una genialidad"
# Handles emojis
preprocess_tweet ( "??" , lang = "en" )
# 'emoji party popper emoji emoji party popper emoji' git clone https://github.com/pysentimiento/pysentimiento
pip install poetry
poetry shell
poetry install
Vérifiez Train.md pour plus d'informations sur la façon de former vos modèles
Remarque: vous avez besoin d'accéder aux ensembles de données, qui ne sont pas publics pour le moment. Envoyez-nous un e-mail pour y accéder.
Vérifiez les instructions "Partage du modèle et téléchargez" dans huggingface Docs.
pysentimiento est une bibliothèque open source. Cependant, sachez que les modèles sont formés avec des ensembles de données tiers et sont soumis à leurs licences respectives, dont beaucoup sont pour une utilisation non commerciale
Licence de jeu de données TASS (licence pour l'analyse des sentiments en espagnol, analyse des émotions en espagnol et en anglais)
Licence de l'ensemble de données SEMEVAL 2017 (analyse des sentiments en anglais)
Ensembles de données Lince (licence pour le marquage NER et POS)
Veuillez utiliser le tracker du numéro de référentiel pour signaler les bogues et faire des suggestions (nouveaux modèles, utiliser un autre ensemble de données, d'autres langues, etc.)
Si vous utilisez pysentimiento dans votre travail, veuillez citer ce document
@misc { perez2021pysentimiento ,
title = { pysentimiento: A Python Toolkit for Opinion Mining and Social NLP tasks } ,
author = { Juan Manuel Pérez and Mariela Rajngewerc and Juan Carlos Giudici and Damián A. Furman and Franco Luque and Laura Alonso Alemany and María Vanina Martínez } ,
year = { 2023 } ,
eprint = { 2106.09462 } ,a
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}En outre, PLACEACE citez des modèles et des ensembles de données pré-formés liés pour les modèles spécifiques que vous utilisez. Vérifiez les références pour plus de détails.