• Stars
    star
    176
  • Rank 216,987 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

FastText for Node.js

Build Status Binder

What is FastText and FastText.js

FastText is a library for efficient learning of word representations and sentence classification. FastText is provided by Facebook Inc. FastText.js is a JavaScript library that wraps FastText to run smoothly within node.

What's New

Added support for M1 Apple processor.

Table of Contents

FastText.js APIs

This version of FastText.js comes with the following JavaScript APIs

FastText.new(options)
FastText.load()
FastText.loadnn() [NEW API]
FastText.word2vec() [NEW API]
FastText.train()
FastText.test()
FastText.predict(string)
FastText.nn() [NEW API]

How to Install

git clone https://github.com/loretoparisi/fasttext.js.git
cd fasttext.js
npm install

Install via NPM

FastText.js is available as a npm module here. To add the package to your project

npm install --save fasttext.js

Install via Docker

Build the docker image

docker build -t fasttext.js .

This will update the latest FastText linux binaries from source to lib/bin/linux.

Now running the image on the docker host binding the port 3000 it is possibile to run the server example:

docker build -t fasttext.js .
docker run --rm -it -p 3000:3000 fasttext.js node fasttext.js/examples/server.js 

To serve a different custom model a volume can be used and passing the MODEL environment variable

docker run -v /models/:/models --rm -it -p 3000:3000 -e MODEL=/models/my_model.bin fasttext.js node fasttext.js/examples/server.js 

WASM

We provide a WASM compiled binary of FastText to be used natively NodeJS. Please check /wasm folder for library and examples. 🆕

How to Use

Train

You can specify all the train parameters supported by fastText as a json object

train: {
    // number of concurrent threads
    thread: 8,
    // verbosity level [2]
    verbose: 4,
    // number of negatives sampled [5]
    neg: 5,
    // loss function {ns, hs, softmax} [ns]
    loss: process.env.TRAIN_LOSS || 'ns',
    // learning rate [0.05]
    lr: process.env.TRAIN_LR || 0.05,
    // change the rate of updates for the learning rate [100]
    lrUpdateRate: 100,
    // max length of word ngram [1]
    wordNgrams: process.env.TRAIN_NGRAM || 1,
    // minimal number of word occurences
    minCount: 1,
    // minimal number of word occurences
    minCountLabel: 1,
    // size of word vectors [100]
    dim: process.env.TRAIN_DIM || 100,
    // size of the context window [5]
    ws: process.env.TRAIN_WS || 5,
    //  number of epochs [5]
    epoch: process.env.TRAIN_EPOCH || 5,
    // number of buckets [2000000]
    bucket: 2000000,
    // min length of char ngram [3]
    minn: process.env.TRAIN_MINN || 3,
    // max length of char ngram [6]
    maxn: process.env.TRAIN_MAXN || 6,
    // sampling threshold [0.0001]
    t: 0.0001,
    // load pre trained word vectors from unsupervised model
    pretrainedVectors: process.env.WORD2VEC || ''
    }

Train Supervised

To train the model you must specificy the training set as trainFile and the file where the model must be serialized as serializeTo. All the FastText supervised options are supported. See here for more details about training options. Note that serializeTo does not need to have the file extension in. A bin extension for the quantized model will be automatically added. You can use the pretrainedVectors option to load an unsupervised pre-trained model. Please use the word2vec api to train this model.

var fastText = new FastText({
    serializeTo: './band_model',
    trainFile: './band_train.txt'
});
fastText.train()
.then(done=> {
    console.log("train done.");
})
.catch(error => {
    console.error(error);
})

Train Unsupervised

To train an unsupervised model use the word2vec api. You can specify the words representation to train using word2vec.model parameter set to skipgram or cbow and use the train parameters as usual:

fastText.word2vec()
    .then(done => {
    })
    .catch(error => {
        console.error("Train error", error);
    })

Track Progress

It is possible to track the training progress using the callback parameters trainProgress in the options:

{
    trainCallback: function(res) {
        console.log( "\t"+JSON.stringify(res) );
    }
}

This will print out the training progress in the following format:

{
    "progress":17.2,
    "words":174796,
    "lr":0.041382,
    "loss":1.232538,
    "eta":"0h0m",
    "eta_msec":0
}

that is the parsed JSON representation of fasttext output

Progress:  17.2% words/sec/thread:  174796 lr:  0.041382 loss:  1.232538 ETA:   0h 0m

where eta_msec represents the ETA (estimated time of arrival) in milliseconds.

