Ir al contenido

EmoParse

Análisis semiótico de emociones en discursos

v0.7.0BetaLicencia MIT

Comandos

Referencia completa de lo que se puede escribir en la consola. Es la página técnica del sitio: lista cada comando con todas sus opciones. Para instalar el programa y hacer un primer análisis, ver Empezar.

Cómo leer esta página

Las opciones marcadas como requeridas hay que escribirlas siempre. Las que no muestran valor son interruptores: alcanza con nombrarlas. Todo comando acepta además --help, que imprime lo mismo que esta página pero en la consola.

Opciones globales

Válidas para cualquier subcomando, escritas antes de él.

OpciónValorDefaultQué hace
-v, --verboseLogging en DEBUG (más detalle).
-q, --quietLogging en WARNING (menos ruido).
--log-dirDIRDirectorio donde escribir el log de la corrida. Default: la variable EMOPARSE_LOG_DIR, o `logs/`.
--no-log-fileNo escribir el log a archivo; solo consola.

emoparse run

Carga la config, ingesta los discursos del input, y ejecuta todas las stages habilitadas. Si la DB ya existe (mismo run-id), reanuda desde donde quedó.

OpciónValorDefaultQué hace
--config, -cCONFIGrequeridoPath al YAML de config.
--input, -iINPUTrequeridoPath al CSV/JSON de discursos.
--run-idRUN_IDrequeridoIdentificador único del run.
--dbDBPath al .sqlite del run. Default: <runs_dir>/<run_id>.sqlite.
--stagesSTAGESLista comma-separated de stages a correr. Válidas: technoparse,emoji_affect,hashtag_semiotics,tecno_usage,vision_describe,summarizer,metadata,enunciation,actors,emotions,emotions_pass2,explode_emotions,deixis,modalidad,normalize_emotions,characterizer,reframing,actants,judge,semas. Si se omite, se usan las stages por default; el género puede sumar etapas propias. Un --stages explícito se respeta tal como fue escrito y debe incluir las dependencias duras.
--prepare-onlyCrea o amplía la DB con la ingesta y la segmentación del corpus, sin ejecutar stages ni cargar modelos. Se puede combinar con --resume mientras la base siga siendo de preparación.
--genreGENREID del género de discurso a aplicar. Default: 'discurso_presidencial'. Los géneros disponibles dependen de los entry-points 'emoparse.genres' instalados. El género determina los roles enunciativos válidos, la unidad de chunking (frase/parrafo/documento), y opcionalmente overrides de modelos y batch_sizes.
--selectARCHIVO.YAMLArchivo YAML que acota qué unidades se analizan. Admite campos del input y payloads de stages previas con notación punto, por ejemplo metadata.tipo_discurso o enunciation.enunciador. Los filtros de payload empiezan a regir después de que su stage productora queda completa. Ver data/ejemplos/seleccion.yaml y seleccion_payload_v070.yaml.
--mappingARCHIVO.YAMLMapping YAML para adaptar un CSV tabular de terceros sin reescribirlo. Define encoding, delimitador, fila de encabezado y columnas de origen. Puede generarse con `emoparse ingest-map`.
--enunciadorAcota la detección de emociones (ambos pases) a las del enunciador. Combinable con --enunciatarios y --actores (se unen). Si no se pasa ninguna de las tres, se analizan todos los experienciadores.
--enunciatariosAcota la detección de emociones (ambos pases) a las de los enunciatarios.
--actoresAcota la detección de emociones (ambos pases) a las de otros actores (distintos del enunciador y los enunciatarios).
--embedInyecta como contexto la información adjunta de cada post (título/descripción/sitio de links del campo embed, alt de imágenes) en emotions, emotions_pass2, enunciation y metadata. Las descripciones de vision_describe ya se inyectan solas si esa stage corrió antes.
--budget-tokensNTecho acumulado de tokens reales para esta DB/run. Al alcanzarlo no se inicia otra llamada LLM; el run queda pausado y puede reanudarse con --resume y un techo mayor. Requiere pipeline.cache_enabled=true.
--overwrite-dbSi la DB del run ya existe, la elimina y empieza de cero sin preguntar. Sin esta flag (ni --resume), una DB existente dispara una pregunta interactiva (o un error si no hay TTY).
--resumeSi la DB del run ya existe, reanuda sin preguntar (el comportamiento clásico de re-correr el mismo run-id).

emoparse server

Prepara o lanza llama-server en foreground a partir de un alias backend=llama_server. --dry-run muestra el comando sin ejecutarlo; --check consulta /health y /slots de un server ya iniciado.

OpciónValorDefaultQué hace
--configYAMLconfig.yamlConfig de EmoParse (default: config.yaml).
--modelALIASrequeridoAlias de models con backend=llama_server.
--dry-runMostrar perfil y comando efectivo sin iniciar el proceso.
--checkComprobar disponibilidad y slots de un server ya iniciado.
--binaryRUTASobrescribir el ejecutable llama-server sólo para este lanzamiento.

emoparse doctor

Inspecciona encoding, delimitador, encabezado, columnas, identificadores, contenido, fechas, HTML y granularidad antes de adaptar un corpus tabular. No escribe el input.

OpciónValorDefaultQué hace
--input, -iINPUTrequeridoCSV a diagnosticar.
--genreGENREGénero con el que se evaluará la granularidad. Default: discurso_presidencial.
--mappingARCHIVO.YAMLMapping ya editado que se quiere verificar en lugar de usar la propuesta automática.

emoparse ingest-map

Detecta el formato y propone correspondencias de columnas. Escribe un YAML revisable; nunca transforma ni reescribe el corpus de origen.

OpciónValorDefaultQué hace
--input, -iINPUTrequeridoCSV de origen.
--outOUTrequeridoYAML de mapping a escribir.
--genreGENREGénero para incluir, cuando corresponda, su metadata propia en la propuesta.
--overwritePermite reemplazar el archivo --out si ya existe.

emoparse status

Muestra el progreso del pipeline en una DB.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite.

emoparse retry

Modos: 1) --stage <n>: limpia todos los errors de esa stage. En el próximo `emoparse run` se reintentan. 2) --policy <file>: aplica un YAML de policies (target=failed/completed/all, filters declarativos sobre el payload JSON, override_model opcional). Si además se pasan --config + --input + --run-id, ejecuta el pipeline con el config overrideado por las policies.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite.
--stageSTAGEModo legacy: stage cuyos errors limpiar. Una de: summarizer, metadata, enunciation, actores, emociones, characterizer, actants.
--policyPOLICYModo policy: path al YAML de retry policies declarativas. Incompatible con --stage.
--configCONFIG(opcional, solo con --policy) Path al config.yaml. Si se pasa junto con --input y --run-id, después de aplicar las policies se ejecuta el pipeline con el config overrideado.
--inputINPUT(opcional, solo con --policy) Path al CSV/JSON de discursos.
--run-idRUN_ID(opcional, solo con --policy) Identificador del run.

emoparse inspect

Imprime los datos asociados a un discurso en la DB.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite.
--codigoCODIGOrequeridoCódigo del discurso a inspeccionar.

emoparse stats

Muestra estadísticas del cache LLM.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite.

emoparse metrics

Imprime la última métrica registrada de cada stage del run. Las métricas se persisten al final de cada stage durante `emoparse run`. Si una stage corrió varias veces, se muestra la más reciente.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite del run.

emoparse judge

Read-only: imprime el resumen de juicios persistidos en la tabla `judgments`. La ejecución del judge se hace incluyéndolo en `--stages` durante `emoparse run` (es opt-in).

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite del run.
--codigoCODIGOMostrar solo este discurso. Default: todos.
--coherentesListar también las emociones juzgadas como coherentes.

emoparse modalidad

