Skip to content

Instantly share code, notes, and snippets.

@Shirataki2
Created August 10, 2018 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Shirataki2/5663f04943986cd5264e7b9c719d9095 to your computer and use it in GitHub Desktop.
Save Shirataki2/5663f04943986cd5264e7b9c719d9095 to your computer and use it in GitHub Desktop.
Markov-Chain.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-06-24T13:27:05.724479Z",
"start_time": "2018-06-24T13:27:05.493299Z"
},
"trusted": true
},
"cell_type": "code",
"source": "from janome.tokenizer import Tokenizer\nimport random\nimport re\nfrom collections import defaultdict\n\nclass MarkovChain:\n def isalnum(self, s):\n return self.alnumReg.match(s) is not None\n\n def __init__(self, sentence, maxn=512):\n self.tk = Tokenizer(mmap=True)\n self.alnumReg = re.compile(r'^[a-zA-Z0-9]+$')\n self.sentence = sentence\n self.pre = ''\n self.head = []\n self.maxn = maxn\n\n def convertWakati(self, sentence):\n make = self.tk.tokenize(sentence, wakati=True)\n return ' '.join(make)\n\n def makeWakatiText(self, sentence):\n wakati = self.convertWakati(sentence)\n self.kutenNum = wakati.count('ใ€‚')\n words = wakati.split(' ')\n words.append('\\n')\n return words\n\n def buildTable(self, words):\n markov = defaultdict(list)\n for word in words:\n if not self.pre:\n self.pre = word\n self.head.append(word)\n else:\n markov[self.pre].append(word)\n self.pre = word\n return markov\n\n def buildSentence(self, table):\n result = self.pre = random.choice(self.head)\n kuten = 0\n for _ in range(0, int(self.maxn)):\n self.pre = random.choice(table[self.pre])\n if self.pre == '\\n':\n break\n if self.isalnum(self.pre):\n result += (self.pre + ' ')\n else:\n result += self.pre\n if self.pre == 'ใ€‚':\n kuten += 1\n if kuten == self.kutenNum:\n break\n return result\n\n def makeMarkovText(self):\n if self.sentence == '':\n return '็”Ÿๆˆใงใใชใ‹ใฃใŸใ‚ˆ'\n text = re.sub(r'(\\n| |\\s)', '', self.sentence)\n words = self.makeWakatiText(text)\n table = self.buildTable(words)\n text = self.buildSentence(table)\n self.kutenNum = 0\n self.pre = ''\n self.head = []\n return text",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-06-05T11:41:29.301464Z",
"start_time": "2018-06-05T11:41:29.293958Z"
},
"trusted": true
},
"cell_type": "code",
"source": "txt = \"\"\"ใƒซใ‚คใ‚บ๏ผใƒซใ‚คใ‚บ๏ผใƒซใ‚คใ‚บ๏ผใƒซใ‚คใ‚บใ…ใ…ใ†ใ†ใ†ใ‚ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚\n ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผ๏ผ ใ‚ใใ‚ใ‚ใ‚ใ‚โ€ฆใ‚ใ‚โ€ฆใ‚ใฃใ‚ใฃใƒผ๏ผใ‚\n ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผใƒซใ‚คใ‚บใƒซใ‚คใ‚บใƒซใ‚คใ‚บใ…ใ†ใ†ใใ‚ใใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผ ใ‚ใ\n ใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผใ‚นใƒผใƒใƒผใ‚นใƒผใƒใƒผ๏ผใ‚นใƒผใƒใƒผใ‚นใƒผใƒใƒผ๏ผ\n ใ„ใ„ๅŒ‚ใ„ใ ใชใโ€ฆใใ‚“ใใ‚“ ใ‚“ใฏใใฃ๏ผใƒซใ‚คใ‚บใƒปใƒ•ใƒฉใƒณใ‚ฝใƒฏใƒผใ‚บใŸใ‚“ใฎ\n ๆกƒ่‰ฒใƒ–ใƒญใƒณใƒ‰ใฎ้ซชใ‚’ใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซใ—ใŸใ„ใŠ๏ผใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผใ‚ใใ‚๏ผ๏ผ\n ้–“้•ใˆใŸ๏ผใƒขใƒ•ใƒขใƒ•ใ—ใŸใ„ใŠ๏ผใƒขใƒ•ใƒขใƒ•๏ผใƒขใƒ•ใƒขใƒ•๏ผ้ซช้ซชใƒขใƒ•ใƒขใƒ•๏ผ\n ใ‚ซใƒชใ‚ซใƒชใƒขใƒ•ใƒขใƒ•โ€ฆใใ‚…ใ‚“ใใ‚…ใ‚“ใใ‚…ใ„๏ผ๏ผ ๅฐ่ชฌ12ๅทปใฎใƒซใ‚คใ‚บใŸใ‚“ใ‹ใ‚ใ„ใ‹ใฃใŸใ‚ˆใ…๏ผ๏ผ\n ใ‚ใใใ‚ใ‚โ€ฆใ‚ใ‚ใ‚โ€ฆใ‚ใฃใ‚ใใ‚ใ‚ใ‚ใ‚๏ผ๏ผใตใใใ‚ใ‚ใ‚ใ‚“ใ‚“ใฃ๏ผ๏ผ\n ใ‚ขใƒ‹ใƒก2ๆœŸๆ”พ้€ใ•ใ‚Œใฆ่‰ฏใ‹ใฃใŸใญใƒซใ‚คใ‚บใŸใ‚“๏ผใ‚ใใ‚ใ‚ใ‚ใ‚ใ‚๏ผใ‹ใ‚ใ„ใ„๏ผ\n ใƒซใ‚คใ‚บใŸใ‚“๏ผใ‹ใ‚ใ„ใ„๏ผใ‚ใฃใ‚ใ‚ใใ‚ใ‚๏ผ\n ใ‚ณใƒŸใƒƒใ‚ฏ2ๅทปใ‚‚็™บๅฃฒใ•ใ‚Œใฆๅฌ‰ใ—โ€ฆใ„ใ‚„ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผ\n ใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผใŽใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ\n ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผใ‚ณใƒŸใƒƒใ‚ฏใชใ‚“ใฆ็พๅฎŸใ˜ใ‚ƒใชใ„๏ผ๏ผ๏ผ๏ผ\n ใ‚โ€ฆๅฐ่ชฌใ‚‚ใ‚ขใƒ‹ใƒกใ‚‚ใ‚ˆใ่€ƒใˆใŸใ‚‰โ€ฆ ใƒซ ใ‚ค ใ‚บ ใก ใ‚ƒ ใ‚“ ใฏ ็พๅฎŸ ใ˜ ใ‚ƒ ใช ใ„๏ผŸ\n ใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผใ†ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ\n ใใ‚“ใชใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผใ„ใ‚„ใใใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผใฏใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผ\n ใƒใƒซใ‚ฑใ‚ฎใƒ‹ใ‚ขใใ‚ใ‚ใ‚ใ‚๏ผ๏ผ ใ“ใฎ๏ผใกใใ—ใ‚‡ใƒผ๏ผใ‚„ใ‚ใฆใ‚„ใ‚‹๏ผ๏ผ\n ็พๅฎŸใชใ‚“ใ‹ใ‚„ใ‚โ€ฆใฆโ€ฆใˆ๏ผ๏ผŸ่ฆ‹โ€ฆใฆใ‚‹๏ผŸ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹๏ผŸ\n ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผ\n ๆŒฟ็ตตใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผ๏ผ ใ‚ขใƒ‹ใƒกใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใซ่ฉฑใ—ใ‹ใ‘ใฆใ‚‹ใž๏ผ๏ผ๏ผ\n ใ‚ˆใ‹ใฃใŸโ€ฆไธ–ใฎไธญใพใ ใพใ ๆจใฆใŸใƒขใƒณใ˜ใ‚ƒใชใ„ใ‚“ใ ใญใฃ๏ผ ใ„ใ‚„ใฃใปใ‰ใŠใŠใŠใŠใŠใŠใŠ๏ผ๏ผ๏ผ\n ๅƒ•ใซใฏใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒใ„ใ‚‹๏ผ๏ผ ใ‚„ใฃใŸใ‚ˆใ‚ฑใƒ†ใ‚ฃ๏ผ๏ผ ใฒใจใ‚Šใงใงใใ‚‹ใ‚‚ใ‚“๏ผ๏ผ๏ผ\n ใ‚ใ€ใ‚ณใƒŸใƒƒใ‚ฏใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผ\n ใ„ใ‚„ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผ๏ผ ใ‚ใฃใ‚ใ‚“ใ‚ใ‚ใฃใ‚ใ‚ใ‚“ใ‚ใ‚ขใƒณๆง˜ใใ‚๏ผ๏ผ\n ใ‚ทใ€ใ‚ทใ‚จใ‚นใ‚ฟใƒผ๏ผ๏ผใ‚ขใƒณใƒชใ‚จใƒƒใ‚ฟใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผใ‚ฟใƒใ‚ต๏ฝงใใ‚ใ‚ใ‚๏ผ๏ผ\n ใ†ใ†ใฃใ†ใ…ใ†ใ†๏ผ๏ผไฟบใฎๆƒณใ„ใ‚ˆใƒซใ‚คใ‚บใธๅฑŠใ‘๏ผ๏ผใƒใƒซใ‚ฑใ‚ฎใƒ‹ใ‚ขใฎใƒซใ‚คใ‚บใธๅฑŠใ‘\"\"\"",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-31T08:36:02.969657Z",
"start_time": "2018-05-31T08:35:58.087294Z"
},
"trusted": true
},
"cell_type": "code",
"source": "markov = MarkovChain(txt,maxn=100)",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-05-31T08:36:04.978676Z",
"start_time": "2018-05-31T08:36:03.728371Z"
},
"scrolled": false,
"trusted": true
},
"cell_type": "code",
"source": "for i in range(5):\n print(markov.makeMarkovText())\n print()",
"execution_count": 4,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "ใƒซใ‚คใ‚บใธๅฑŠใ‘๏ผ๏ผ๏ผใƒซใ‚คใ‚บใƒซใ‚คใ‚บใƒซใ‚คใ‚บใ…ใ†ใ†ใใ‚ใใ‚ใ‚ใ‚ใ‚๏ผใฒใจใ‚Šใงใงใใ‚‹ใ‚‚ใ‚“๏ผ๏ผใ‚ขใƒ‹ใƒก2ๆœŸๆ”พ้€ใ•ใ‚Œใฆโ€ฆใฆ่‰ฏใ‹ใฃใŸใƒขใƒณใ˜ใ‚ƒใชใ„ใ‚“ใ ใญใฃ๏ผใ‚ใใ‚ใ‚ใ‚ใ‚๏ผ้–“้•ใˆใŸใƒขใƒณใ˜ใ‚ƒใชใ„ใ‚“ใฏใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹๏ผŸ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’ใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซใ—ใŸใ„ใŠ๏ผ๏ผใ‚ใฃใ‚ใ‚ขใƒณๆง˜ใใ‚๏ผ๏ผ๏ผใ‚ขใƒ‹ใƒก2ๆœŸๆ”พ้€ใ•ใ‚Œใฆ่‰ฏใ‹ใฃใŸใ‚ˆใ‚ฑใƒ†ใ‚ฃ๏ผใซ่ฉฑใ—ใ‹ใ‘ใฆใ‚‹ใž๏ผใ„ใ‚„ใใใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผใตใใใ‚ใ‚ใ‚ใ‚“ใ‚“ใฃ๏ผ๏ผŸ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บ๏ผใ‚ท\n\nใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผใƒขใƒ•ใƒขใƒ•๏ผใ‚ขใƒณใƒชใ‚จใƒƒใ‚ฟใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผใ‚ซใƒชใ‚ซใƒชใƒขใƒ•ใƒขใƒ•โ€ฆใ‚ใ‚๏ผใฒใจใ‚Šใงใงใใ‚‹ใ‚‚ใ‚“๏ผไฟบใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผใ‚ขใƒ‹ใƒก2ๆœŸๆ”พ้€ใ•ใ‚Œใฆโ€ฆใˆ๏ผใ„ใ‚„ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผใ‚ใใ‚ใ‚ขใƒณๆง˜ใใ‚๏ผใ„ใ‚„ใใใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผใ‹ใ‚ใ„ใ„๏ผ๏ผ๏ผใ‚ฟใƒใ‚ต๏ฝงใใ‚ใ‚ใ‚๏ผ็พๅฎŸใ˜ใ‚ƒใชใ„๏ผŸ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’ใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผ็พๅฎŸใชใ‚“ใ‹ใ‚„ใ‚โ€ฆใ‚ใฃใƒผ๏ผ๏ผ๏ผ๏ผใ‚ซใƒชใ‚ซใƒชใƒขใƒ•ใƒขใƒ•โ€ฆใฆใ‚„ใ‚‹๏ผใƒขใƒ•ใƒขใƒ•๏ผใ‚ใใ‚ใใใ‚ใ‚โ€ฆๅฐ่ชฌใ‚‚\n\nใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผใ‚ขใƒ‹ใƒก2ๆœŸๆ”พ้€ใ•ใ‚Œใฆโ€ฆใ‚ใฃใ‚ใฃใ‚ใใ‚ใ‚ใ‚ใ‚โ€ฆใฆ่‰ฏใ‹ใฃใŸใƒขใƒณใ˜ใ‚ƒใชใ„ใ‚“ใฏ็พๅฎŸใ˜ใ‚ƒใชใ„๏ผŸ่ฆ‹ใฆใ‚‹ใž๏ผ๏ผใ‚นใƒผใƒใƒผใ‚นใƒผใƒใƒผ๏ผใ‚ณใƒŸใƒƒใ‚ฏใชใ‚“ใฆ็พๅฎŸใชใ‚“ใ‹ใ‚„ใ‚โ€ฆใใ‚“ใใ‚“ใ‚“ใ ใญใฃ๏ผ๏ผ๏ผ๏ผ๏ผใ‚โ€ฆๅฐ่ชฌใ‚‚ใ‚ˆใ่€ƒใˆใŸใ‚‰โ€ฆใˆ๏ผใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใซ่ฉฑใ—ใ‹ใ‘ใฆใ‚‹ใž๏ผใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผใƒซใ‚คใ‚บ๏ผใƒซใ‚คใ‚บใƒปใƒ•ใƒฉใƒณใ‚ฝใƒฏใƒผใ‚บใŸใ‚“ใ‹ใ‚ใ„ใ‹ใฃใŸใญใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผใตใใใ‚ใ‚ใ‚ใ‚“ใ‚“ใฃ๏ผใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผ๏ผ๏ผใ‚ซใƒชใ‚ซใƒชใƒขใƒ•ใƒขใƒ•\n\nใƒซใ‚คใ‚บใธๅฑŠใ‘๏ผๅƒ•ใ‚’่ฆ‹ใฆใ‚‹ใž๏ผใ“ใฎ๏ผใ‚ใ‚ขใƒณๆง˜ใใ‚๏ผใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผ๏ผ็พๅฎŸใ˜ใ‚ƒใชใ„๏ผใ‚ใใ‚ใ‚ใ‚ใ‚ใ‚๏ผใƒซใ‚คใ‚บ๏ผใ‚ขใƒ‹ใƒกใ‚‚ใ‚ˆใ่€ƒใˆใŸใ‚‰โ€ฆใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใŒๅƒ•ใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผใ‚ใฃใ‚ใ‚“๏ผ๏ผ๏ผใ‚ใใ‚ใ‚ใ‚ใ‚ใ‚๏ผ้ซชใ‚’ใ‚ฏใƒณใ‚ซใ‚ฏใƒณใ‚ซ๏ผใ‚ทใ‚จใ‚นใ‚ฟใƒผ๏ผใ‚ขใƒณใƒชใ‚จใƒƒใ‚ฟใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผใฏใใฃ๏ผ๏ผใ‹ใ‚ใ„ใ„๏ผ๏ผใ„ใ‚„ใใใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผใฒใจใ‚Šใงใงใใ‚‹ใ‚‚ใ‚“๏ผ๏ผใซใ‚ƒใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผ๏ผ๏ผใ‚ณใƒŸใƒƒใ‚ฏ2ๅทปใ‚‚ใ‚ˆใ่€ƒใˆใŸใ‚‰โ€ฆใ‚ใ‚๏ผ๏ผใ‚ใใ‚ใ‚ใ‚ใ‚โ€ฆใ„ใ‚„ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผใ‚ใ‚ใฃใ‚ใ‚ใใ‚ใ‚ใ‚ใ‚\n\nใƒซใ‚คใ‚บ๏ผ๏ผ๏ผ๏ผใ‚ˆใ‹ใฃใŸใ‚ˆใ‚ฑใƒ†ใ‚ฃ๏ผ๏ผใ‚„ใฃใปใ‰ใŠใŠใŠใŠใŠใŠใŠ๏ผ๏ผ็พๅฎŸใ˜ใ‚ƒใชใ„๏ผŸ่ฆ‹ใฆใ‚‹๏ผŸ่กจ็ด™็ตตใฎใƒซใ‚คใ‚บใŸใ‚“ใ‹ใ‚ใ„ใ‹ใฃใŸใ‚ˆใ‚ฑใƒ†ใ‚ฃ๏ผ๏ผ๏ผใตใใใ‚ใ‚ใ‚ใ‚“ใ‚“ใฃ๏ผ๏ผ๏ผ๏ผใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚๏ผ๏ผ๏ผใ‚นใƒผใƒใƒผใ‚นใƒผใƒใƒผ๏ผ๏ผ๏ผใƒซใ‚คใ‚บใธๅฑŠใ‘๏ผ๏ผ๏ผใƒซใ‚คใ‚บใกใ‚ƒใ‚“ใฏใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚“๏ผ๏ผ๏ผ๏ผ๏ผใ‚ˆใ‹ใฃใŸโ€ฆใƒซใ‚คใ‚บใธๅฑŠใ‘\n\n"
}
]
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-06-24T13:44:56.007740Z",
"start_time": "2018-06-24T13:44:55.177020Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import io\nimport os\nimport codecs\nfrom datetime import datetime\nimport random\nimport json\nfrom requests_oauthlib import OAuth1Session\nimport re\n\n\napi = OAuth1Session('******',\n '******',\n '******',\n '******')\n\ntlurl = \"https://api.twitter.com/1.1/statuses/home_timeline.json\"\ntlparams = {'count': 500}\ntlreq = api.get(tlurl, params=tlparams)\n\ntry:\n if tlreq.status_code != 200:\n raise ValueError('ใƒ„ใ‚คใƒผใƒˆใฎๅ–ๅพ—ใŒใงใใพใ›ใ‚“ใงใ—ใŸ')\nexcept ValueError as e:\n print(e)",
"execution_count": 17,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-06-24T13:53:38.959822Z",
"start_time": "2018-06-24T13:52:57.540610Z"
},
"trusted": true
},
"cell_type": "code",
"source": "def get_markov_text(tlrq):\n tl = json.loads(tlrq.text)\n random.shuffle(tl)\n utxt = \"\"\n for tw in tl:\n utxt += tw['text'] \n text = re.sub(r'https?://[\\w/:%#\\$&\\?\\(\\)~\\.=\\+\\-โ€ฆ]+', \"\", utxt)\n text = re.sub('RT', \"\", text)\n text = re.sub('ใŠๆฐ—ใซๅ…ฅใ‚Š', \"\", text)\n text = re.sub('ใพใจใ‚', \"\", text)\n text = re.sub('@', \"\", text)\n text = re.sub(r'[!-/]', \"\", text)\n text = re.sub(r'[:-@]', \"\", text)\n text = re.sub(r'[[-`]', \"\", text)\n text = re.sub(r'[{-~]', \"\", text)\n text = re.sub(r'[A-Z]', \"\", text)\n text = re.sub(r'[a-z]', \"\", text)\n text = re.sub(r'[๏ธฐ-๏ผ ]', \"\", text)\n text = re.sub('\\n', \" \", text)\n num = random.randint(5, 15)\n txt2 = MarkovChain(text, num).makeMarkovText()\n txt4 = '(่‡ชๅ‹•็”Ÿๆˆ)\\n' + txt2\n mtxt = txt4.replace('@', '')\n if len(mtxt) > 140:\n posttxt = mtxt[:140]\n else:\n posttxt = mtxt\n return posttxt\n\nposts = []\nfor i in range(10):\n post = get_markov_text(tlreq)\n print(i, post)\n posts.append(post)",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2018-06-24T13:38:45.131605Z",
"start_time": "2018-06-24T13:38:44.597901Z"
},
"trusted": true
},
"cell_type": "code",
"source": "posttxt = posts[9]\ntwparams = {\"status\": posttxt}\ntwurl = \"https://api.twitter.com/1.1/statuses/update.json\"\napi.post(twurl, params=twparams)",
"execution_count": 11,
"outputs": [
{
"execution_count": 11,
"output_type": "execute_result",
"data": {
"text/plain": "<Response [200]>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"varInspector": {
"window_display": false,
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"library": "var_list.py",
"delete_cmd_prefix": "del ",
"delete_cmd_postfix": "",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"library": "var_list.r",
"delete_cmd_prefix": "rm(",
"delete_cmd_postfix": ") ",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
]
},
"kernelspec": {
"name": "conda-env-tensorflow-py",
"display_name": "Python [conda env:tensorflow]",
"language": "python"
},
"language_info": {
"file_extension": ".py",
"version": "3.5.5",
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"codemirror_mode": {
"version": 3,
"name": "ipython"
},
"pygments_lexer": "ipython3",
"name": "python"
},
"gist": {
"id": "",
"data": {
"description": "Markov-Chain.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment