requ-classify-small / README.md
Richard3d7's picture
Requ Classify Small 0.1.0 (preview)
7a0e93e verified
|
Raw History Blame Contribute Delete
4.09 kB
---
license: apache-2.0
language:
- en
library_name: onnx
base_model: BAAI/bge-small-en-v1.5
pipeline_tag: text-classification
tags:
- business
- website-classification
- industry-classification
- operating-model
- requstory
---
# Requ Classify Small (preview)
**Reads a company's website and says what kind of business it is and which parts of the site describe real work.**
33 million parameters, about 50 MB, runs on a laptop CPU. Made by [Requstory Labs](https://requstory.com/lab) in Manchester, UK.
This is the model behind the free company maps on [requstory.com](https://requstory.com): it gives each map an industry,
finds the offerings, teams and processes on the website, and picks the sentences that prove them.
> **Preview.** On 341 held-out websites it gets the industry right 52% of the time (top 3: 75%). Our release target is
> 65%. Use the `sure` flag: when the model is sure (36% of sites) it is right 75% of the time.
## What it does
| Task | Output | Classes |
| --- | --- | --- |
| Industry | one industry with a probability, `sure`, and the top 3 | 64 industries, from accounting to water and waste |
| Item type | a type for each menu item, heading and button | offering, team, activity, audience, website, other |
| Page stage | the customer-journey stage of each page | discover, evaluate, buy, start, use, support, company |
| Process evidence | sentences that show a known business process of that industry | ~500 processes in 344 teams |
## Use it
```bash
pip install -r requirements.txt
python requ_classify.py < example.json
```
```python
from requ_classify import RequClassify
model = RequClassify() # loads from this folder
result = model(site) # site = {"name", "description", "pages": [{"url", "title", "text", "items": [...]}]}
print(result["industry"]) # {"id": "dental", "p": 0.81, "sure": true, "top3": [...]}
```
Each page's `items` are `{"text", "kind"}` with kind one of `menu`, `footer`, `h1`, `h2`, `h3`, `button`.
Read a site's homepage and up to 5 inner pages; that is what the model was trained on.
## How it works
1. Text is embedded with [bge-small-en-v1.5](https://huggingface.co/BAAI/bge-small-en-v1.5) (frozen, quantised ONNX).
2. Small linear heads, trained on our labels, give the industry, item types and page stages (`heads.safetensors`).
3. Process evidence: a gate keeps sentences that describe work, then matches them to the industry's processes in
`library.json`, using the library wording and similar sentences from training sites (`memory`).
## Training data
- 2,536 business websites found through Wikidata and OpenStreetMap, read from their public pages
(homepage and up to 5 inner pages).
- Labels came from an open-weight teacher model (DeepSeek, MIT licence) reading the same pages, checked by hand on a sample.
- The industry and process library (64 industries, 344 teams, ~500 processes) was written for Requstory and reviewed by people.
- No page text is published in this package. `memory` holds sentence embeddings from training sites, not the sentences.
## Results
On 341 held-out websites (`eval.json`):
| Measure | Score |
| --- | --- |
| Industry, top 1 | 52% |
| Industry, top 3 | 75% |
| Share of sites where the model is sure | 36% |
| Industry when sure | 75% |
| Item type | 68% |
| Page stage | 55% |
| Process match, top 1 | 41% |
| Before this model (rules) | 21% industry right |
## Limits
- English only. Sites built entirely in JavaScript need a browser to read first.
- Known confusions: trades and personal services (a plumber labelled as beauty services), holding groups, marketplaces.
- It describes what a website shows, not how a company really works inside.
- Do not use it to make decisions about people, credit or employment.
## Licence
Apache 2.0 for the heads, library and code. The bundled bge-small-en-v1.5 model is MIT (see `NOTICE`).
## Cite
```
@misc{requstory2026requclassify,
title = {Requ Classify Small},
author = {Requstory Labs},
year = {2026},
url = {https://huggingface.co/requstory/requ-classify-small}
}
```