{ "info": { "author": "Max Humber", "author_email": "max.humber@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "

\n \"marc\"\n

\n

\n \"Dependencies\"\n \"Travis\"\n \"PyPI\"\n \"Downloads\"\n

\n\n\n#### About\n\nmarc (**mar**kov **c**hain) is a small, but flexible Markov chain generator.\n\n\n\n#### Usage\n\nmarc is easy to use. To build a `MarkovChain` pass the object a sequence of items:\n\n```python\nfrom marc import MarkovChain\n\nsequence = [\n 'Rock', 'Rock', 'Rock', 'Paper', 'Rock', 'Scissors',\n 'Paper', 'Paper', 'Scissors', 'Rock', 'Scissors',\n 'Scissors', 'Paper', 'Scissors', 'Rock', 'Rock', 'Rock',\n 'Paper', 'Scissors', 'Scissors', 'Scissors', 'Rock'\n]\n\nchain = MarkovChain(sequence)\n```\n\nThe learned transition matrix can be accessed through the `matrix` attribute:\n\n```python\nprint(chain.matrix)\n# [[0.5, 0.25, 0.25], [0.2, 0.2, 0.6], [0.375, 0.25, 0.375]]\n```\n\nThough, the output is perhaps better viewed as a pandas `DataFrame`:\n\n```python\nimport pandas as pd\n\ndf = pd.DataFrame(\n chain.matrix,\n index=chain.encoder.index_,\n columns=chain.encoder.index_\n)\n\nprint(df)\n# Rock Paper Scissors\n# Rock 0.500 0.25 0.250\n# Paper 0.200 0.20 0.600\n# Scissors 0.375 0.25 0.375\n```\n\nUse the `next` method to generate the next state (seeded or unseeded):\n\n```python\nchain.next('Rock')\n# 'Rock'\n\nchain.next()\n# Paper\n```\n\nThe `next` method can also generate multiple states with the `n` argument:\n\n```python\nchain.next('Paper', n=5)\n# ['Scissors', 'Paper', 'Rock', 'Paper', 'Scissors']\n```\n\n`MarkovChain` objects are iterable. This means that they can be passed directly to the `next` function:\n\n```python\nnext(chain)\n# 'Scissors'\n\nnext(chain)\n# Rock\n```\n\n\n\n#### Example\n\nA fully worked example of marc in action (block text provided by [quote](https://github.com/maxhumber/quote)):\n\n```python\nimport random\nimport re\nfrom quote import quote\nfrom marc import MarkovChain\n\nquotes = quote('shakespeare', 250)\nprint(quotes[0])\n\n# {'author': 'William Shakespeare',\n# 'book': 'As You Like It',\n# 'quote': 'The fool doth think he is wise, but the wise man knows himself to be a fool.'}\n\ntext = '\\n'.join([q['quote'] for q in quotes])\ntext = text.lower()\n\ntokens = re.findall(r\"[\\w']+|[.,!?;]\", text)\ntokens[:5]\n\n# ['the', 'fool', 'doth', 'think', 'he']\n\nchain = MarkovChain(tokens)\n\ndef generate_sentences(chain, n=2, length=(10, 20)):\n for _ in range(n):\n l = random.randint(length[0], length[1])\n nonsense = ' '.join(chain.next(n=l))\n print(nonsense)\n\ngenerate_sentences(chain)\n\n# and unless by some are fascinated by the hour upon the wind faithful\n# those that hath had a very much as flaws go\n```\n\n\n\n#### Install\n\n```\npip install -U marc\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/maxhumber/marc", "keywords": "markov,markov chain,transition matrix,list encoder", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "marc", "package_url": "https://pypi.org/project/marc/", "platform": "", "project_url": "https://pypi.org/project/marc/", "project_urls": { "Homepage": "https://github.com/maxhumber/marc" }, "release_url": "https://pypi.org/project/marc/2.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "marc is a small, but flexible Markov chain generator", "version": "2.0" }, "last_serial": 5951833, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4e35a7164bc2ce77eda315ddeafc4dfe", "sha256": "21ff62842e2b5ee8815cefccc160b0c4837560d3f004360b579d47053e36ca4a" }, "downloads": -1, "filename": "marc-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4e35a7164bc2ce77eda315ddeafc4dfe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2967, "upload_time": "2019-05-23T18:49:46", "url": "https://files.pythonhosted.org/packages/46/67/fecea9244e5650a434b21e44524c7729e9481fd966c433d0a7110993ccab/marc-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed86d452442f5969108ce430e09e9bc2", "sha256": "dc83e90b2278c39a373c5188f21e286a6172562ab8cdc28856917fd3472f6d0b" }, "downloads": -1, "filename": "marc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ed86d452442f5969108ce430e09e9bc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3592, "upload_time": "2019-05-23T18:49:49", "url": "https://files.pythonhosted.org/packages/af/81/c0ad0efba084b639f8170104d28b5daa8235ebb52367b60f3051c224b274/marc-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "071377e686e981e86d95df2b74f57178", "sha256": "57f7f46a7f87b3dd045d64e9165c1ac5d3768c1a78d9e3cd973db5920560f979" }, "downloads": -1, "filename": "marc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "071377e686e981e86d95df2b74f57178", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1769, "upload_time": "2019-05-23T19:16:45", "url": "https://files.pythonhosted.org/packages/0c/18/589f77d22c3e9fc550f85dccd0b67b376a06f179233ee8909a626e62bb88/marc-0.1.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "4770da382463d128d0e2cae76251e3b8", "sha256": "bba26459b23f1bf921615d417dd1e889c8c75271f1cba94e0572ac64d1ca4c3d" }, "downloads": -1, "filename": "marc-1.0.tar.gz", "has_sig": false, "md5_digest": "4770da382463d128d0e2cae76251e3b8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2055, "upload_time": "2019-07-01T16:14:30", "url": "https://files.pythonhosted.org/packages/e9/d2/23abeb2c48e43dae255d5cfb357241fdeea3508ff3238fee82403cd64f6b/marc-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cf823def3f651469cf0f44925ae5da49", "sha256": "b262e9e0397b04910f6cb38dd9c9db4bcde6fed5f4bfb22e8e043d0730f322d6" }, "downloads": -1, "filename": "marc-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cf823def3f651469cf0f44925ae5da49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2367, "upload_time": "2019-07-01T16:19:58", "url": "https://files.pythonhosted.org/packages/77/c9/f85a0aae224f34ef8145438e7c9d14d351f58c90a27c159d0da5f32123e2/marc-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "166629a511ddcb49285f3db9d2831486", "sha256": "e56f2e9a8db065dc7d9984b6a598c28f478d3929f61428f422493fc4aaa58dad" }, "downloads": -1, "filename": "marc-1.0.2.tar.gz", "has_sig": false, "md5_digest": "166629a511ddcb49285f3db9d2831486", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2294, "upload_time": "2019-07-03T17:46:33", "url": "https://files.pythonhosted.org/packages/c3/69/d890a4ee7facdb66645ebab3e99620d29635a75e517663f20898fb073d29/marc-1.0.2.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "fabb791a2db3466eedf53f4835cfdcb0", "sha256": "587a22fc078333a6a35b7646422cca121115d3d630f09fdc5eb1ee4ef5d75e5f" }, "downloads": -1, "filename": "marc-2.0.tar.gz", "has_sig": false, "md5_digest": "fabb791a2db3466eedf53f4835cfdcb0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3949, "upload_time": "2019-10-09T20:17:45", "url": "https://files.pythonhosted.org/packages/91/95/eabff55fc5d68ed7c982526de79768ee34ffb4f64ecb606a6410f9e8fdd1/marc-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fabb791a2db3466eedf53f4835cfdcb0", "sha256": "587a22fc078333a6a35b7646422cca121115d3d630f09fdc5eb1ee4ef5d75e5f" }, "downloads": -1, "filename": "marc-2.0.tar.gz", "has_sig": false, "md5_digest": "fabb791a2db3466eedf53f4835cfdcb0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3949, "upload_time": "2019-10-09T20:17:45", "url": "https://files.pythonhosted.org/packages/91/95/eabff55fc5d68ed7c982526de79768ee34ffb4f64ecb606a6410f9e8fdd1/marc-2.0.tar.gz" } ] }