BudouX is the successor to Budou, the machine learning powered line break organizer tool.

Overview

BudouX

PyPI npm

Standalone. Small. Language-neutral.

BudouX is the successor to Budou, the machine learning powered line break organizer tool.

Example

It is standalone. It works with no dependency on third-party word segmenters such as Google cloud natural language API.

It is small. It takes only around 15 KB including its machine learning model. It's reasonable to use it even on the client-side.

It is language-neutral. You can train a model for any language by feeding a dataset to BudouX’s training script.

Last but not least, BudouX supports HTML inputs.

Demo

https://google.github.io/budoux/

Natural languages supported by default

  • Japanese

Supported Programming languages

For details about the JavaScript module, please visit JavaScript README.

Python module

Install

$ pip install budoux

Usage

You can get a list of phrases by feeding a sentence to the parser.

import budoux
parser = budoux.load_default_japanese_parser()
print(parser.parse('今日は天気です。'))
# ['今日は', '天気です。']

You can also translate an HTML string by wrapping phrases with non-breaking markup.

今日はとても天気です。 ">
print(parser.translate_html_string('今日はとても天気です。'))
# 今日はとても天気です。

If you have a custom model, you can use it as follows.

with open('/path/to/your/model.json') as f:
  model = json.load(f)
parser = budoux.Parser(model)

A model file for BudouX is a JSON file that contains pairs of a feature and its score extracted by machine learning training. Each score represents the significance of the feature in determining whether to break the sentence at a specific point.

For more details of the JavaScript model, please refer to JavaScript module README.

Caveat

BudouX supports HTML inputs and outputs HTML strings with markup that wraps phrases, but it's not meant to be used as an HTML sanitizer. BudouX doesn't sanitize any inputs. Malicious HTML inputs yield malicious HTML outputs. Please use it with an appropriate sanitizer library if you don't trust the input.

Background

English text has many clues, like spacing and hyphenation, that enable beautiful and readable line breaks. However, some CJK languages lack these clues, and so are notoriously more difficult to process. Line breaks can occur randomly and usually in the middle of a word or a phrase without a more careful approach. This is a long-standing issue in typography on the Web, which results in a degradation of readability.

Budou was proposed as a solution to this problem in 2016. It automatically translates CJK sentences into HTML with lexical phrases wrapped in non-breaking markup, so as to semantically control line breaks. Budou has solved this problem to some extent, but it still has some problems integrating with modern web production workflow.

The biggest barrier in applying Budou to a website is that it has dependency on third-party word segmenters. Usually a word segmenter is a large program that is infeasible to download for every web page request. It would also be an undesirable option making a request to a cloud-based word segmentation service for every sentence, considering the speed and cost. That’s why we need a standalone line break organizer tool equipped with its own segmentation engine small enough to be bundled in a client-side JavaScript code.

BudouX is the successor to Budou, designed to be integrated with your website with no hassle.

How it works

BudouX uses the AdaBoost algorithm to segment a sentence into phrases by considering the task as a binary classification problem to predict whether to break or not between all characters. It uses features such as the characters around the break point, their Unicode blocks, and combinations of them to make a prediction. The output machine learning model, which is encoded as a JSON file, stores pairs of the feature and its significance score. The BudouX parser takes a model file to construct a segmenter and translates input sentences into a list of phrases.

Building a custom model

You can build your own custom model for any language by preparing training data in the target language. A training dataset is a large text file that consists of sentences separated by phrases with the separator symbol "▁" (U+2581) like below.

私は▁遅刻魔で、▁待ち合わせに▁いつも▁遅刻してしまいます。
メールで▁待ち合わせ▁相手に▁一言、▁「ごめんね」と▁謝れば▁どうにか▁なると▁思っていました。
海外では▁ケータイを▁持っていない。

Assuming the text file is saved as mysource.txt, you can build your own custom model by running the following commands.

