BERTopic
hdbscan
BERTopic | hdbscan | |
---|---|---|
22 | 6 | |
5,564 | 2,675 | |
- | 0.7% | |
8.2 | 5.8 | |
3 days ago | 3 days ago | |
Python | Jupyter Notebook | |
MIT License | BSD 3-clause "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.
BERTopic
-
how can a top2vec output be improved
Try experimenting with different hyperparameters, clustering algorithms and embedding representations. Try https://github.com/MaartenGr/BERTopic/tree/master/bertopic
-
SBERT Embeddings from Conversations
Try out this notebook which comes with the BERTopic repository.
-
Sentence transformers (BERTopic) on a Macbook Air
After some googling, I found this (but for M1 chip Mac) --I wonder if I'm stuck. Is this laptop just not up for the job of working with sentence transformers? Appreciate your advice
-
Comparing BERTopic to human raters
Most has already been said and I am not sure how relevant this is but since you are focusing on human raters it might be worthwhile to mention that there is a Pull Request in BERTopic that allows you to use models on top of the default pipeline that further fine-tunes the topic representation. In theory, this would allow you to even use ChatGPT or any of the other OpenAI models to label the topics. From a human annotator perspective, this might be interesting to pursue.
-
text clustering with XLNET, ROBERTA, ELMO and other pretrained models
The BERTopic library allows you to plug and play any type of embedding.
- How can I group domain specific keywords based on their word embeddings?
-
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 sentence-transformers to encode data into vectors, UMAP for dimensionality reduction and HDBSCAN to cluster nodes.
-
Classifying unstructured text: sentences, phrases, lists of words
BERTopic is a library to consider if you want something that groups data by topic.
-
[D] How to best extract product benefits/problems from customer reviews using NLP?
I have experimented a bit with BERTopic but didn't find the results very useful. The issue is, that it is very important what exactly people are liking or disliking about the products, not just the fact that they are talking about specific aspects.
- Classify texts using known categories, NLP
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 sentence-transformers to encode data into vectors, UMAP for dimensionality reduction and HDBSCAN to cluster nodes.
- Hierarchical clustering algorithm
-
Introduction to K-Means Clustering
Working in spatial data science, I rarely find applications where k-means 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/scikit-learn-contrib/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 gamma-linkage 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 sklearn-contrib 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/scikit-learn-contrib/hdbscan/issues/69
What are some alternatives?
Top2Vec - Top2Vec learns jointly embedded topic, document and word vectors.
faiss - A library for efficient similarity search and clustering of dense vectors.
gensim - Topic Modelling for Humans
OCTIS - OCTIS: Comparing Topic Models is Simple! A python package to optimize and evaluate topic models (accepted at EACL2021 demo track)
Milvus - A cloud-native vector database, storage for next generation AI applications
GuidedLDA - semi supervised guided topic model with custom guidedLDA
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:
contextualized-topic-models - A python package to run contextualized topic modeling. CTMs combine contextualized embeddings (e.g., BERT) with topic models to get coherent topics. Published at EACL and ACL 2021.
RACplusplus - A high performance implementation of Reciprocal Agglomerative Clustering in C++
PyABSA - Sentiment Analysis, Text Classification, Text Augmentation, Text Adversarial defense, etc.;
homemade-machine-learning - 🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained