syntaxdot
spaCy
syntaxdot | spaCy | |
---|---|---|
4 | 106 | |
65 | 28,751 | |
- | 1.5% | |
6.2 | 9.2 | |
6 months ago | 3 days ago | |
Rust | Python | |
GNU General Public License v3.0 or later | MIT 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.
syntaxdot
-
Candle: Torch Replacement in Rust
I am so happy about them releasing this. A few years ago I wrote a multi-task syntax annotator in Rust using Laurent Mazare's excellent tch-rs binding (it seems like he is also working on Candle):
https://github.com/tensordot/syntaxdot
However, the deployment story was always quite difficult. The PyTorch C++ API is not stable, so a particular version of tch-rs will only work with a particular PyTorch version. So, anyone wanting to use SyntaxDot always had to get exactly the right version of libtorch (and set some environment variables) to build the project.
The idea of making an abstraction over Torch and Rust ndarray (similar to Burn) crossed my mind several times, but there is only so much that I could do as a solo developer. So Candle would be a god-given if I was still working on this project.
Seeing Candle wants to make me port curated-transformers to Candle for fun:
https://github.com/explosion/curated-transformers
-
Ask HN: What is the job market like, for niche languages (Nim, crystal)?
They are obviously not as good as in Python, but if you are willing to invest time, it's definitely doable. E.g. I made a multi-task transformer-based syntax annotator in Rust using the tch Torch binding:
https://github.com/tensordot/syntaxdot
In my current job, I do NLP with Python, Cython, and some C++. I don't think doing it in Rust was much more work. Once you are beyond the stage of implementing a small research project or toy model, most systems are going to contain a lot of custom, specialized code. You will have to do that work in any language.
-
PyTorch 1.8 release with AMD ROCm support
What I like about PyTorch is that most of the functionality is actually available through the C++ API as well, which has 'beta API stability' as they call it. So, there are good bindings for some other languages as well. E.g., I have been using the Rust bindings in a larger project [1], and they have been awesome. A precursor to the project was implemented using Tensorflow, which was a world of pain.
Even things like mixed-precision training are fairly easy to do through the API.
[1] https://github.com/tensordot/syntaxdot
-
SpaCy v3.0 Released (Python Natural Language Processing)
Huggingface fills the need for task based prediction when you have a GPU.
With model distillation, it should be possible to annotate hundreds of sentences per second on a single CPU with a library like Huggingface Transformers.
For instance, one of my distilled Dutch multi-task syntax models (UD POS, language-specific POS, lemmatization, morphology, dependency parsing) annotates 316 sentences per second with 4 threads on a Ryzen 3700X. This distilled model has virtually no loss in accuracy, compared to the finetuned XLM-RoBERTa base model.
I don't use Huggingface Transformers, but ported some of their implementations to Rust [1], but that should not make a big difference since all the heavy lifting happens in C++ in libtorch anyway.
tl;dr: it is not true that tranformers are only useful for GPU prediction. You can get high CPU prediction speeds with some tricks (distillation, length-based bucketing in batches, etc.).
[1] https://github.com/tensordot/syntaxdot/tree/main/syntaxdot-t...
spaCy
-
Step by step guide to create customized chatbot by using spaCy (Python NLP library)
Hi Community, In this article, I will demonstrate below steps to create your own chatbot by using spaCy (spaCy is an open-source software library for advanced natural language processing, written in the programming languages Python and Cython):
-
Best AI SEO Tools for NLP Content Optimization
SpaCy: An open-source library providing tools for advanced NLP tasks like tokenization, entity recognition, and part-of-speech tagging.
-
Who has the best documentation you’ve seen or like in 2023
spaCy https://spacy.io/
-
A beginner’s guide to sentiment analysis using OceanBase and spaCy
In this article, I'm going to walk through a sentiment analysis project from start to finish, using open-source Amazon product reviews. However, using the same approach, you can easily implement mass sentiment analysis on your own products. We'll explore an approach to sentiment analysis with one of the most popular Python NLP packages: spaCy.
- Retrieval Augmented Generation (RAG): How To Get AI Models Learn Your Data & Give You Answers
-
Against LLM Maximalism
Spacy [0] is a state-of-art / easy-to-use NLP library from the pre-LLM era. This post is the Spacy founder's thoughts on how to integrate LLMs with the kind of problems that "traditional" NLP is used for right now. It's an advertisement for Prodigy [1], their paid tool for using LLMs to assist data labeling. That said, I think I largely agree with the premise, and it's worth reading the entire post.
The steps described in "LLM pragmatism" are basically what I see my data science friends doing — it's hard to justify the cost (money and latency) in using LLMs directly for all tasks, and even if you want to you'll need a baseline model to compare against, so why not use LLMs for dataset creation or augmentation in order to train a classic supervised model?
[0] https://spacy.io/
[1] https://prodi.gy/
- Swirl: An open-source search engine with LLMs and ChatGPT to provide all the answers you need 🌌
-
How to predict this sequence?
spaCy
-
What do you all think about (setq sentence-end-double-space nil)?
I chose spacy. Although it's not state of the art, it's very well established and stable.
- spaCy: Industrial-Strength Natural Language Processing
What are some alternatives?
laserembeddings - LASER multilingual sentence embeddings as a pip package
TextBlob - Simple, Pythonic, text processing--Sentiment analysis, part-of-speech tagging, noun phrase extraction, translation, and more.
duckling - Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings.
Stanza - Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages
projects - 🪐 End-to-end NLP workflows from prototype to production
NLTK - NLTK Source
tensorflow - An Open Source Machine Learning Framework for Everyone
BERT-NER - Pytorch-Named-Entity-Recognition-with-BERT
candle - Minimalist ML framework for Rust
polyglot - Multilingual text (NLP) processing toolkit
Kornia - Geometric Computer Vision Library for Spatial AI
textacy - NLP, before and after spaCy