Clasifica, con el pre-pass NLP (spaCy) y sin LLM, únicamente los vínculos cuya modalidad puede resolverse con alta confianza. Los casos ambiguos quedan pendientes; no se persiste un fallback tentativo. Idempotente y respetuoso de ediciones humanas. La variante con LLM se corre vía `emoparse run --stages ...,modalidad`.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite del run.
--config, -cCONFIGconfig.yamlPath al YAML de config. Default: config.yaml.
--nlp-modelNLP_MODELModelo spaCy a usar (ES). Default: es_core_news_md con fallback a sm/lg. Instalá el modelo con `python -m spacy download <modelo>`.

emoparse semas

Read-only por default (no ejecuta nada sin flags). Con --reset, borra todos los semas persistidos en `canonico_semas` (propuestos y editados a mano), sin distinguir origen. Para reasignarlos con el vocabulario vigente, correr después `emoparse run --stages ...,semas` sobre el mismo run.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite del run.
--resetBorra todos los semas existentes (propuestos y humanos). No hay vuelta atrás.

emoparse export

Genera cuatro CSVs en el directorio de salida: discursos.csv, metadata_genero.csv, frases.csv y emociones.csv. La metadata propia del género se exporta en formato largo, con etiquetas y presencia por campo. Los payloads de stages a nivel discurso se flatten a columnas; los de frases se preservan como JSON strings.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite del run.
--output-dirOUTPUT_DIRrequeridoDirectorio donde escribir los CSVs. Se crea si no existe.

emoparse validate

Lee las emociones ya caracterizadas de la DB y aplica los domain validators. Las issues encontradas se persisten en 'validation_issues' y se muestran en consola. Siempre informativo (warnings), no bloquea.

OpciónValorDefaultQué hace
--dbDBrequeridoPath al .sqlite.
--codigoCODIGOValidar solo este discurso (por código). Default: todos.
--verbose-issuesMostrar detalle de cada issue aunque sean muchas.
--knowledge-dirKNOWLEDGE_DIRDirectorio de knowledge files. Permite cargar restricciones de caracterización para activar V11_DesviacionOntologica.
--constraints-fileCONSTRAINTS_FILErestricciones_caracterizacion_emociones.jsonNombre del archivo de restricciones de caracterización dentro de --knowledge-dir. Default: restricciones_caracterizacion_emociones.json.

emoparse scrape

Scrapea discursos de una fuente registrada. Modo append incremental: se puede interrumpir y reanudar (dedupe por URL).

OpciónValorDefaultQué hace
--sourcecasarosada | pagina12requeridoFuente registrada a scrapear.
--outputOUTPUTrequeridoCSV de salida. Se crea si no existe; append si ya existe.
--maxMAXMáximo de discursos efectivamente extraídos y escritos en esta corrida. Las URLs fallidas, omitidas o ya presentes no consumen el tope.
--fromYYYY-MM-DDSolo discursos con fecha >= esta. Best-effort si la fuente no expone fechas en el listado.
--toYYYY-MM-DDSolo discursos con fecha <= esta.
--sectionSECCIONPágina/12: limitar el descubrimiento a una o varias secciones RSS. Puede repetirse o recibir valores separados por coma, por ejemplo --section economia --section deportes.
--subtypeSUBTIPOPágina/12: limitar la salida a subtipos de artículo. Valores públicos: static y lbp_article. Puede repetirse o recibir valores separados por coma. Si se omite, se aceptan ambos.
--modeauto | http | seleniumautoCómo descargar páginas. auto = HTTP con fallback Selenium.
--timeoutTIMEOUT20.0Timeout HTTP por request (segundos).

emoparse acquire

Adquiere posts (tuits y afines) de una fuente registrada. Modo append incremental: se puede interrumpir y reanudar (dedupe por id). El JSONL resultante se analiza con `emoparse run --genre tuit --input <archivo>.jsonl`.

OpciónValorDefaultQué hace
--sourcebluesky | csv | jsonl | mastodon | x_apirequeridoFuente de posts (ej. bluesky, jsonl, csv).
--outOUTrequeridoJSONL de salida. Se crea si no existe; append si ya existe.
--queryQUERYBúsqueda (texto libre, hashtag, operadores de la fuente).
--userUSERHandle de una cuenta cuyos posts adquirir.
--threadTHREADId del post raíz de una conversación a adquirir completa.
--maxMAXMáximo de posts a extraer en esta corrida. None = sin tope.
--min-conv-postsNSolo con --query: adquiere únicamente conversaciones con al menos N posts. Por cada resultado de búsqueda se expande su hilo completo (una llamada por conversación candidata, deduplicadas); las conversaciones más cortas se descartan. Agnóstico de la fuente: usa el fetch_thread del adapter.
--max-convsMCon --min-conv-posts: corta tras adquirir M conversaciones que pasaron el filtro (economía de adquisición).
--fromYYYY-MM-DDSolo posts con fecha >= esta. Best-effort si la fuente no filtra por fecha.
--toYYYY-MM-DDSolo posts con fecha <= esta.
--langLANGFiltro de idioma (código ISO, ej. 'es') si la fuente lo soporta.
--inputPATHArchivo de entrada para fuentes de importación (jsonl, csv).
--mappingMAPPINGJSON {campo_normalizado: columna} para la fuente csv.
--with-mediaDescarga las imágenes adjuntas a <out>_media/ y registra path_local en cada post (solo imágenes, con tope de tamaño).
--with-author-profileCompleta autor_bio/autor_seguidores/autor_siguiendo/autor_verificado con una llamada extra por autor (cache en memoria). Solo si la fuente lo soporta; se ignora con un warning si no.
--pseudonymizeSeudonimiza handles al escribir (sal persistida en <out>.salt). Ver emoparse/acquisition/README.md.
--timeoutTIMEOUT20.0Timeout HTTP por request (segundos), si la fuente lo usa.

emoparse cite-corpus

Parte de una SQLite de posts ya preparada, resuelve padres, raíz, citas y reposts fuera del corpus y publica una SQLite satélite independiente. No ejecuta LLM.

OpciónValorDefaultQué hace
--dbDBrequeridoSQLite origen ya preparada.
--sourceSOURCEFuente capaz de resolver ids concretos. Default: plataforma única del corpus.
--outOUTSQLite satélite. Default: <db>.satellite.sqlite.
--profundidadN1Generaciones de contexto saliente a resolver. Default: 1.
--maxNMáximo de posts externos que puede incorporar el satélite.
--timeoutTIMEOUT20.0Timeout de la fuente si su adapter lo admite.

emoparse network

Construye grafos de interacción (reply, mention, rt, qt, hashtag_co) desde los posts del run, calcula métricas y comunidades, las persiste en la DB y reporta el acoplamiento con el análisis emocional. Requiere el extra [network].

OpciónValorDefaultQué hace
--dbDBrequeridoPath a la DB SQLite del run.
--graphsLISTAreply,mention,rt,qt,hashtag_coGrafos a construir, separados por coma. Válidos: reply, mention, rt, qt, hashtag_co. El grafo 'follow' se adquiere aparte con `emoparse follows` y se mide agregándolo acá.
--cliquesReporta las cliques de vínculos recíprocos de cada grafo de cuentas (todos se vinculan con todos, a diferencia de la comunidad, que solo es una zona densa).
--min-cliqueN3Tamaño mínimo de clique a reportar (default 3).
--flujoCirculación de la emoción: contagio por tipo de emoción y transición fórica partida en intra e inter comunidad.
--similitudAgrupamiento narrativo: agrupa los simulacros emocionales por parecido entre sus componentes.
--similitud-componentesLISTAexperienciador,tipo_emocion,fuente,mediador,verificador_normativo,verificador_observacional,operador_modificacion,foriaComponentes del simulacro que inciden en el parecido, separados por coma. Disponibles: experienciador, tipo_emocion, fuente, semas_experienciador, semas_fuente, mediador, verificador_normativo, verificador_observacional, operador_modificacion, polaridad, foria, intensidad, dominancia, tipo_configuracion.
--similitud-umbralX0.5Parecido mínimo para ligar dos simulacros (default 0.5).
--semanticoAgrupa los posts por contenido semántico (requiere el extra [embeddings]).
--modelo-embeddingsNOMBREModelo de sentence-transformers para --semantico.
--seedSEED42Seed para la detección de comunidades (reproducibilidad).
--profile-graphreply | mention | rt | qt | followGrafo cuyas comunidades se usan para el perfil emocional. Por defecto, el primer grafo de autores con comunidades.
--export-dirEXPORT_DIRDirectorio para exportar GEXF + CSVs por grafo (Gephi) y el perfil por comunidad.
--topTOP10Cantidad de nodos (y de tipos de emoción por comunidad) a mostrar en los resúmenes.

