psymarkers
Biblioteca de Python rápida y eficiente para extraer marcadores psicológicos y lingüísticos de textos. Está basada en literatura clínica y psicológica, y cuantifica patrones del lenguaje comúnmente asociados con estados de depresión, ansiedad, rumiación cognitiva o ideación suicida.
Instalación
Puedes instalar la biblioteca directamente desde PyPi:
pip install psymarkers
Nota: Requiere la descarga previa de los recursos léxicos de nltk si no los tienes en tu entorno. Puedes descargarlos todos automáticamente usando la función download_nltk_resources, integrada en la biblioteca:
import nltk
from psymarkers.resources import download_nltk_resources
download_nltk_resources()
nltk.download('punkt')
nltk.download('punkt_tab')
nltk.download('vader_lexicon')
nltk.download('averaged_perceptron_tagger_eng')
Nota: Los léxicos NRC son de uso exclusivamente no comercial (investigación o educación), por lo que no se
distribuyen con la biblioteca. Para usar los indicadores que dependen de ellos, descárgalos desde la web de sus autores
(EmoLex y VAD v1)
e indica su ruta en las variables de entorno PSYMARKERS_NRC_EMOLEX (fichero
NRC-Emotion-Lexicon/NRC-Emotion-Lexicon-Wordlevel-v0.92.txt del zip) y PSYMARKERS_NRC_VAD (fichero
NRC-VAD-Lexicon/NRC-VAD-Lexicon.txt del zip de la v1, no el de la carpeta BipolarScale).
Indicadores disponibles
Los indicadores actuales incluyen:
absolutist_ratio: Proporción de palabras absolutistas (always, never, completely), marcador de ansiedad y depresión. Source: In an Absolute State: Elevated Use of Absolutist Words Is a Marker Specific to Anxiety, Depression, and Suicidal Ideation.pronouns_ratio: Proporción de pronombres singulares de primera persona (I, me, my), asociado a focalización en uno mismo. Source: A meta-analysis of correlations between depression and first person singular pronoun usepronouns_plural_ratio: Proporción de pronombres plurales (we, us). Su disminución es un indicador de aislamiento social. Source: Language use of depressed and depression-vulnerable college students.somatic_ratio: Uso de palabras relacionadas con el cuerpo, dolor y fatiga. Source: Somatic symptoms in depression.hopelessness_ratio: Proporción de léxico que expresa desesperanza y falta de futuro. Source: Hopelessness and eventual suicide: a 10-year prospective study of patients hospitalized with suicidal ideation.negative_sentiment/compound_sentiment: Valencia emocional negativa y polaridad afectiva general (mediante VADER). Sources: Facebook language predicts depression in medical records and Predicting depression via social media resp.type_token_ratio: Diversidad léxica. Un ratio bajo indica vocabulario repetitivo (rumiación cognitiva). Source: The psychological meaning of words: LIWC and computerised text analysis methods.moving_average_type_token_ratio: Diversidad léxica (MATTR) independiente de la longitud del texto, calculada sobre ventanas dewindowpalabras (10 por defecto); NaN si el texto es más corto que la ventana. Source: Cutting the Gordian Knot: The Moving-Average Type–Token Ratio (MATTR).fear_ratio/sadness_ratio/anger_ratio: Proporción de palabras asociadas a miedo, tristeza e ira según el NRC Emotion Lexicon (Crowdsourcing a Word–Emotion Association Lexicon). Sources: Sentiment Analysis of Suicide Notes: A Shared Task and An emotion and cognitive based analysis of mental health disorders from social media data.arousal_score/dominance_score: Activación y dominancia medias de las palabras según el NRC VAD Lexicon v1 (Obtaining Reliable Human Ratings of Valence, Arousal, and Dominance for 20,000 English Words). Source: Language and Mental Health: Measures of Emotion Dynamics from Text as Linguistic Biosocial Markers.temporal_myopia_index: Ratio de verbos en pasado frente a verbos modales futuros, indicando estrechamiento temporal o incapacidad de proyectarse al futuro. Source: Suicide as escape from self.readability_score: Nivel de legibilidad de Flesch-Kincaid. Textos muy desorganizados se asocian a deterioro cognitivo o psicosis. Source: Linguistic features identify Alzheimer’s disease in narrative speech.insomnia_post: Validador de metadatos que retorna 1.0 si el texto fue publicado en horario nocturno (2 AM - 5 AM). Source: The Mind After Midnight: Nocturnal Wakefulness, Behavioral Dysregulation, and Psychopathology.
Ejemplos de uso
Como pipeline en aprendizaje automático
Ya que (intentamos) que todos los indicadores compartan una interfaz común, se puede usar para crear vectores de características limpios y listos para entrenar modelos:
from psymarkers import markers
text = "I am completely exhausted and have no future."
date = "2023-10-27T03:15:00Z"
# 1. Define your feature extraction pipeline
metrics_pipeline = [
markers.absolutist_ratio,
markers.pronouns_ratio,
markers.hopelessness_ratio,
markers.negative_sentiment,
markers.temporal_myopia_index,
markers.type_token_ratio
]
# 2. Extract all features into a dictionary in a single pass
features = {
metric.__name__: metric(text, date=date)
for metric in metrics_pipeline
}
# 3. Do whatever you like with the data
print(features)
Licencia
Este proyecto está licenciado bajo los términos de la GNU General Public License v3.0 (GPLv3). Eres libre de usar,
modificar y distribuir este software, siempre y cuando las obras derivadas se distribuyan bajo la misma licencia
abierta. Para más información, por favor consulta el fichero LICENSE.
Metadata
Release files for psymarkers 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| psymarkers-0.1.15.tar.gz | 12.3 kB | Without provenance | Details for psymarkers-0.1.15.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| psymarkers-0.1.15-py3-none-any.whl | Python 3 | none | any | Details for psymarkers-0.1.15-py3-none-any.whl |
Total release size: 25.4 kB
Release files / psymarkers-0.1.15.tar.gz
| Download URL | psymarkers-0.1.15.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa27330adae0a1582be9247bb9102e1efac0d41987f527a5d16da51c0186348e
|
|
BLAKE2b-256 checksum How to use checksums |
9645a4dacce6031842c8923d92cb1b3c2182b2f74f660b077848eb491f7b7d38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / psymarkers-0.1.15-py3-none-any.whl
| Download URL | psymarkers-0.1.15-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1cee6820d7b81bba9151444e05ce369a0ca4fa02efc4a87e6bbf7cb64a581332
|
|
BLAKE2b-256 checksum How to use checksums |
82354cc0d1a137153e6132002cf2c5de57bdd504962365a41c1f605e68eb3276
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for psymarkers 0.1.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.