So a typical progress will fire the trainCallback several times like

{"progress":0.6,"loss":4.103271,"lr":0.0498,"words":21895,"eta":"0h9m","eta_msec":540000}
{"progress":0.6,"loss":3.927083,"lr":0.049695,"words":21895,"eta":"0h6m","eta_msec":360000}
{"progress":0.6,"loss":3.927083,"lr":0.049695,"words":21895,"eta":"0h6m","eta_msec":360000}
{"progress":0.6,"loss":3.676603,"lr":0.049611,"words":26813,"eta":"0h5m","eta_msec":300000}
{"progress":0.6,"loss":3.676603,"lr":0.049611,"words":26813,"eta":"0h5m","eta_msec":300000}
{"progress":0.6,"loss":3.345654,"lr":0.04949,"words":33691,"eta":"0h4m","eta_msec":240000}
{"progress":1.2,"loss":3.345654,"lr":0.04949,"words":39604,"eta":"0h4m","eta_msec":240000}

Until the progress will reach 100%:

{"progress":99,"loss":0.532964,"lr":0.000072,"words":159556,"eta":"0h0m","eta_msec":0}
{"progress":99,"loss":0.532964,"lr":0.000072,"words":159556,"eta":"0h0m","eta_msec":0}
{"progress":99,"loss":0.532392,"lr":-0.000002,"words":159482,"eta":"0h0m","eta_msec":0}
{"progress":100,"loss":0.532392,"lr":0,"words":159406,"eta":"0h0m","eta_msec":0}
{"progress":100,"loss":0.532392,"lr":0,"words":159406,"eta":"0h0m","eta_msec":0}

NOTE. Please note that some approximation errors may occur in the output values.

Test

To test your model you must specificy the test set file as testFile and the model file to be loaded as loadModel. Optionally you can specificy the precision and recall at k (P@k and R@k) passing the object test: { precisionRecall: k }.

var fastText = new FastText({
    loadModel: './band_model.bin',
    testFile:  './band_test.txt'
});
fastText.test()
.then(evaluation=> {
    console.log("test done.",evaluation);
})
.catch(error => {
    console.error(error);
})

The evaluation will contain the precision P, recall R and number of samples N as a json object { P: '0.278', R: '0.278' }. If a train is called just before test the evaluation will contain the number of words W and the number of labels L as well as a json object: { W: 524, L: 2, N: '18', P: '0.278', R: '0.278' }:

fastText.train()
.then(done=> {
    return fastText.test();
})
.then(evaluation=> {
    console.log("train & test done.",evaluation);
})
.catch(error => {
    console.error("train error",error);
})

Test-Labels

🆕 The api testLabels evaluate labels F1-Score, Recall and Precision for each label in the model.

var fastText = new FastText({
    loadModel: './band_model.bin',
    testFile:  './band_test.txt'
});
fastText.testLabels()
.then(evaluation=> {
    console.log("test-labels:",evaluation);
})
.catch(error => {
    console.error(error);
})

This will print out the values F1, P and R for each label.

[
  {
    "ham": {
      "F1": "0.172414",
      "P": "0.094340",
      "R": "1.000000"
    }
  },
  {
    "spam": {
      "F1": "0.950495",
      "P": "0.905660",
      "R": "1.000000"
    }
  }
]

Predict

To inference your model with new data and predict the label you must specify the model file to be loaded as loadModel. You can then call the load method once, and predict(string) to classify a string. Optionally you can specify the k most likely labels to print for each line as predict: { precisionRecall: k }

var sample="Our Twitter run by the band and crew to give you an inside look into our lives on the road. Get #FutureHearts now: http://smarturl.it/futurehearts";
fastText.load()
.then(done => {
    return fastText.predict(sample);
})
.then(labels=> {
    console.log("TEXT:", sample, "\nPREDICT:",labels );
    sample="LBi Software provides precisely engineered, customer-focused #HRTECH solutions. Our flagship solution, LBi HR HelpDesk, is a SaaS #HR Case Management product.";
    return fastText.predict(sample);
})
.then(labels=> {
    console.log("TEXT:", sample, "\nPREDICT:",labels );
    fastText.unload();
})
.catch(error => {
    console.error(error);
});

Multi-Label

A multi-label example will have a list of columns of labels marked by __label__ prefix

__label__sauce __label__cheese How much does potato starch affect a cheese sauce recipe?

FastText.js will automatically handle multiple labels in the dataset for training and testing, please run the multilabel.js example to test it out:

cd examples/
node multilabel.js