emoparse follows

Pide a la fuente a quién sigue cada cuenta del corpus y persiste como grafo 'follow' las aristas internas al corpus. Habilita el análisis de comunidades y cliques por seguimiento en `emoparse network` y en la tab Red.

OpciónValorDefaultQué hace
--dbDBrequeridoPath a la DB SQLite del run.
--sourcebluesky | csv | jsonl | mastodon | x_apirequeridoFuente desde la que consultar el seguimiento.
--handlesHANDLESArchivo con un handle por línea. Necesario cuando el corpus está seudonimizado: la DB guarda alias, que no se pueden consultar en la plataforma.
--pseudonymizeEscribe las aristas con los alias de --salt, para que el grafo quede en los mismos términos que un corpus seudonimizado.
--saltSALTArchivo de sal de la seudonimización (el mismo que usó `acquire --pseudonymize`).
--seedSEED42Seed para la detección de comunidades (reproducibilidad).
--max-followsN5000Tope de seguidos consultados por cuenta (default 5000).
--rehacerDescarta el grafo persistido y vuelve a consultar todas las cuentas. Sin esta flag, se reanuda: solo se consultan las que todavía no tienen aristas.
--timeoutTIMEOUT20.0Timeout HTTP por request (segundos), si la fuente lo usa.

emoparse eval

Evaluación humana y regresión semántica del análisis emocional.

OpciónValorDefaultQué hace
--dbDBDB del run. Puede repetirse con --golden --por-genero; los otros modos requieren una sola.
--goldenGOLDENGolden set (.jsonl o directorio de .jsonl).
--por-generoSepara el reporte del golden por género y admite un --db por género.
--persist-reportPersiste el reporte estructurado en la tabla eval_reports de cada run. Disponible para --golden y --control.
--golden-versionGOLDEN_VERSIONVersión legible del golden persistido; se infiere de una ruta como golden/v2.
--make-sampleExporta planilla de anotación a ciegas (--out).
--make-retestMAKE_RETESTExtrae una segunda pasada ciega desde una planilla completa (--out).
--freeze-sampleFREEZE_SAMPLECongela una planilla completa como golden JSONL v2 (--out).
--nN200Tamaño de la muestra (200 por defecto).
--seedSEED42Seed del muestreo reproducible.
--min-textosMIN_TEXTOS1Cantidad mínima de textos distintos exigida al crear la muestra.
--max-por-textoMAX_POR_TEXTOMáximo de unidades tomadas de un mismo texto.
--generoGENEROGénero explícito para runs antiguos o para congelar una planilla sin metadata.
--anotadorANOTADORSobrescribe `anotador` en todas las filas al congelar el golden.
--pasadaPASADASobrescribe `pasada` en todas las filas al congelar el golden.
--fechaFECHASobrescribe `fecha_anotacion` (AAAA-MM-DD) al congelar el golden.
--agreementAGREEMENTCSV concatenado con `anotador`, `pasada`, `id_muestra` y columnas de anotación.
--controlReporta la tasa de detección del run sobre un corpus de control.
--outOUTArchivo de salida (.md, .csv o .jsonl).

emoparse app

Inicia el servidor Streamlit y abre el dashboard en el navegador. Equivalente a: streamlit run src/emoparse/app/__main__.py

OpciónValorDefaultQué hace
--portPORTPuerto en el que escucha Streamlit (default: 8501).
--no-browserNo abrir el navegador automáticamente al iniciar.