Uma biblioteca baseada em transformador para tarefas de SocialNLP.
Atualmente suporta:
| Tarefa | Idiomas |
|---|---|
| Análise de sentimentos | es, pt, it, pt |
| Detecção de fala de ódio | es, pt, it, pt |
| Detecção de ironia | es, pt, it, pt |
| Análise de emoção | es, pt, it, pt |
| NER & POS Tagging | es, en |
| Detecção de fala de ódio contextualizada | es |
| Análise de sentimentos direcionados | es |
Basta pip install pysentimiento e começar a usá -lo:
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})Consulte as tarefas para obter mais detalhes sobre as tarefas e idiomas suportados e também para obter desempenho relatado para cada modelo de referência.
Além disso, verifique esses notebooks com exemplos de como usar pysentimiento para cada idioma:
pysentimiento possui um pré-processador de tweet especialmente adequado para classificação de tweet com modelos baseados em transformadores.
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
Verifique o trem.md para obter mais informações sobre como treinar seus modelos
Nota: Você precisa de acesso aos conjuntos de dados, que não são públicos por enquanto. Envie -nos um e -mail para obter acesso a eles.
Verifique as instruções "Compartilhamento de Modelo e Upload" nos documentos huggingface .
pysentimiento é uma biblioteca de código aberto. No entanto, esteja ciente de que os modelos são treinados com conjuntos de dados de terceiros e estão sujeitos a suas respectivas licenças, muitas das quais são para uso não comercial
Licença de conjunto de dados de borla (licença para análise de sentimentos em espanhol, análise de emoção em espanhol e inglês)
Licença de conjunto de dados semevial 2017 (análise de sentimentos em inglês)
Conjuntos de dados de linha (licença para etiquetas NER e POS)
Use o rastreador de problemas do repositório para apontar bugs e fazer sugestões (novos modelos, use outros conjuntos de dados, alguns outros idiomas etc.
Se você usar pysentimiento em seu trabalho, cite este artigo
@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 }
}Além disso, o Pleace cita modelos e conjuntos de dados pré-treinados relacionados para os modelos específicos que você usa. Verifique as referências para obter detalhes.