<commit_before>dbot : $BE,Ev$KJ8>O@8@.$9$k(Bbot
============================
## dbot$B$H$O(B
$B%D%$!<%H$rC18l$d5-9f$4$H$KJ,2r$7$F!"J]B8$7!"J]B8$7$?C18l$+$i!"JQ$JJ8>O$r@8@.$9$k$A$C$A$c$J%=%U%H%&%'%"$G$9(B  
$B!J7ABVAG2r@O$N7k2L$+$i!"7ABVAG4V$N$D$J$,$j$r5-O?$7!"$=$l$rMQ$$$FJ8>O$r@8@.$9$k%=%U%H%&%'%"$G$9!K!#(B

mikutter$B$GF0$/(Bbot$B:n$j$?$+$C$?$N$G!":n$j$^$7$?!#(B

## $B%U%!%$%k$K$D$$$F(B
* dbot.rb  
    $B%a%$%s$N%U%!%$%k$G$9!#(BDB$B@8@.$H%D%$!<%H$NJ,@O$r$3$3$G9T$J$C$F$$$^$9!#(B
* generator.rb  
    $BJ8>O@8@.$N%U%!%$%k$G$9!#J8>O$N@8@.$r$3$3$G9T$$$^$9!#(B
* import\_twilog.rb  
    Twilog$B$+$i%@%&%s%m!<%I$G$-$k(BCSV$B%U%!%$%k$rJ,@O$7!"(BDB$B$KJ]B8$7$^$9!#(B
* mikutter\_dbot.rb
    mikutter$BMQ%W%i%0%$%s$G$9!#(B

## $B%$%s%9%H!<%k(B
$B$*9%$-$J%U%)%k%@$G!"(B`git clone`$B$9$k$@$1$G$9!#(B

* $BDL>o%$%s%9%H!<%k(B
  `$ git clone <EMAIL>:syusui-s/dbot.git`
* mikutter$B$G;H$&>l9g(B
  ` $ git clone <EMAIL>:syusui-s/dbot.git ~/.mikutter/plugin/mikutter_dbot`

## $B;H$$J}(B
$B$3$3$G$O!"(Bimport\_twilog.rb$B$r;H$C$F(BDB$B$r:n$j!"$=$N(BDB$B$rMQ$$$FJ8>O@8@.$9$kJ}K!$r=q$$$F$*$-$^$9!#(B

1. Twilog$B$+$i2a5n$N%D%$!<%H$N%"!<%+%$%V(B(UTF-8)$B$r%@%&%s%m!<%I$7!"E83+$9$k!#(B  
  `$ gzip -d username_130522.csv.gz`  
2. import\_twilog.rb $B$rMQ$$$F!"(BDB$B$r@8@.$9$k!#(B  
  $B$3$N:n6H$O;~4V$,$+$+$j$^$9$N$G!"5$D9$K$*BT$A$/$@$5$$!#(B  
  $B<B9T8"8B$,$J$$>l9g$O!"(B`$ chmod +x ./import_twilog.rb`$B$7$F!"<B9T$G$-$k$h$&$K$7$F$/$@$5$$!#(B  
  `$ ./import_twilog.rb username_130522.csv words.db`
  $B%a%b%j$KM>M5$,$"$l$P!"(B/dev/shm/ $B$d(B RAMDISK$B$K(Bcsv$B$H=PNO@h$r;XDj$9$k$H!"$H$F$bAa$/$J$j$^$9!#(B  
  $BNc(B: `$ ./import_twilog.rb /dev/shm/username_130522.csv /dev/shm/words.db`  
  $B:n6H$,=*$o$C$?$i!"(B
3. Ruby$B$N%$%s%?%W%j%?$rN)$A>e$2$k(B  
  Ruby$B$N%$%s%?%W%j%?!J(Birb$B$d(Bpry$B!K$r5/F0$7$^$9!#(B
4. $B;n$7$KJ8>O$r@8@.$7$F$_$^$9(B  
  $B%$%s%?%W%j%?$G<B9T$7$F$_$^$9!#(B  
  ./test.db$B$K$O(B3$B$G:n$C$?(BDB$B%U%!%$%k$N%Q%9$r;XDj$7$F$/$@$5$$!#(B
	require './generator'
	gen=SentenceGenerator.new(WordsDB("./test.db"))
	gen.random
  $B$A$c$s$H=PNO$5$l$l$P@.8y$G$9!#$*$a$G$H$&$4$6$$$^$9!*(B  

## $B@8@.J}K!$NDI2C(B
generator.rb$B$N(BSentenceGenerator$B%/%i%9$K!"!V(Bgen\_$B!W$+$i;O$^$k%$%s%9%?%s%9%a%=%C%I$rDI2C$7$F$/$@$5$$!#(B  

	def SentenceGenerator
	  def gen_hogehoge
	  # $B$3$3$K@8@.J}K!$r=q$/(B
	  end
	end

$B$H$$$&Iw$K=q$$$F$b9=$$$^$;$s(B

## $B%i%$%;%s%9(B
MIT License$B$G$9!#(B<commit_msg>fixed encoding error (garble)<commit_after>dbot : 適当に文章生成するbot
============================

## dbotとは
ツイートを単語や記号ごとに分解して、保存し、保存した単語から、変な文章を生成するちっちゃなソフトウェアです  
（形態素解析の結果から、形態素間のつながりを記録し、それを用いて文章を生成するソフトウェアです）。

mikutterで動くbot作りたかったので、作りました。  
そのうちちゃんとマルコフ連鎖とかするようにします。

## ファイルについて
* dbot.rb  
    メインのファイルです。DB生成とツイートの分析をここで行なっています。
* generator.rb  
    文章生成のファイルです。文章の生成をここで行います。
* import\_twilog.rb  
    TwilogからダウンロードできるCSVファイルを分析し、DBに保存します。
* mikutter\_dbot.rb
    mikutter用プラグインです。

## インストール
お好きなフォルダで、`git clone`するだけです。

* 通常インストール  
  `$ git clone <EMAIL>:syusui-s/dbot.git`
* mikutterで使う場合  
  ` $ git clone <EMAIL>:syusui-s/dbot.git ~/.mikutter/plugin/mikutter_dbot`

## 使い方
ここでは、import\_twilog.rbを使ってDBを作り、そのDBを用いて文章生成する方法を書いておきます。

1. Twilogから過去のツイートのアーカイブ(UTF-8)をダウンロードし、展開する。  
  `$ gzip -d username_130522.csv.gz`  
2. import\_twilog.rb を用いて、DBを生成する。  
  この作業は時間がかかりますので、気長にお待ちください。  
  実行権限がない場合は、`$ chmod +x ./import_twilog.rb`して、実行できるようにしてください。  
  `$ ./import_twilog.rb username_130522.csv words.db`
  メモリに余裕があれば、/dev/shm/ や RAMDISKにcsvと出力先を指定すると、とても早くなります。  
  例: `$ ./import_twilog.rb /dev/shm/username_130522.csv /dev/shm/words.db`  
  作業が終わったら、
3. Rubyのインタプリタを立ち上げる  
  Rubyのインタプリタ（irbやpry）を起動します。
4. 試しに文章を生成してみます  
  インタプリタで実行してみます。  
  ./test.dbには3で作ったDBファイルのパスを指定してください。 

	`
	require './generator'  
	gen=SentenceGenerator.new(WordsDB("./test.db"))  
	gen.random  
	`

  ちゃんと出力されれば成功です。おめでとうございます！  

## 生成方法の追加
generator.rbのSentenceGeneratorクラスに、「gen\_」から始まるインスタンスメソッドを追加してください。  

	
	def SentenceGenerator
	  def gen_hogehoge
	  # ここに生成方法を書く
	  end
	end

という風に書いても構いません

## ライセンス
MIT Licenseです。  
{'fraction_non_alphanumeric': 0.32118725868725867, 'fraction_numerical': 0.04319498069498069, 'mean_word_length': 6.246503496503497, 'pattern_counts': {'":': 1, '<': 18, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4371607', 'n_tokens_mistral': 3063, 'n_tokens_neox': 2917, 'n_words': 159}