Skip to content

Latest commit

 

History

History
112 lines (77 loc) · 8.6 KB

README.md

File metadata and controls

112 lines (77 loc) · 8.6 KB

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.

Contents

Mathematics

  • Domains - Ongoing port of a computational algebra system in Smalltalk.
  • Mathematics - Symbolic algebra package.
  • 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

Neuroevolution

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 Mining

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)

Applications

Books & Booklets

Papers