$ pip install -r requirements_dev.txt
$ python scripts/encode_data.py mysource.txt -o encoded_data.txt
$ python scripts/train.py encoded_data.txt -o weights.txt
$ python scripts/build_model.py weights.txt -o mymodel.json

Please note that train.py takes time to complete depending on your computer resources. Good news is that the training algorithm is an anytime algorithm, so you can get a weights file even if you interrupt the execution. You can build a valid model file by passing that weights file to build_model.py even in such a case.

Constructing a training dataset from the KNBC corpus for Japanese

The default model for Japanese (budoux/models/ja_knbc.json) is built using the KNBC corpus. You can create a training dataset, which we name source_knbc.txt here, from that corpus by running the command below.

$ python scripts/load_knbc.py -o source_knbc.txt

Author

Shuhei Iitsuka

Disclaimer

This is not an officially supported Google product.

Comments
  • Implement a simple node.js cli tool.

    Implement a simple node.js cli tool.

    I've implemented a simple cli on work with npm.

    I think budoux is a great tool for Japanese web development and people need CLI tool using more easier. people can format texts only to install Node.js and run npx budoux-cli.

    For test locally.

    $ cd node_cli
    $ npm link
    $ budoux-cli -H 
    

    Output Example.

    $budoux-cli
    Please, pass one text argument to translate at least.
    $budoux-cli --help
    usage: budoux [-h] [-H] [-m JSON] [-d STR] [-V] [TXT]
    
    オプション:
      -H, --html     HTML mode                                                [真偽]
          --version  バージョンを表示                                         [真偽]
          --help     ヘルプを表示                                             [真偽]
    $budoux-cli --version
    0.0.1
    $budoux-cli 今日は天気です。
    今日は
    天気です。
    $budoux-cli '今日は天気です。'
    今日は
    天気です。
    $budoux-cli -H '今日は<b>とても天気</b>です。'
    <span style="word-break: keep-all; overflow-wrap: break-word;">今日は<b><wbr>とても<wbr>天気</b>です。</span>
    
    opened by junseinagao 21
  • Add custom help formatter and shorthand of `--thres`

    Add custom help formatter and shorthand of `--thres`

    $ budoux -h
    usage: budoux [-h] [-H] [-m JSON] [-d STR] [-t THRES] [-V] [TXT]
    
    BudouX is the successor to Budou,
    the machine learning powered line break organizer tool.
    
    positional arguments:
      TXT                      text (default: None)
    
    optional arguments:
      -h, --help               show this help message and exit
      -H, --html               HTML mode (default: False)
      -m JSON, --model JSON    custom model file path (default: /Users/eggplants/prog/budoux/budoux/models/ja-knbc.json)
      -d STR, --delim STR      output delimiter in TEXT mode (default: ---)
      -t THRES, --thres THRES  threshold value to separate chunks (default: 1000)
      -V, --version            show program's version number and exit
    
    
    opened by eggplants 4
  • Unittest CI for Python

    Unittest CI for Python

    I have added unittesting CI for Python.

    Note: This project apparently works in Python 3.9 due to typing annotation (like: list[str]), so we have to restrict python_requires in setup.cfg!

    https://github.com/eggplants/budoux/blob/1c5ce47e260e38abece8c1b26ac8af00b1e6541b/setup.cfg#L21

    opened by eggplants 4
  • Issue with custom model

    Issue with custom model

    Description

    Hi there, First thanks for the lib, it's impressive the results from such a small footprint😄

    The results were not exactly what I wanted for japanese tokenization, so I decided to train my own model and it was quite simple and straightforward. Sadly after importing the generated model in javascript it doesn't work.

    import { Parser, loadDefaultJapaneseParser } from 'budoux'
    import model from './mymodel.json'
    
    // obviously the following works
    const parser = loadDefaultJapaneseParser()
    console.log(parser.parse('今日は天気です。'))
    
    // but this doesn't
    const parser = new Parser(model)
    console.log(parser.parse('今日は天気です。'))
    

    Uncaught TypeError: this.model.values is not a function or its return value is not iterable at Parser.parse (parser.js:120:47)

    opened by kefniark 2
  • Add py.typed for static analysis with mypy

    Add py.typed for static analysis with mypy

    The budoux source code contains type hints, but the following error occurs when using mypy.

    $ cat main.py
    import budoux
    parser = budoux.load_default_japanese_parser()
    $ mypy main.py
    main.py:1: error: Skipping analyzing "budoux": module is installed, but missing library stubs or py.typed marker
    main.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
    Found 1 error in 1 file (checked 1 source file)
    

    I added py.typed file according to the URL in the error message above. After adding the file, the error no longer occurs as shown below.

    $ mypy main.py
    Success: no issues found in 1 source file
    
    opened by ryu22e 2
  • Change `applyElement` to call `HTMLProcessor`

    Change `applyElement` to call `HTMLProcessor`

    This patch changes Parser.applyElement to call the HTMLProcessor class.

    The HTMLProcessorOptions.separator is changed to accept a Node. This is because undefined had double meanings; i.e., use the default (ZWSP) and use the <wbr> element.

    opened by kojiishi 2
  • CLI

    CLI

    I have implemented CLI.

    $ pip install -e .
    Obtaining file:///home/eggplants/prog/budoux
      Installing build dependencies ... done
      Checking if build backend supports build_editable ... done
      Getting requirements to build wheel ... done
      Preparing metadata (pyproject.toml) ... done
    Installing collected packages: budoux
      Running setup.py develop for budoux
    Successfully installed budoux-0.0.1
    $ budoux -h
    usage: budoux [-h] [-H] [-m JSON] [-d STR] [-V] [TXT]
    
    BudouX is the successor to Budou,
    the machine learning powered line break organizer tool.
    
    positional arguments:
      TXT                    text
    
    optional arguments:
      -h, --help             show this help message and exit
      -H, --html             HTML mode
      -m JSON, --model JSON  custom model file path (default: models/ja-knbc.json)
      -d STR, --delim STR    output delimiter in TEXT mode (default: '---')
      -V, --version          show program's version number and exit
    $ budoux -V
    budoux 0.0.1
    $ budoux 今日は天気です。
    今日は
    天気です。
    $ budoux -H "今日は<b>とても天気</b>です。"
    <span style="word-break: keep-all; overflow-wrap: break-word;">今日は<b ><wbr>とても<wbr>天気</b>です。</span>
    $ echo 今日は天気です。 | budoux
    $ echo -e "今日は天気です。\n昨日は曇りでした。" | budoux
    今日は
    天気です。
    ---
    昨日は
    曇りでした。
    $ budoux # interactive input
    test
    こんにちは
    おはよう
    [^d]
    test
    ---
    こんにちは
    ---
    おはよう
    $
    
    opened by eggplants 2
  • CVE-2007-4559 Patch

    CVE-2007-4559 Patch

    Patching CVE-2007-4559

    Hi, we are security researchers from the Advanced Research Center at Trellix. We have began a campaign to patch a widespread bug named CVE-2007-4559. CVE-2007-4559 is a 15 year old bug in the Python tarfile package. By using extract() or extractall() on a tarfile object without sanitizing input, a maliciously crafted .tar file could perform a directory path traversal attack. We found at least one unsantized extractall() in your codebase and are providing a patch for you via pull request. The patch essentially checks to see if all tarfile members will be extracted safely and throws an exception otherwise. We encourage you to use this patch or your own solution to secure against CVE-2007-4559. Further technical information about the vulnerability can be found in this blog.

    If you have further questions you may contact us through this projects lead researcher Kasimir Schulz.

    opened by TrellixVulnTeam 1
  • Add missing export for HTMLProcessor in index.ts

    Add missing export for HTMLProcessor in index.ts

    Hi, I was experimenting with the library and wanted to do something with the HTMLProcessor as described here

    However, it would not let me import and I believe it's because there is a missing export statement from index.ts.

    Hence I added an extra line in.

    opened by Harukaichii 1
  • Fix a mathematical bug

    Fix a mathematical bug

    This change fixes the mathematical bug in the parse method, which eventually removes the necessity of the thres parameter entirely. This also fixes the deviation between the reported metrics during model training and actual quality of the results provided by the parser.

    This PR includes:

    • a small fix to remove line breaks from the training data, which will make the resulting parser robust in processing punctuations that often come to the end of sentences.
    • retrained model files based on the change above.
    • updated parser implementation with correct score calculation logic and no thres parameter.

    ⚠️ Breaking change thres won't be available in the parse method and the CLI options any more. Please fix your program if it's relying on the thres parameter.

    opened by tushuhei 1
  • Fix when the `display` property is empty

    Fix when the `display` property is empty

    This patch supports when the display property is empty.

    This occurs when the element is not connected. In that case, HTMLProcessor uses its built-in rules to determine whether the element is inline or block.

    Fixes #74.

    opened by kojiishi 1
Releases(v0.4.0)
  • v0.4.0(Dec 14, 2022)

    What's Changed

    • Traditional Chinese support by @tushuhei in https://github.com/google/budoux/pull/101

    Full Changelog: https://github.com/google/budoux/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Dec 5, 2022)

    What's Changed

    Faster model training

    We made model training faster by applying JAX's JIT compilation, pooling file writes, etc.

    • Faster training data encoding by @tushuhei in https://github.com/google/budoux/pull/89
    • Add out_span option for better GPU utilization by @tushuhei in https://github.com/google/budoux/pull/90
    • Apply JAX JIT compiling for faster training by @tushuhei in https://github.com/google/budoux/pull/95
    • Check in updated Simplified Chinese model by @tushuhei in https://github.com/google/budoux/pull/99

    Smaller models

    We made models smaller by removing less important features, disabling ASCII encoding, etc.

    • Remove Unicode Block features by @tushuhei in https://github.com/google/budoux/pull/86
    • Disable ASCII encoding when building the model file by @tushuhei in https://github.com/google/budoux/pull/98
    • Output compact model by @tushuhei in https://github.com/google/budoux/pull/100

    Misc

    • encode_data: write without break line join by @tushuhei in https://github.com/google/budoux/pull/91
    • Update unit tests for the encoding script by @tushuhei in https://github.com/google/budoux/pull/92
    • Add more granularity in weight outputs by @tushuhei in https://github.com/google/budoux/pull/93
    • Remove tar module dependency by @tushuhei in https://github.com/google/budoux/pull/96

    Full Changelog: https://github.com/google/budoux/compare/v0.2.1...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Nov 8, 2022)

    What's Changed

    • Fix mypy issue by @tushuhei in https://github.com/google/budoux/pull/83
    • Add missing export for HTMLProcessor in index.ts by @Harukaichii in https://github.com/google/budoux/pull/82
    • Remove P features from JS module by @tushuhei in https://github.com/google/budoux/pull/85
    • Nit fix for mypy issue by @tushuhei in https://github.com/google/budoux/pull/87
    • Version up to 0.2.1 by @tushuhei in https://github.com/google/budoux/pull/88

    New Contributors

    • @Harukaichii made their first contribution in https://github.com/google/budoux/pull/82

    Full Changelog: https://github.com/google/budoux/compare/v0.2.0...v0.2.1

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Aug 4, 2022)

    What's Changed

    • Fix a mathematical bug by @tushuhei in https://github.com/google/budoux/pull/78
    • Add .js extension for better module portability by @tushuhei in https://github.com/google/budoux/pull/79
    • Remove the P features by @tushuhei in https://github.com/google/budoux/pull/80
    • Version up to 0.2.0 by @tushuhei in https://github.com/google/budoux/pull/81

    ⚠️ Breaking change

    • thres won't be available in the parse method and the CLI options any more. Please fix your program if it's relying on the thres parameter.
    • The parsing logic is different to older versions due to the fix for a mathematical error and removal of some features around past results. See #78 and #80 for details.

    Full Changelog: https://github.com/google/budoux/compare/v0.1.2...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Jul 19, 2022)

    What's Changed

    • Improve package format by @tushuhei in https://github.com/google/budoux/pull/75
    • Fix when the display property is empty by @kojiishi in https://github.com/google/budoux/pull/76
    • Version up to 0.1.2 by @tushuhei in https://github.com/google/budoux/pull/77

    Full Changelog: https://github.com/google/budoux/compare/v0.1.1...v0.1.2

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jul 14, 2022)

    What's Changed

    • Add isort and pytest to dev dependencies by @eggplants in https://github.com/google/budoux/pull/56
    • --lang option by @eggplants in https://github.com/google/budoux/pull/55
    • Add JavaScript HTMLProcessor class by @kojiishi in https://github.com/google/budoux/pull/58
    • Bump async from 2.6.3 to 2.6.4 in /demo by @dependabot in https://github.com/google/budoux/pull/59
    • Faster encode data by @tushuhei in https://github.com/google/budoux/pull/61
    • Faster preprocess by @tushuhei in https://github.com/google/budoux/pull/62
    • Change applyElement to call HTMLProcessor by @kojiishi in https://github.com/google/budoux/pull/60
    • Normalize weights not to overflow by @tushuhei in https://github.com/google/budoux/pull/63
    • Install Jax for GPU acceleration by @tushuhei in https://github.com/google/budoux/pull/64
    • Add py.typed for static analysis with mypy by @ryu22e in https://github.com/google/budoux/pull/65
    • Update gts to 4.0.0 by @tushuhei in https://github.com/google/budoux/pull/69
    • Fix Mypy GitHub Action by @tushuhei in https://github.com/google/budoux/pull/70
    • Output precision and recall during training by @tushuhei in https://github.com/google/budoux/pull/71
    • Upgrade dependencies by @tushuhei in https://github.com/google/budoux/pull/72
    • Version up to 0.1.1 by @tushuhei in https://github.com/google/budoux/pull/73

    New Contributors

    • @kojiishi made their first contribution in https://github.com/google/budoux/pull/58
    • @ryu22e made their first contribution in https://github.com/google/budoux/pull/65

    Full Changelog: https://github.com/google/budoux/compare/v0.1.0...v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Apr 1, 2022)

    • Simplified Chinese support added.
    • Now the parser starts the segmentation process from the first character of the input sentence, in contrast to the old parser which starts the process from the third character assuming that the first phrase should be longer than 3 character long.
      • While this old assumption holds in many cases in Japanese, it does not apply when it comes to Chinese. We removed this assumption according to the introduction of the Simplified Chinese model.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.4(Mar 30, 2022)

    What's Changed

    • Add thres arg to Python CLI by @tushuhei in https://github.com/google/budoux/pull/32
    • Add custom help formatter and shorthand of --thres by @eggplants in https://github.com/google/budoux/pull/33
    • Update dependent Node.js packages by @tushuhei in https://github.com/google/budoux/pull/35
    • Update build-demo.yml by @tushuhei in https://github.com/google/budoux/pull/36
    • mypy and flake8 by @eggplants in https://github.com/google/budoux/pull/34
    • Add description about CLI and deploy markdownlint CI by @eggplants in https://github.com/google/budoux/pull/37
    • Update style-check.yml by @tushuhei in https://github.com/google/budoux/pull/38
    • Specify python required version by @eggplants in https://github.com/google/budoux/pull/40
    • Add chunk-size option to reduce memory for model training by @tamanyan in https://github.com/google/budoux/pull/41
    • Bump follow-redirects from 1.14.7 to 1.14.8 in /demo by @dependabot in https://github.com/google/budoux/pull/44
    • Add thres parameter to Node.js CLI by @tushuhei in https://github.com/google/budoux/pull/46
    • Add a license header to .markdownlint.yaml by @tushuhei in https://github.com/google/budoux/pull/47
    • Take split_dataset out from fit by @tushuhei in https://github.com/google/budoux/pull/42
    • Dependencies version up by @tushuhei in https://github.com/google/budoux/pull/50

    New Contributors

    • @tamanyan made their first contribution in https://github.com/google/budoux/pull/41
    • @dependabot made their first contribution in https://github.com/google/budoux/pull/44

    Full Changelog: https://github.com/google/budoux/compare/v0.0.3...v0.0.4

    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Dec 2, 2021)

    Featured changes

    • Node.js CLI by @junseinagao
    • CI improvements by @eggplants
    • BudouX Web Components by @tushuhei

    What's Changed

    • Fix Typos by @hiro0218 in https://github.com/google/budoux/pull/22
    • Add test CI for NodeJS by @eggplants in https://github.com/google/budoux/pull/19
    • Add badges (PyPI, npm) by @eggplants in https://github.com/google/budoux/pull/21
    • Fix version data by @eggplants in https://github.com/google/budoux/pull/23
    • Add cli test by @eggplants in https://github.com/google/budoux/pull/16
    • Add PR trigger to CI by @eggplants in https://github.com/google/budoux/pull/24
    • Add npm link to test CI by @eggplants in https://github.com/google/budoux/pull/25
    • Export the parser threshold value by @tushuhei in https://github.com/google/budoux/pull/26
    • Update .prettierrc.js by @tushuhei in https://github.com/google/budoux/pull/27
    • Implement a simple node.js cli tool. by @junseinagao in https://github.com/google/budoux/pull/20
    • Refactor tests of node.js cli by @junseinagao in https://github.com/google/budoux/pull/28
    • Add web components by @tushuhei in https://github.com/google/budoux/pull/29
    • Version bump by @tushuhei in https://github.com/google/budoux/pull/30

    New Contributors

    • @hiro0218 made their first contribution in https://github.com/google/budoux/pull/22
    • @junseinagao made their first contribution in https://github.com/google/budoux/pull/20

    Full Changelog: https://github.com/google/budoux/compare/v0.0.2...v0.0.3

    Source code(tar.gz)
    Source code(zip)
  • v0.0.2(Nov 24, 2021)

    What's Changed

    • CLI by @eggplants in https://github.com/google/budoux/pull/6
    • Fix Python code style by @tushuhei in https://github.com/google/budoux/pull/11
    • Fix type hints to work with older Python versions by @tushuhei in https://github.com/google/budoux/pull/13
    • add: unittest CI for Python by @eggplants in https://github.com/google/budoux/pull/14
    • Fix: encoding error in windows by @eggplants in https://github.com/google/budoux/pull/15
    • Use native unittest instead of pytest by @tushuhei in https://github.com/google/budoux/pull/17
    • 0.0.2 release by @tushuhei in https://github.com/google/budoux/pull/18

    New Contributors 🎉

    • @eggplants made their first contribution in https://github.com/google/budoux/pull/6

    Full Changelog: https://github.com/google/budoux/compare/v0.0.1...v0.0.2

    Source code(tar.gz)
    Source code(zip)
