4.2k stars · MIT · v0.9.0 (2025-02-07) · Track this in Scout
Keyword and keyphrase extraction using BERT embeddings, from the author of BERTopic.
▶Repo detailsthe review · specs · pros & cons · install
What it is
KeyBERT is a small Python library. It turns a document into a list of numbers that stands for its meaning, does the same for every candidate phrase inside it, and ranks the phrases by how close the two are. It can also spread the results out so you do not get five versions of the same phrase.What it is good for. Anybody naming things automatically. Article tags, search suggestions, section titles and topic labels are all the same problem. It can use several different engines underneath, including the very small model2vec models, so you do not have to run a large model to get a usable answer. For you: this is the most direct fit on the page for Grasppy. Naming a cluster of messages is exactly this problem, and the ledger has had a gap here since toponymy (Ed. 6 #9).
- A single small library with one job, and the licence is MIT.
- You can swap the engine underneath, from a full sentence model down to a tiny one that runs on a plain server.
- Built-in options to keep the results varied rather than five near-copies of one phrase.
- Its newest release is version 0.9.0 from 7 February 2025, nineteen months ago. The repository itself is current: the last code landed on 25 August 2026, recorded in the 9 September sweep. This is a stable single-purpose library, not a neglected one, but you should know the release is old before you depend on it.
- Installing it the normal way pulls in PyTorch, which is several gigabytes to download and one to two gigabytes of memory to run. The light path avoids that but you have to ask for it.
- It is a library, so there is nothing to open and click. Without writing Python you get nothing from it.
- INESCTEC/yake
The same extraction of key phrases from one document with no training needed, but by counting position and frequency rather than by meaning, so it is much faster and does not understand the text; it moved from LIAAD/yake.
Track this in Scout - boudinfl/pke
The same ranked key phrases, offering a whole family of classical methods instead of one, but its releases have been slow for years.
Track this in Scout - csurfer/rake-nltk
The same key phrases from a much simpler counting method, tiny and with almost no dependencies, but with no meaning-based ranking and little recent maintenance.
Track this in Scout
source venv/bin/activate pip install keybert # the light path, no PyTorch: pip install keybert --no-deps pip install scikit-learn model2vec

