borscht

The Python Module of The japanese sentence generator by markov chain.


License
MIT
Install
pip install borscht==1.1.2

Documentation

Borscht

The Python Module of The Japanese sentence generator by Markov chain.

Description

The Python Module of The Japanese sentence generator by Markov chain.

Do you want to generate text by Markov chain? It's quite easy! Just copy the example below.

Documentation

Requirement

If you want to run this module, please install these:

Recommendation: We recommend that you use this MeCab dictionary, mecab-ipadic-NEologd

If you want detailed information about how to install MeCab and mecab-ipadic-NEologd, please see this post. (written in Japanese): https://qiita.com/taroc/items/b9afd914432da08dafc8

Example Usage

# Import borscht.
import borscht as bor

# Text used for chain generation of Markov chain
text = """
 čĻĒč­˛ã‚ŠãŽį„Ąé‰„į ˛ã§å°äž›ãŽæ™‚から損ばかりしãĻいる。小å­Ļæ ĄãĢåą…ã‚‹æ™‚åˆ†å­Ļæ ĄãŽäēŒéšŽã‹ã‚‰éŖ›ãŗ降りãĻ一週間ãģãŠč…°ã‚’æŠœã‹ã—ãŸäē‹ãŒã‚る。
ãĒぜそんãĒį„Ąé—‡ã‚’ã—ãŸã¨čžãäēēがあるかもįŸĨれãŦ。åˆĨæŽĩæˇąã„į†į”ąã§ã‚‚ãĒい。
新į¯‰ãŽäēŒéšŽã‹ã‚‰éĻ–ã‚’å‡ēしãĻいたら、同į´šį”ŸãŽä¸€äēēが冗čĢ‡ãĢ、いくら威åŧĩãŖãĻも、そこからéŖ›ãŗ降りるäē‹ã¯å‡ēæĨぞい。åŧąč™Ģやãƒŧい。と囃したからである。
小äŊŋãĢ負ãļさãŖãĻ帰ãŖãĻæĨた時、おやじが大きãĒįœŧをしãĻäēŒéšŽãã‚‰ã„からéŖ›ãŗ降りãĻč…°ã‚’æŠœã‹ã™åĨ´ãŒã‚るかとäē‘ãŖたから、こぎæŦĄã¯æŠœã‹ã•ãšãĢéŖ›ã‚“でčĻ‹ã›ãžã™ã¨į­”えた。
 čĻĒéĄžãŽã‚‚ãŽã‹ã‚‰čĨŋ洋čŖŊãŽãƒŠã‚¤ãƒ•ã‚’č˛°ãŖãĻåĨ‡éē—ãĒ刃をæ—ĨãĢįŋŗしãĻ、友達ãĢčĻ‹ã›ãĻいたら、一äēēが光るäē‹ã¯å…‰ã‚‹ãŒåˆ‡ã‚Œãã†ã‚‚ãĒいとäē‘ãŖた。
切れãŦäē‹ãŒã‚るか、äŊ•ã§ã‚‚切ãŖãĻãŋせると受け合ãŖた。そんãĒら君ぎ指を切ãŖãĻãŋろとæŗ¨æ–‡ã—たから、äŊ•ã æŒ‡ãã‚‰ã„こぎ通りだとåŗぎ手ぎčĻĒ指ぎį”˛ã‚’はすãĢ切りčžŧんだ。
嚸ナイフが小さいぎと、čĻĒ指ぎéĒ¨ãŒå …かãŖたぎで、äģŠã ãĢčĻĒ指は手ãĢäģ˜ã„ãĻいる。しかしå‰ĩį—•ã¯æ­ģãŦぞでæļˆãˆãŦ。
 åē­ã‚’æąã¸äēŒåæ­ŠãĢčĄŒãå°Ŋすと、南上がりãĢã„ã•ã•ã‹ã°ã‹ã‚ŠãŽčœåœ’ãŒã‚ãŖãĻ、įœŸä¸­ãĢ栗ぎ木が一æœŦįĢ‹ãŖãĻいる。
これはå‘Ŋより大äē‹ãĒ栗だ。原ぎį†Ÿã™ã‚‹æ™‚分はčĩˇãæŠœã‘ãĢčƒŒæˆ¸ã‚’å‡ēãĻčŊãĄãŸåĨ´ã‚’æ‹žãŖãĻきãĻ、å­Ļæ Ąã§éŖŸã†ã€‚
čœåœ’ãŽčĨŋå´ãŒåąąåŸŽåą‹ã¨ã„ã†čŗĒåą‹ãŽåē­įļšãã§ã€ã“ぎčŗĒåą‹ãĢ勘å¤ĒéƒŽã¨ã„ã†åä¸‰å››ãŽå€…ãŒåą…ãŸã€‚
勘å¤Ē郎はį„ĄčĢ–åŧąč™Ģである。åŧąč™Ģぎį™–ãĢ四つį›ŽåžŖを䚗りこえãĻ、栗をį›—ãŋãĢくる。あるæ—ĨãŽå¤•æ–šæŠ˜æˆ¸ãŽč”­ãĢ隠れãĻ、とうとう勘å¤Ē郎を捕ぞえãĻやãŖた。
そぎ時勘å¤ĒéƒŽã¯é€ƒã’čˇ¯ã‚’å¤ąãŖãĻ、一į”Ÿæ‡¸å‘ŊãĢéŖ›ãŗかかãŖãĻきた。向うはäēŒã¤ã°ã‹ã‚Šåš´ä¸Šã§ã‚る。
åŧąč™Ģだが力はåŧˇã„。é‰ĸぎ開いた頭を、こãŖãĄãŽčƒ¸ã¸åŽ›ãĻãĻぐいぐいæŠŧした拍子ãĢ、勘å¤Ē郎ぎ頭がすずãŖãĻ、おれぎčĸˇãŽčĸ–ぎ中ãĢはいãŖた。
é‚Ē魔ãĢãĒãŖãĻ手がäŊŋえãŦから、į„Ąæš—ãĢ手を振ãŖたら、čĸ–ぎ中ãĢある勘å¤Ē郎ぎ頭が、åŗåˇĻã¸ãã‚‰ãã‚‰éĄã„ãŸã€‚
しぞいãĢč‹ĻしがãŖãĻčĸ–ぎ中から、おれぎäēŒãŽč…•ã¸éŖŸã„äģ˜ã„た。į—›ã‹ãŖたから勘å¤Ē郎をåžŖ栚へæŠŧしつけãĻおいãĻ、čļŗæĻをかけãĻ向うへ倒しãĻやãŖた。
åąąåŸŽåą‹ãŽåœ°éĸã¯čœåœ’ã‚ˆã‚Šå…­å°ēがたäŊŽã„。勘å¤Ē郎は四つį›ŽåžŖを半分崊しãĻ、č‡Ē分ぎ領分へįœŸé€†æ§˜ãĢčŊãĄãĻ、ぐうとäē‘ãŖた。
勘å¤Ē郎がčŊãĄã‚‹ã¨ããĢ、おれぎčĸˇãŽį‰‡čĸ–がもげãĻ、æ€ĨãĢ手がč‡Ēį”ąãĢãĒãŖãŸã€‚ããŽæ™Šæ¯ãŒåąąåŸŽåą‹ãĢčŠĢãŗãĢ行ãŖたついでãĢčĸˇãŽį‰‡čĸ–も取りčŋ”しãĻæĨた。
 こぎ外いたずらは大分やãŖた。大åˇĨぎå…ŧå…Ŧã¨č‚´åą‹ãŽč§’ã‚’ã¤ã‚ŒãĻã€čŒ‚äŊœãŽäēē参į• ã‚’あらしたäē‹ãŒã‚る。äēē参ぎčŠŊがå‡ē揃わãŦå‡Ļã¸č—ãŒä¸€éĸãĢæ•ˇã„ãĻあãŖたから、
そぎ上で三äēēが半æ—Ĩį›¸æ’˛ã‚’とりつãĨけãĢ取ãŖたら、äēē参がãŋんãĒ踏ãŋつãļされãĻしぞãŖãŸã€‚å¤åˇãŽæŒãŖãĻいるį”°åœƒãŽäē•æˆ¸ã‚’埋めãĻå°ģã‚’æŒãĄčžŧぞれたäē‹ã‚‚ある。
å¤Ēい孟厗ぎį¯€ã‚’抜いãĻã€æˇąãåŸ‹ã‚ãŸä¸­ã‹ã‚‰æ°´ãŒæš§ãå‡ēãĻ、そこいらぎį¨˛ãĢãŋずがかかるäģ•æŽ›ã§ã‚ãŖた。
そぎ時分はおんãĒäģ•æŽ›ã‹įŸĨらãŦから、įŸŗやæŖ’ãĄãŽã‚Œã‚’ãŽã‚…ã†ãŽã‚…ã†äē•æˆ¸ãŽä¸­ã¸æŒŋしčžŧんで、水がå‡ēãĒくãĒãŖたぎをčĻ‹åąŠã‘ãĻã€ã†ãĄã¸å¸°ãŖãĻéŖ¯ã‚’éŖŸãŖãĻいたら、
å¤åˇãŒįœŸčĩ¤ãĢãĒãŖãĻ怒éŗ´ã‚ŠčžŧんでæĨた。たしかįŊ°é‡‘ã‚’å‡ēしãĻ済んだようである。
"""
# 夏į›ŽæŧąįŸŗ 「坊ãŖãĄã‚ƒã‚“ã€ã‚ˆã‚Š

cg = bor.ChainGenerator(text) # Generate instance of class that generates chains
cg.dump("./chain.json") # Dump json file written about chains' info.
tg = bor.TextGenerator("./chain.json")
# Generate instance of class that generates sentence.

for i in range(10):
  sentence = tg.generate() # Generate sentence
  print(tg.generate())

Installation

It's quite simple using pip command:

$ pip install borscht

Contribution

  1. Fork it (https://github.com/yu-san-19/Borscht)
  2. Create your feature branch (git checkout -b feature/<your-new-feature>)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/<your-new-feature>)
  5. Create new Pull Request

License

This repository licensed under the MIT.
Please see the LICENSE file.

Author

YuSan19 and other Contributors.