Owner
Google
Google ❤️ Open Source
Google
Built on python (Mathematical straight fit line coordinates error predictor machine learning foundational model)

Sum-Square_Error-Business-Analytical-Tool- Built on python (Mathematical straight fit line coordinates error predictor machine learning foundational m

om Podey 1 Dec 3, 2021
Python Extreme Learning Machine (ELM) is a machine learning technique used for classification/regression tasks.

Python Extreme Learning Machine (ELM) Python Extreme Learning Machine (ELM) is a machine learning technique used for classification/regression tasks.

Augusto Almeida 84 Nov 25, 2022
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques

Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

Vowpal Wabbit 8.1k Dec 30, 2022
CD) in machine learning projectsImplementing continuous integration & delivery (CI/CD) in machine learning projects

CML with cloud compute This repository contains a sample project using CML with Terraform (via the cml-runner function) to launch an AWS EC2 instance

Iterative 19 Oct 3, 2022
ML-powered Loan-Marketer Customer Filtering Engine

In Loan-Marketing business employees are required to call the user's to buy loans of several fields and in several magnitudes. If employees are calling everybody in the network it is also very lengthy and uncertain that most of the customers will buy it. So, there is a very need for a filtering system that segregates the customers who are unlikely to buy loans and the opposite. Loan-Web is visualized and made up on that context.

