HashEmbedder#

class scikitplot.corpus.HashEmbedder(dimension=1024, token_pattern="[^\\W\\d_]+(?:['’][^\\W\\d_]+)*", lowercase=True)[source]#

Embed text with deterministic signed feature hashing.

Parameters:
dimensionint, default=1024

Number of output features. Must be positive.

token_patternstr, optional

Regular expression used to extract tokens. The default recognizes Unicode words and internal straight/curly apostrophes.

lowercasebool, default=True

Lowercase text before tokenization.

Parameters:
  • dimension (int)

  • token_pattern (str)

  • lowercase (bool)

Notes

This embedder is deliberately local and deterministic. Each token is hashed with BLAKE2b into one output column and assigned a deterministic sign. Rows are L2-normalized. The result is suitable for reproducible lexical/dense teaching paths, smoke tests, and offline retrieval baselines.

It does not provide learned semantic similarity and should not be presented as a substitute for sentence-transformer or API embeddings.

Examples

>>> embedder = HashEmbedder(dimension=32)
>>> vectors = embedder(["ghost father", "sleep dream"])
>>> vectors.shape
(2, 32)
>>> vectors.dtype == np.float32
True
__call__(texts)[source]#

Return a normalized float32 matrix for texts.

Parameters:
textsiterable of str

Input texts. The iterable is consumed exactly once.

Returns:
numpy.ndarray

Array with shape (n_texts, dimension) and dtype float32.

Parameters:

texts (Iterable[str])

Return type:

NDArray[float32]

dimension: int = 1024#
lowercase: bool = True#
token_pattern: str = "[^\\W\\d_]+(?:['’][^\\W\\d_]+)*"#