Skip to main content

CaseBased is a python library that implements the priciples of case-based reasoning.

Project description

Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions License Coverage Report


📃 Our Paper on CBR


Casebased - A Python Library for Case-Based Reasoning

PyPI Version Python Versions License

Casebased is a Python library that provides a flexible and extensible framework for implementing case-based reasoning (CBR) systems. CBR is a problem-solving paradigm that focuses on solving new problems by adapting solutions that were used to solve similar past problems.

Features

Feature Description
Case Representation Represent cases using a variety of data structures, including dictionaries, JSON, and custom classes.
Case Retrieval Implement different case retrieval algorithms, such as nearest neighbor, fuzzy matching, and knowledge-guided search.
Case Adaptation Provide functions to adapt retrieved cases to fit the current problem.
Case Evaluation Assess the quality of the adapted solution and provide feedback to the system.
Case Learning Automatically learn from successful and unsuccessful problem-solving experiences to improve future performance.
Extensibility Easily integrate the library with your own domain-specific data and algorithms.

Installation

You can install the casebased library using pip:

pip install casebased

Usage

Here's a simple example of how to use the casebased library:

from casebased.case_base import CaseBase from casebased.retrieval import NearestNeighborRetriever

Create a case base

case_base = CaseBase()

Add cases to the case base

case_base.add_case({
"problem": {
"symptoms": ["fever", "headache", "sore throat"],
"duration": 3
},
"solution": {
"medication": "paracetamol",
"dosage": "500mg every 6 hours"
}
})
case_base.add_case({
"problem": {
"symptoms": ["cough", "runny nose", "fatigue"],
"duration": 5
},
"solution": {
"medication": "ibuprofen",
"dosage": "400mg every 8 hours"
}
})

Retrieve the most similar case

new_problem = {
"symptoms": ["fever", "headache", "sore throat"],
"duration": 2
}

retriever = NearestNeighborRetriever()
similar_case = retriever.retrieve(case_base, new_problem)

print(f"Similar case: {similar_case}")
print(f"Suggested solution: {similar_case['solution']}")

📈 Releases

You can see the list of available releases on the GitHub Releases page.

We follow Semantic Versions specification.

We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.

List of labels and corresponding titles

Label Title in Releases
enhancement, feature 🚀 Features
bug, refactoring, bugfix, fix 🔧 Fixes & Refactoring
build, ci, testing 📦 Build System & CI/CD
breaking 💥 Breaking Changes
documentation 📝 Documentation
dependencies ⬆️ Dependencies updates

You can update it in release-drafter.yml.

GitHub creates the bug, enhancement, and documentation labels for you. Dependabot creates the dependencies label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@misc{casebased,
  author = {casebased},
  title = {CaseBased is a python library that implements the priciples of case-based reasoning.},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/casebased/casebased}}
}

Credits 🚀 Your next Python package needs a bleeding-edge project structure.

This project was generated with python-package-template

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

casebased-0.1.3.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

casebased-0.1.3-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file casebased-0.1.3.tar.gz.

File metadata

  • Download URL: casebased-0.1.3.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.6 Darwin/24.1.0

File hashes

Hashes for casebased-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3405375a750c711d0a42426f24c6b43d9959b45d578628b15298653f5ff8f00e
MD5 5632598569ce2bd09839c3077217e27e
BLAKE2b-256 c2d150b39e31c9d55f880bd3278f26e0a928133a8a0f4554d1801e47b4569327

See more details on using hashes here.

File details

Details for the file casebased-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: casebased-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.6 Darwin/24.1.0

File hashes

Hashes for casebased-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 95897f7e7d8f52780575367e566bde96f4cab14f6d58a0ea5024873987617d8d
MD5 9813c585e8f93b08ed29afdb98e147d2
BLAKE2b-256 fbe3e5e29af4a06fcb0468a83c00867b2c5ed2a5eae0c5007dde67640f7fb964

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page