Sagnik Roy 13 Jul 2, 2022
Simple Machine Learning Tool Kit

Getting started smltk (Simple Machine Learning Tool Kit) package is implemented for helping your work during data preparation testing your model The g

Alessandra Bilardi 1 Dec 30, 2021
Data Version Control or DVC is an open-source tool for data science and machine learning projects

Continuous Machine Learning project integration with DVC Data Version Control or DVC is an open-source tool for data science and machine learning proj

Azaria Gebremichael 2 Jul 29, 2021
To design and implement the Identification of Iris Flower species using machine learning using Python and the tool Scikit-Learn.

To design and implement the Identification of Iris Flower species using machine learning using Python and the tool Scikit-Learn.

Astitva Veer Garg 1 Jan 11, 2022
A handy tool for common machine learning models' hyper-parameter tuning.

Common machine learning models' hyperparameter tuning This repo is for a collection of hyper-parameter tuning for "common" machine learning models, in

Kevin Hu 2 Jan 27, 2022
Microsoft contributing libraries, tools, recipes, sample codes and workshop contents for machine learning & deep learning.

Microsoft contributing libraries, tools, recipes, sample codes and workshop contents for machine learning & deep learning.

Microsoft 366 Jan 3, 2023
A data preprocessing package for time series data. Design for machine learning and deep learning.

