"Guides agents using textgenrnn encode_text_vectors,
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill embedding-analysis --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Embedding Analysis?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-embedding-analysis)More formats (shields.io, HTML) on the badges page.
---
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).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!