word2vec
hdbscan
word2vec  hdbscan  

3  6  
1,506  2,726  
  1.0%  
0.0  6.9  
over 1 year ago  10 days ago  
C  Jupyter Notebook  
Apache License 2.0  BSD 3clause "New" or "Revised" License 
Stars  the number of stars that a project has on GitHub. Growth  month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
word2vec

Is CosineSimilarity of Embeddings Really About Similarity?
The original paper included source, and that has their test data and results  it gets ~77% accuracy on about 20k example word analogies (with 99.7% coverage), and 78% accuracy with phrases with 77% coverage. You can see the test set here:
https://github.com/tmikolov/word2vec/blob/master/questionsw...

Introduction to KMeans Clustering
It is not necessarily the case.
For example, word2vec uses kmeans clustering using cosine similarity measure [1]. It works very, very well. The caveat is not many optimization variations of kmeans will work with that "distance".
[1] https://github.com/tmikolov/word2vec/blob/master/word2vec.c#...
hdbscan

Introducing the Semantic Graph
A number of excellent topic modeling libraries exist in Python today. BERTopic and Top2Vec are two of the most popular. Both use sentencetransformers to encode data into vectors, UMAP for dimensionality reduction and HDBSCAN to cluster nodes.
 Hierarchical clustering algorithm

Introduction to KMeans Clustering
Working in spatial data science, I rarely find applications where kmeans is the best tool. The problem is that it is difficult to know how many clusters you can expect on maps. Is it 5, 500, or 10,000? Here HDBSCAN [1] shines because it will cluster _and_ select the most suitable number of clusters, to cut the single linkage cluster tree.
[1]: https://github.com/scikitlearncontrib/hdbscan

New clustering algorithms like DBSCAN and OPTICS?
You might be interested in HDBSCAN which has several implementations, but the python implelementation is commonly used. That implementation makes use of algorithmic changes to significantly improve the computational complexity. Some more recent variations on that include the gammalinkage variant which is quite powerful.

DBSCAN ALternatives?
The OPTICS algorithm is in the latest versions of sklearn and is a reasonable alternative to DBSCAN  it has much the same theoretical foundation, but can cope with variable density clusters better. If you are willing to step outside sklearn itself there is also HDBSCAN which is a hierarchical clustering version of DBSCAN and is in sklearncontrib so should be compatible with an sklearn pipeline.

[D] Good algorithm for clustering big data (sentences represented as embeddings)?
Maybe use (H)DBScan which I think should work also for huge datasets. I don't think there is a ready to use clustering with unbuild cosine similarily metrics, and you also won't be able to precompute the 100k X 100k dense similarity matrix. The only way to go on this is to L2 normalize your embeddings, then the dot product will be the angular distance as a proxy to the cosine similarily. See also https://github.com/scikitlearncontrib/hdbscan/issues/69
What are some alternatives?
ckwrap  Wrapper for Ckmeans.1d.dp.
faiss  A library for efficient similarity search and clustering of dense vectors.
starboard  Moved to https://github.com/aquasecurity/trivyoperator
Top2Vec  Top2Vec learns jointly embedded topic, document and word vectors.
Milvus  A cloudnative vector database, storage for next generation AI applications
RACplusplus  A high performance implementation of Reciprocal Agglomerative Clustering in C++
100DaysofMLCode  My journey to learn and grow in the domain of Machine Learning and Artificial Intelligence by performing the #100DaysofMLCode Challenge. Now supported by bright developers adding their learnings :+1:
homemademachinelearning  ðŸ¤– Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained
leidenalg  Implementation of the Leiden algorithm for various quality functions to be used with igraph in Python.
PyImpetus  PyImpetus is a Markov Blanket based feature subset selection algorithm that considers features both separately and together as a group in order to provide not just the best set of features but also the best combination of features
sentencetransformers  Multilingual Sentence & Image Embeddings with BERT
umap  Uniform Manifold Approximation and Projection