The train() and test() will print out:

N	3000
P@1	0.000333
R@1	0.000144
Number of examples: 3000
exec:fasttext end.
exec:fasttext exit.
{ N: '3000', P: '0.000333', R: '0.000144' }

while the testLabels api will print out the labels array:

[ '__label__equipment',
  '__label__cast',
  '__label__oven',
  '__label__sauce',
  '__label__indian',
  '__label__breakfast',
  '__label__chili',
  '__label__spicy',
  '__label__bread',
  '__label__eggs',
  '__label__baking',
   ...

and by labels scores:

F1-Score : 0.175182  Precision : 0.096000  Recall : 1.000000   __label__baking
F1-Score : 0.150432  Precision : 0.081333  Recall : 1.000000   __label__food-safety
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__substitutions
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__equipment
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__bread
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__chicken
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__storage-method
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__eggs
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__meat
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__sauce
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__cake
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__flavor
F1-Score : --------  Precision : --------  Recall : 0.000000   __label__freezing
...

Nearest Neighbor

To get the nearest neighbor words for a given term use the nn api:

fastText.loadnn()
.then(labels=> {
    return fastText.nn(text)
})
.then(labels=> {
    console.log("Nearest Neighbor\n", JSON.stringify(labels, null, 2));
})
.catch(error => {
    console.error("predict error",error);
});

Tools

We provide some support tools and script.

Confusion Matrix

To evaluate the Confusion Matrix of a model, please use the confusion.sh script provided in the tools/ folder. The script requires sklearn and matplotlib installed on the system:

$ cd tools/
$ ./confusion.sh 
Usage: ./confusion.sh DATASET_FILE MODEL_FILE [LABEL_COLUMS, def:1] [LABEL_NORMALIZED, default|normalize, def:default] [PLOT, 0|1, def:0]

You must specify the dataset file path that has been used to train the model and the model file path. If the label golumn is different than the first column, plese specify the LABEL_COLUMN column index. If the dataset must be normalized, having a different label prefix or no one, please use the value normalize:

cd examples/
node train
cd ..
cd tools/
./confusion.sh ../examples/dataset/sms.tsv ../examples/models/sms_model.bin 1 normalize 1

If the dataset has the fasttext label prefix i.e. __label__, please set the parameter NORMALIZE_LABEL to default:

./confusion.sh ../examples/dataset/sms.tsv ../examples/models/sms_model.bin 1 default

The script will calculate the predictions against the dataset and build confusion matrix using sklearn

./confusion.sh ../examples/dataset/sms.tsv ../examples/models/sms_model.bin 1
Platform is Darwin
Normalizing dataset ../examples/dataset/sms.tsv...
Splitting 1 label colums...
Calculating predictions...
Calculating confusion matrix...
Test labels:1324 (sample)
['spam']
labels:{'ham', 'spam'}
Predicted labels:1324 (sample)
['ham']
Accuracy: 0.756797583082
[[1002    0]
 [ 322    0]]
Confusion matrix
[[ 1.  0.]
 [ 1.  0.]]

and and visualize it using matplotlib:

schermata 2018-08-06 alle 11 36 52

Examples

A folder examples contains several usage examples of FastText.js.

Train

$ cd examples/
$ node train.js 
train [ 'supervised',
  '-input',
  '/var/folders/_b/szqwdfn979n4fdg7f2j875_r0000gn/T/trainfile.csv',
  '-output',
  './data/band_model',
  '-dim',
  10,
  '-lr',
  0.1,
  '-wordNgrams',
  2,
  '-minCount',
  1,
  '-bucket',
  10000000,
  '-epoch',
  5,
  '-thread',
  4 ]
Read 0M words
Number of words:  517
Number of labels: 2
Progress: 100.0%  words/sec/thread: 1853435  lr: 0.000000  loss: 0.681683  eta: 0h0m -14m 
exec:fasttext end.
exec:fasttext exit.
train done.
task:fasttext pid:41311 terminated due to receipt of signal:null

Test

$ cd examples/
$ node test.js 
test [ 'test',
  './data/band_model.bin',
  '/var/folders/_b/szqwdfn979n4fdg7f2j875_r0000gn/T/trainfile.csv',
  1 ]
Number of examples: 18
exec:fasttext end.
exec:fasttext exit.
test done.
task:fasttext pid:41321 terminated due to receipt of signal:null

Predict

$ cd examples/
$ node predict.js 
TEXT: our twitter run by the band and crew to give you an inside look into our lives on the road .  get #futurehearts now  http //smarturl . it/futurehearts PREDICT: BAND
TEXT: lbi software provides precisely engineered ,  customer-focused #hrtech solutions .  our flagship solution ,  lbi hr helpdesk ,  is a saas #hr case management product .  PREDICT: ORGANIZATION

Run a Prediction Server

We run a model and serve predictions via a simple node http api. We first download the example hosted models:

cd examples/models
./models.sh

We now run the server.js example that will create a http server. We can export the MODEL env that will point to the local pretrained model, and a optional PORT parameter were the server is going to listen (default PORT is 3000):

$ cd examples/
$ export MODEL=models/lid.176.ftz
$ node server.js 
model loaded
server is listening on 3000

Try this simple server api passing a text parameter like:

http://localhost:3000/?text=LBi%20Software%20provides%20precisely%20engineered,%20customer-focused%20#HRTECH

http://localhost:3000/?text=Our%20Twitter%20run%20by%20the%20band%20and%20crew%20to%20give%20you%20an%20inside%20look%20into%20our%20lives%20on%20the%20road.%20Get%20#FutureHearts

The server api will response in json format

{
	"response_time": 0.001,
	"predict": [{
			"label": "BAND",
			"score": "0.5"
		},
		{
			"label": "ORGANIZATION",
			"score": "0.498047"
		}
	]
}

Run a Prediction CLI

To run a prediction Command Line Interface, please specify the env MODEL of the model file to run and use the example script cli:

cd examples/
export MODEL=models/langid_model.bin
node cli
Loading model...
model loaded.
Welcome to FastText.js CLI
Type exit or CTRL-Z to exit
> hello how are you?
> [ { label: 'EN', score: '0.988627' },
{ label: 'BN', score: '0.000935369' } ]
> das is seher gut!
> [ { label: 'DE', score: '0.513201' },
{ label: 'EN', score: '0.411016' } ]
rien ne va plus
> [ { label: 'FR', score: '0.951547' },
{ label: 'EO', score: '0.00760891' } ]
exit
> model unloaded.

Language Identificaton Server

In this example we use the fastText compressed languages model (176 languages) we host.

cd examples/
export MODEL=./data/lid.176.ftz 
export PORT=9001
node server

and then

http://localhost:9001/?text=%EB%9E%84%EB%9E%84%EB%9D%BC%20%EC%B0%A8%EC%B0%A8%EC%B0%A8%20%EB%9E%84%EB%9E%84%EB%9D%BC\n%EB%9E%84%EB%9E%84%EB%9D%BC%20%EC%B0%A8%EC%B0%A8%EC%B0%A8%20%EC%9E%A5%EC%9C%A4%EC%A0%95%20%ED%8A%B8%EC%9C%84%EC%8A%A4%ED%8A%B8%20%EC%B6%A4%EC%9D%84%20%EC%B6%A5%EC%8B%9C%EB%8B%A4

that will be correctly detected as KO:

{
	"response_time": 0.001,
	"predict": [{
			"label": "KO",
			"score": "1"
		},
		{
			"label": "TR",
			"score": "1.95313E-08"
		}
	]
}

Train Language Identification Model

We train a langauge identification model from scratch. Please see in the examples/models folder.

Training set and Test set format

The trainFile and testFile are a TSV or CSV file where the fist column is the label, the second column is the text sample. FastText.js will try to normalize the dataset to the FastText format using FastText.prepareDataset method. You do not have to call this method explicitly by the way, FastText.js will do for you. For more info see here.

Datasets

We host some example datasets in order to train, test and predict FastText models on the fly. For more info how to download and work with datasets, please see in the examples/datasets folder.

Models

We host some example pretrained models. For more info how to download and work with pretrained models, please see in the examples/models folder.

Other Versions

Supported Platforms

In this release FastText.js comes with precompiled binaries for linux, macOS and Windows in the lib/bin/ folder. The Windows version is a 64-bit compiled version. It requires the Visual C++ Redistributable for Visual Studio 2015 components. See here for more info about the Windows version.

External Binary

To use an external binary version use the bin option to specify the executable absolute path:

var fastText = new FastText({
    bin: '/usr/local/bin/fasttext'
    loadModel: DATA_ROOT + '/sms_model.bin' // must specifiy filename and ext
});

A executable not found in path error will be thrown if the executable has not been found in the specified path.

How It Works

Precompiled binaries runs FastText natively. A node child_process spawn will fork a new FastText native process tu run at OS speed, manage the state, the errors and the output of the process to the JavaScript API.

Disclaimer

For more info about FastText and FastText license see here.

Acknowledgments

I thank you the following devs that helped me to improve FastText.js

More Repositories

1

CapsNet

CapsNet (Capsules Net) in Geoffrey E Hinton paper "Dynamic Routing Between Capsules" - State Of the Art
441
star
2

touchbar

Apple MacBook Pro TouchBar (NSTouchBar) Cheatsheet and Swift examples
360
star
3

docker

My Docker scripts and Dockerfile for several frameworks.
Python
93
star
4

tensorflow-java

Tensorflow Java examples
Java
61
star
5

hf-experiments

Experiments with Hugging Face 🔬 🤗
Python
44
star
6

word2vec-twitter

Word2Vec 400M Tweets Embedding model based on https://www.fredericgodin.com/software/
Python
44
star
7

lshash

locality sensitive hashing (LSHASH) for Python3
Python
36
star
8

wave2vec-recognize-docker

Wave2vec 2.0 Recognize pipeline
Python
32
star
9

kakasi

KAKASI - Kanji Kana Simple Inverter (code mirror)
C
27
star
10

tensorflow-node-examples

Tensorflow Node.js Examples
JavaScript
25
star
11

spotify-tvos-app-example

A example tvOS app using the Spotify framework
Objective-C
20
star
12

control-system-toolbox-for-ti89

Control System Toolbox For TI-89 (CST)
Assembly
19
star
13

htk

HTK Toolkit with Linux 64 bit and Docker support
C
17
star
14

cleanup.pictures

Code for https://cleanup.pictures
TypeScript
17
star
15

EssentiaTouch

Essentia Library for iOS
C++
13
star
16

bert-movie-reviews-sentiment-classifier

Build a Movie Reviews Sentiment Classifier with Google's BERT Language Model
Jupyter Notebook
12
star
17

word2vec

Google Word2vec Source Code
C
11
star
18

dominant-colors-xmlhttprequest-example

Dominant Colors from Image with XMLHttpRequest - no Canvas
JavaScript
10
star
19

android-mdns-bonjour-discovery

Bonjour (ZeroConf) Services Discovery with jMDNS on Android
Java
9
star
20

twitter-trends-api

Twitter Trends API examples
JavaScript
9
star
21

russian_trolls_tweets_dataset

Russian troll tweets
9
star
22

spelling-corrector

Spelling Corrector Train, Correct, Diff Text right in the Browser
JavaScript
8
star
23

bert_text_classifier

Text Classification with BERT
Jupyter Notebook
8
star
24

fastLangID

Stand-alone Language Identification for Node.js JavaScript based on FastText
JavaScript
7
star
25

phoenix-elixir-boilerplate

Phoenix Elixir Boilerplate with LiveView
Elixir
6
star
26

alpaca-lora-exporter

Export alpaca-lora to Torch checkpoint and HuggingFace
Jupyter Notebook
6
star
27

ios-mdns-bonjour-discovery

Bonjour mDNS Services Discovery for iOS CocoaTouch
Objective-C
6
star
28

erlang-neuralnetworks

Erlang and Neural Networks
6
star
29

spacecrypt.js

JavaScript port of PHP SpaceCrypt to encrypt hidden text in a string
PHP
5
star
30

apple-turicreate-examples

Apple Turi Create Machine Learning and Artificial Neural Networks framework Examples
Python
5
star
31

kakasi.js

Kakasi Japanese Transliteration for Node.js
JavaScript
5
star
32

facemaskdetect

Face masks detector with Tensorflow Keras and MobileNet V2
Python
5
star
33

fasttext.py

FastText Pytorch version
Python
5
star
34

ios-json-benchmark

iOS JSON Parser Benchmark Objective-C / C++ / Swift
C++
5
star
35

jupyter-notebook-visualstudio-code-python

A Jupyter Notebook running within VisualStudioCode Python Extension
Python
5
star
36

symspell-node

SymSpell node - based on https://github.com/MighTguY/customized-symspell
Java
5
star
37

keyphraseextraction

Key phrases extraction and ranking in Python with support for POS (Part of Speech) and NER (Named Entities).
JavaScript
5
star
38

emoticons.js

Emoticon text codes to emoticons 🎱 ❤️ 🚀
JavaScript
4
star
39

echoprint-codegen

Echoprint Codegen binaries
C++
4
star
40

scweet-docker

scweet Docker image
Python
4
star
41

chrome-extension-react-app

An example of a Google Chrome Extension that works with a React App
JavaScript
4
star
42

lottie-adobe-after-effects-json-animation

Adobe After Effects JSON Animation example with Lottie Web - https://github.com/airbnb/lottie-web
JavaScript
4
star
43

dserve

Deep learning models Serving with Python
Python
4
star
44

python-threading

Python Threading and Thread Pool
Python
3
star
45

ipa-phonetics-dict

Italian IPA Phonetics Dictionary
3
star
46

dash.js

Dash Plot.ly Node.js Integration
JavaScript
3
star
47

visualgenome_dataset_reader

Visual Genome Dataset Reader
Python
3
star
48

opencsv

Java
3
star
49

aws-transcribe-streaming-node-example

AWS Transcribe Streaming Node Example
JavaScript
3
star
50

waveform.js

Waveform generation from audio file
JavaScript
3
star
51

itunes-countrycode-node

Retrieve (StoreFrontId, CountryCode) tuples used in iTunes Search API
JavaScript
3
star
52

nodepng.js

Simple PNG encoder/decoder (upgraded to node 10.x)
JavaScript
2
star
53

demucs-source-separation-python

Demucs Audio Source Separation Python
Jupyter Notebook
2
star
54

fastTextServe

FastText Server for Node.js based on fasttext.js
2
star
55

conv-tasnet-docker

Docker version of Conv-TasNet
Python
2
star
56

markdown.js

All-in-one Markdown Editor/Visualizer with Code Syntax Highlighting and JSON Viewer
JavaScript
2
star
57

news-topic-reviews-dataset

Machine Learning Dataset for Topic, News, Reviews Text Classification
Shell
2
star
58

audionamix.js

Audionamix Audio SDK Node.js
JavaScript
2
star
59

quantum-development-kit

Quantum Development Kit Examples in Q#
C#
2
star
60

hf-tokenizers-experiments

Experiments with HuggingFace Tokenizers
JavaScript
2
star
61

python-icu

Python ICU (ICU - International Components for Unicode) examples
Python
2
star
62

musickit.js

MusicKit Apple Music API node SDK
2
star
63

swift-promise-example

Swift Shared Static Library via RemObjects Silver (Fire IDE)
Swift
2
star
64

aws-inferentia-neuron-sdk-docker

Dockerfile and helper for AWS Inferentia Neuron SDK
Dockerfile
2
star
65

node-icu

NodeJS ICU Word Segmenter
Python
2
star
66

javascript-google-dfp-adsense-example

Ads Scrambler - Google DoubleClick For Partners (DFP) Helper
JavaScript
2
star
67

loretoparisi.github.io

Ruby
2
star
68

wordnet-nltk-python

WordNet NLTK Python Examples
PostScript
2
star
69

Yoroshiku

Yoroshiku converts Japanese to Hiragana, Katakana or Romaji. It supports Furigana and Okurigana. Based on Kuroshiro
JavaScript
2
star
70

docker-gpu-mnoavx

Docker images of Tensorflow and Pytorch for GPU and CPU without AVX instructions
Python
2
star
71

spotify-port-scanner-node

Connect to the Spotify desktop application with automatic port detection.
JavaScript
1
star
72

coders

Coders
1
star
73

promise-backoff

Promise with Jittered Backoff
JavaScript
1
star
74

translit

Transliterator tool
Python
1
star
75

tutorials

Tutorials and code snippet from loretoparisi.com
Python
1
star
76

visual-studio-mac

Visual Studio Mac Solutions
1
star
77

stanfordnlp-examples

Stanford Python NLP Experiments and examples
Python
1
star
78

transcripta

Get quick romanization and IPA transcription of several languages
C#
1
star
79

safety_checker

safety_checker
1
star
80

flappy-multiverse-js

Flappy Bird in a Multiverse Sprite!
JavaScript
1
star
81

tensorflow-dockerfile

Tensorflow Dockerfile Docker Helper
Dockerfile
1
star
82

spectre

Spectre Vulnerability Check
HTML
1
star
83

spoken-punctuation

Spoken punctuation for Speech-to-Text by language and locale.
1
star
84

cors_serve

CORS Serving with Python
Python
1
star
85

tensorflow-embedding-projector

Tensorflow Embedding Projector
1
star
86

java-csv-reader-examples

CSV Reader Examples in Java
Java
1
star
87

promise-sequence

Iterate over a sequence of promises
JavaScript
1
star
88

commandline

Commandline packages simplifies the asynchronous binary execution from Node
JavaScript
1
star