Библиотека на основе трансформатора для задач социального времени.
В настоящее время поддерживает:
| Задача | Языки |
|---|---|
| Анализ настроений | es, en, it, pt |
| Ненавистное обнаружение речи | es, en, it, pt |
| Обнаружение иронии | es, en, it, pt |
| Анализ эмоций | es, en, it, pt |
| Тегин и POS | es, en |
| Контекстуализированное обнаружение речи ненависти | эс |
| Целевой анализ настроений | эс |
Просто pip install pysentimiento и начните его использовать:
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})См. Задачи для более подробной информации о поддерживаемых задачах и языках, а также о сообщении о производительности для каждой базовой модели.
Кроме того, проверьте эти записные книжки с примерами того, как использовать pysentimiento для каждого языка:
pysentimiento оснащен препроцессором твита, специально подходящим для классификации твитов с моделями на основе трансформаторов.
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
Проверьте Train.md для получения дополнительной информации о том, как тренировать свои модели
Примечание: вам нужен доступ к наборам данных, которые на данный момент не являются общедоступными. Отправьте нам электронное письмо, чтобы получить доступ к ним.
Проверьте инструкции по обмену модели и загрузку »в документах huggingface .
pysentimiento -это библиотека с открытым исходным кодом. Однако, пожалуйста, имейте в виду, что модели обучены сторонним наборам данных и подлежат их соответствующим лицензиям, многие из которых предназначены для некоммерческого использования
Лицензия наборов данных TASS (лицензия на анализ настроений на испанском языке, анализ эмоций на испанском и английском языке)
Semeval 2017 лицензия набора данных (анализ настроений на английском языке)
Наборы данных Lince (лицензия на теги NER & POS)
Пожалуйста, используйте трекер выпуска репозитория, чтобы указать ошибки и сделать предложения (новые модели, используйте другие наборы данных, некоторые другие языки и т. Д.)
Если вы используете pysentimiento в своей работе, пожалуйста, укажите эту статью
@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 }
}Кроме того, предварительно обученные модели и наборы данных CITE цитируют модели для конкретных моделей, которые вы используете. Проверьте ссылки для деталей.