A data preprocessing package for time series data. Design for machine learning and deep learning.

Allen Chiang 152 Jan 7, 2023
A mindmap summarising Machine Learning concepts, from Data Analysis to Deep Learning.

A mindmap summarising Machine Learning concepts, from Data Analysis to Deep Learning.

Daniel Formoso 5.7k Dec 30, 2022
A comprehensive repository containing 30+ notebooks on learning machine learning!

A comprehensive repository containing 30+ notebooks on learning machine learning!

Jean de Dieu Nyandwi 3.8k Jan 9, 2023
MIT-Machine Learning with Python–From Linear Models to Deep Learning

MIT-Machine Learning with Python–From Linear Models to Deep Learning | One of the 5 courses in MIT MicroMasters in Statistics & Data Science Welcome t

null 2 Aug 23, 2022
Implemented four supervised learning Machine Learning algorithms

Implemented four supervised learning Machine Learning algorithms from an algorithmic family called Classification and Regression Trees (CARTs), details see README_Report.

Teng (Elijah)  Xue 0 Jan 31, 2022
Automatically build ARIMA, SARIMAX, VAR, FB Prophet and XGBoost Models on Time Series data sets with a Single Line of Code. Now updated with Dask to handle millions of rows.

Auto_TS: Auto_TimeSeries Automatically build multiple Time Series models using a Single Line of Code. Now updated with Dask. Auto_timeseries is a comp

AutoViz and Auto_ViML 519 Jan 3, 2023
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Jan 8, 2023
cuML - RAPIDS Machine Learning Library

cuML - GPU Machine Learning Algorithms cuML is a suite of libraries that implement machine learning algorithms and mathematical primitives functions t

RAPIDS 3.1k Dec 28, 2022
mlpack: a scalable C++ machine learning library --

a fast, flexible machine learning library Home | Documentation | Doxygen | Community | Help | IRC Chat Download: current stable version (3.4.2) mlpack

mlpack 4.2k Jan 1, 2023