Skip to content
Back to skills

Embedding Analysis

ASecurity

"Guides agents using textgenrnn encode_text_vectors,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
datapythonapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill embedding-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Embedding Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Embedding Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-embedding-analysis/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-embedding-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: embedding-analysis
description: "Guides agents using textgenrnn encode_text_vectors,
  attention-layer vectors, PCA/t-SNE, and similarity nearest-text analysis."
disable-model-invocation: true
metadata:
  disco-role: operating
license: NOASSERTION
---

# textgenrnn Embedding Analysis

Use this sub-skill when the task is to turn text strings into vectors with
textgenrnn's attention layer, reduce those vectors with PCA or t-SNE, or rank
candidate strings by cosine similarity.

## Route here for

- Calling `encode_text_vectors` on one string or a list of strings.
- Understanding raw attention-vector shape and why the default pretrained model
  returns 356 raw features before dimensionality reduction.
- Choosing `pca_dims`, `tsne_dims`, `tsne_seed`, `return_pca`, and
  `return_tsne` safely.
- Reusing a fitted PCA object to transform a later query vector into the same
  space as a candidate set.
- Calling `similarity(text, texts, use_pca=...)` for nearest-text ranking.
- Diagnosing PCA/t-SNE failures caused by too few texts, invalid dimensions, or
  shape mismatches.

## Route elsewhere

- Text generation, model loading for generation-only tasks, temperatures,
  prefixes, and output files: use [generation](../generation/SKILL.md).
- Training, fine-tuning, scratch model creation, context labels, word-level
  models, or changing `max_length`/representation capacity: use
  [training](../training/SKILL.md).
- Import, TensorFlow/Keras, `pkg_resources`, or package-version problems: use
  [root compatibility guidance](../../references/installation-and-compatibility.md).
- Architecture/config background, including why attention vectors have their
  size: use [root model overview](../../references/model-overview.md).

## First checks

1. Confirm the user has a textgenrnn-compatible runtime. The verified stack is a
   pre-Keras-3 TensorFlow/Keras stack such as TensorFlow 2.15.x with
   `pkg_resources` available. If imports fail, route to
   [installation and compatibility](../../references/installation-and-compatibility.md).
2. Ask whether the user wants raw attention vectors, PCA-reduced vectors,
   t-SNE coordinates for visualization, or nearest-text ranking.
3. Count the candidate texts before choosing PCA or t-SNE settings. Small lists
   need explicit dimensions or `pca_dims=None`.
4. Decide whether a fitted PCA object must be reused later. If yes, request
   `return_pca=True` while fitting candidate vectors, then transform new raw
   query vectors with that PCA object.

## Default-safe operating pattern

For small or unknown text counts, prefer raw vectors first:

```python
from textgenrnn import textgenrnn

textgen = textgenrnn()
texts = ["short example", "another example"]
vectors = textgen.encode_text_vectors(texts, pca_dims=None)
print(vectors.shape)
```

Then apply PCA only when the sample count supports the chosen dimension:

```python
candidate_vectors, pca = textgen.encode_text_vectors(
    texts,
    pca_dims=min(10, len(texts)),
    return_pca=True,
)
query_raw = textgen.encode_text_vectors("query text", pca_dims=None)
query_vector = pca.transform(query_raw)
```

For nearest-text ranking, avoid the library's PCA default unless there are
enough candidate texts for it:

```python
pairs = textgen.similarity("query text", texts, use_pca=False)
for candidate, score in pairs[:5]:
    print(score, candidate)
```

## Parameter decisions

- `pca_dims=None`: safest for one text or small candidate lists; returns raw
  attention vectors.
- `pca_dims=N`: use only when `N <= min(number_of_texts, raw_vector_width)`.
  In modern scikit-learn, `pca_dims=50` can fail on fewer than 50 texts.
- `return_pca=True`: valid only when PCA is actually fitted; do not combine it
  with `pca_dims=None`.
- `tsne_dims=N`: intended for visualization coordinates, usually `2` or `3`;
  requires enough samples for scikit-learn t-SNE's perplexity constraints.
- `tsne_seed=N`: use a fixed integer seed for repeatable t-SNE initialization.
- `return_tsne=True`: valid only when t-SNE is actually fitted; do not combine
  it with `tsne_dims=None`.
- `use_pca=False` in `similarity`: safest default for small candidate sets.
- `use_pca=True` in `similarity`: fits PCA on the candidate texts, transforms
  the query into that fitted space, then ranks by cosine similarity.

## Shape and truncation expectations

- A single input string is internally wrapped as a one-item list, so raw output
  shape is `(1, vector_width)`.
- The bundled pretrained model's raw attention width is 356.
- Custom trained models can have a different width if their architecture changes.
- Only the first `max_length - 1` text tokens influence vectors. The pretrained
  character-level model effectively uses the first 39 characters; train a model
  with a larger `max_length` or word-level configuration if that is not enough.
- PCA output shape is `(number_of_texts, pca_dims)` when the requested dimension
  is supported.
- t-SNE output shape is `(number_of_texts, tsne_dims)` when fitting succeeds.

## Bundled references and helper

- [API reference](references/api-reference.md): exact signatures, defaults, and
  parameter constraints.
- [Workflows](references/workflows.md): reusable recipes for raw vectors,
  PCA reuse, t-SNE coordinates, and similarity ranking.
- [Troubleshooting](references/troubleshooting.md): concrete fixes for
  PCA/t-SNE/sample-size/import/runtime failures.
- [Smoke helper](scripts/smoke_encode.py): safe command-line check that encodes
  sample texts and prints similarity rankings without depending on notebooks or
  plotting libraries.

## Do not

- Do not ask future agents to open notebooks or original repository files.
- Do not use PCA defaults blindly on small text sets.
- Do not treat t-SNE coordinates as reusable embeddings for new texts; t-SNE is
  a fitted visualization of a batch, not a stable transform for later queries.
- Do not retrain solely inside this sub-skill. If representation quality depends
  on new data, route to [training](../training/SKILL.md).

Files in this skill

  • SKILL.md5.9 KB
  • references/api-reference.md6.1 KB
  • references/troubleshooting.md5.7 KB
  • references/workflows.md5.7 KB
  • scripts/smoke_encode.py6.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.