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
customer churn prediction prevention in telecom industry using machine learning and survival analysis

Telco Customer Churn Prediction - Plotly Dash Application Description This dash application allows you to predict telco customer churn using machine l

Benaissa Mohamed Fayçal 3 Nov 20, 2021
ELI5 is a Python package which helps to debug machine learning classifiers and explain their predictions

A library for debugging/inspecting machine learning classifiers and explaining their predictions

154 Dec 17, 2022
Python/Sage Tool for deriving Scattering Matrices for WDF R-Adaptors

R-Solver A Python tools for deriving R-Type adaptors for Wave Digital Filters. This code is not quite production-ready. If you are interested in contr

8 Sep 19, 2022
vortex particles for simulating smoke in 2d

vortex-particles-method-2d vortex particles for simulating smoke in 2d -vortexparticles_s

12 Aug 23, 2022
Optuna is an automatic hyperparameter optimization software framework, particularly designed for machine learning

Optuna is an automatic hyperparameter optimization software framework, particularly designed for machine learning. It features an imperative, define-by-run style user API.

7.4k Jan 04, 2023
Xeasy-ml is a packaged machine learning framework.

xeasy-ml 1. What is xeasy-ml Xeasy-ml is a packaged machine learning framework. It allows a beginner to quickly build a machine learning model and use

9 Mar 14, 2022
Applied Machine Learning for Graduate Program in Computer Science (PPGCC)

Applied Machine Learning for Graduate Program in Computer Science (PPGCC) - Federal University of Santa Catarina

Jônatas Negri Grandini 1 Dec 22, 2021
A logistic regression model for health insurance purchasing prediction

Logistic_Regression_Model A logistic regression model for health insurance purchasing prediction This code is using these packages, so please make sur

ShawnWang 1 Nov 29, 2021
李航《统计学习方法》复现

本项目复现李航《统计学习方法》每一章节的算法 特点: 笔记摘要:在每个文件开头都会有一些核心的摘要 pythonic:这里会用尽可能规范的方式来实现,包括编程风格几乎严格按照PEP8 循序渐进:前期的算法会更list的方式来做计算,可读性比较强,后期几乎完全为numpy.array的计算,并且辅助详

58 Oct 22, 2021
Open-Source CI/CD platform for ML teams. Deliver ML products, better & faster. ⚡️🧑‍🔧

Deliver ML products, better & faster Giskard is an Open-Source CI/CD platform for ML teams. Inspect ML models visually from your Python notebook 📗 Re

Giskard 335 Jan 04, 2023
Esse é o meu primeiro repo tratando de fim a fim, uma pipeline de dados abertos do governo brasileiro relacionado a compras de contrato e cronogramas anuais com spark, em pyspark e SQL!

Olá! Esse é o meu primeiro repo tratando de fim a fim, uma pipeline de dados abertos do governo brasileiro relacionado a compras de contrato e cronogr

Henrique de Paula 10 Apr 04, 2022
A single Python file with some tools for visualizing machine learning in the terminal.

Machine Learning Visualization Tools A single Python file with some tools for visualizing machine learning in the terminal. This demo is composed of t

Bram Wasti 35 Dec 29, 2022
Microsoft 5.6k Jan 07, 2023
Responsible Machine Learning with Python

Examples of techniques for training interpretable ML models, explaining ML models, and debugging ML models for accuracy, discrimination, and security.

ph_ 624 Jan 06, 2023
NCVX (NonConVeX): A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning.

NCVX (NonConVeX): A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning.

SUN Group @ UMN 28 Aug 03, 2022
GAM timeseries modeling with auto-changepoint detection. Inspired by Facebook Prophet and implemented in PyMC3

pm-prophet Pymc3-based universal time series prediction and decomposition library (inspired by Facebook Prophet). However, while Faceook prophet is a

Luca Giacomel 314 Dec 25, 2022
A python library for Bayesian time series modeling

PyDLM Welcome to pydlm, a flexible time series modeling library for python. This library is based on the Bayesian dynamic linear model (Harrison and W

Sam 438 Dec 17, 2022
fastFM: A Library for Factorization Machines

Citing fastFM The library fastFM is an academic project. The time and resources spent developing fastFM are therefore justified by the number of citat

1k Dec 24, 2022
moDel Agnostic Language for Exploration and eXplanation

moDel Agnostic Language for Exploration and eXplanation Overview Unverified black box model is the path to the failure. Opaqueness leads to distrust.

Model Oriented 1.2k Jan 04, 2023
Predict profitability of trades based on indicator buy / sell signals

Predict profitability of trades based on indicator buy / sell signals Trade profitability analysis for trades based on various indicators signals: MAC

Tomasz Porzycki 1 Dec 15, 2021