shifterator
corex_topic
shifterator | corex_topic | |
---|---|---|
2 | 5 | |
272 | 622 | |
- | - | |
0.0 | 3.8 | |
6 months ago | about 3 years ago | |
Python | Python | |
Apache License 2.0 | Apache License 2.0 |
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.
shifterator
-
NLP: How to visualise the main context (in the form of words, sentences etc) of a text document?
This https://github.com/ryanjgallagher/shifterator
- Shifterator: Interpretable data visualizations for word-level differences
corex_topic
-
[NLP] Topic Identification & Quantisation
We ended up settling on a HuggingFace transformer + HDBSCAN pipeline from BERTopic. I like this because it makes it straightforward to tune and test, and you probabilistically assign documents to clusters, so you can do interesting aggregation and sampling after you have your inference done, like selecting text. Other options include top2vec which basically does the same thing without some guiding tools available in BERTopic. Either is suitable for what you’re doing. Older techniques include things like the Latent Dirichlet Allocation and COREX.
-
NLP: How to visualise the main context (in the form of words, sentences etc) of a text document?
If I understand correctly, it sounds like you are trying to do Topic Modeling on documents. One python library I’ve enjoyed using is https://github.com/gregversteeg/corex_topic which, besides doing general topic modeling, also learns hierarchies of topics.
-
Are topic models reliable or useful?
We started off by trying LDA and NMF, but the topics were too messy so we wound up switching to CorEx (https://github.com/gregversteeg/corex_topic), which is a semi-supervised algo that lets you "nudge" the model in the right direction using anchor terms. By the time our topics started looking coherent, it turned out that a regex with the anchor terms we'd picked outperformed the model itself. This case study was on a relatively small sample of relatively short documents (~4k survey open-ends) but for what it's worth, we also tried to use topic models to classify congressional Facebook posts (much larger corpus and longer documents) and the results were the same.
Overfitting is certainly part of the problem - in one of my earlier posts I talk about "conceptually spurious words," which are essentially the product of overfitting - but the more difficult problem is polysemy. I'm sure there are ways to mitigate that - expanding the feature space with POS tagging, etc. - but ultimately I think the solution is to simply avoid using a dimensionality reduction method for text classification. Supervised models are clearly the way to go - even if those "models" are just keyword dictionaries curated based on domain knowledge.
-
Trying to read text documents and allow for up to m labels per documents, like suggested tags, but the number of labels can be different for each document. Any advice?
Unsupervised is also possible for topic modelling: CorEX
-
NLP Problem
You could use CorEX for topic modelling. With that you can find the type of causes and from there their distribution. Then you can join it with other non-textual meta-data.
What are some alternatives?
scattertext - Beautiful visualizations of how language differs among document types.
GuidedLDA - semi supervised guided topic model with custom guidedLDA
obsei - Obsei is a low code AI powered automation tool. It can be used in various business flows like social listening, AI based alerting, brand image analysis, comparative study and more .
gensim - Topic Modelling for Humans
ambuda - Main application code for Ambuda, a breakthrough Sanskrit library (ambuda.org)
ennemi - Easy Nearest Neighbor Estimation of Mutual Information
Pattern - Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.
pyzotero - Pyzotero: a Python client for the Zotero API