Skip to content
List of projects, books, booklets, papers, and applications related to machine learning, AI, data science in Pharo
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Initial commit Oct 6, 2018 Sorted Data Collection section by alphabet Sep 21, 2019

Awesome Machine Learning in Pharo

This is the list of machine learning projects written in or related to Pharo as well as books, booklets, papers, or tutorials on this topic. If you want to add an entry to this list - feel free to make a pull request or create an issue with a link to the project and we will add it ourselves. Entries are grouped into categories and sorted by aphabet.



  • Domains - Ongoing port of a computational algebra system in Smalltalk.
  • PolyMath - Smalltalk library for numeric computations similar to NumPy, SciPy or SciRuby. Includes data structures and algorithms for linear algebra (PMVector, PMMatrix), statistics, differential equations, numeric integration, optimization, data mining, linear regression, genetic algorithms

Linear Models

  • MLLinearModels - provides functionality to train and use linear regression models, such as Ordinary Least Squares, Ridge, Lasso, Elastic Net
  • PMLinearRegression in PolyMath - implementation of linear regression in PolyMath library

Neural Networks

  • AgileArtificialIntelligence - object-oriented implementation of neural networks, equipped with toy examples (logical gates, games)
  • MLNeuralNetworks - multilayer neural networks. Classification of MNIST handwritten digits
  • NeuralNetwork - multilayer neural network with separate classes for Layers and Neurons
  • NeuralNetworks - simple neurons, perceptrons, logical gates

Deep Learning

Learning Classifier System

  • LCSTalk is a small machine learning framework based on Learning Classifier Systems.

Generative Models

Natural Language Processing

  • Ngram - Ngram class and String extensions that provide n-gram functionality for Pharo (splitting text into unigrams, bigrams, trigrams, etc)
  • NgramModel - framework for training n-gram language models
  • nlp_smalltalk - natural language processing library. Implements part of speech tagging, categorization, named entity recognition, sentence segmentation, and summarization
  • Pharo-NLtoolkit - n-gams and TF-IDF implementations by Nikhil Pinnaparaju
  • Polyglot - a natural language processing library implemented in Pharo by Nikhil Pinnaparaju during Google Summer of Code.

Data Structures

  • DataFrame - tabular data structures for data analysis and machine learning

Data Visualization

  • MatplotLibBridge - a bridge to provide the ability to Pharo user to use Python's Matplotlib
  • Roassal - visualization engine for the Pharo and VisualWorks. Provides powerful tools for charting, plotting, and other data visualization

Interactive Notebooks

  • JupyterTalk - basic Pharo Smalltalk kernel for Jupyter
  • Grafoscopio - Pharo based interactive outliner for reproducible research & publishing and agile visualization and data storytelling.
  • The Pharo edition of ActivePapers focuses on the documentation and user interface aspects of communicating computational science.
  • Leibniz-pharo is the Pharo version of the digital scientific notation Leibniz.

Data Collection

  • CSV - NeoCSV is an elegant and efficient standalone Smalltalk framework to read and write CSV converting to or from Smalltalk objects.
  • NeoJSON - Framework to handle JSON in Pharo.
  • Soup - A library for web scrapping based on HTML and XML parsers
  • Soup-for-Pharo - a binding for Python's Beautiful Soup - tool for web scrapping based on HTML and XML parsers
  • Territorial - Smalltalk package for Geographical Information Retrieval (GIR)


Books & Booklets


You can’t perform that action at this time.