[[TopPage]]

+参考サイト http://d.hatena.ne.jp/nokuno/20100123/1264239192
+日本語テキストを読み込むサンプルプログラム
	#! /usr/bin/env python
	#encoding: utf-8
	import nltk
	
	raw = open('./sample.mecab').read()
	words = raw.split();
	print len(words)
	text = nltk.Text(words)
	gen = text.generate(300)
	print gen

***ディレクトリ下の*.datファイルを読み込み、その中からtweetを抽出する。(筆跡:Ashihara) [#s4de06db]
--事前処理として.dat内の制御文字を削除する必要がある。
---コマンド:find . -name "*.dat" | xargs sed -i "s/^M//g"
---^Mは[Ctrl]+[v] + [Ctrl] + [M]で入力する。直接入力してはいけない。
---他の制御文字が含まれている場合もある。適宜除去する必要がある。
--tweetの抽出
---データは生データを読み込む。それをsplit()でリストにする。
---splitされたリストの要素中に'2010'の要素が必ず一つのtweetに存在し、その後はtweet内容となる。
---これを利用し、index関数で'2010'が存在する箇所の添字を取得、それ以降の要素を全て結合しtweetとする。
---一つのtweetに対し一つずつ改行しつつファイルに書き込む。tweetList.txtというファイルが生成される。
---このtweetList.txtをmecabにかける。今回はコマンドラインから直接実行した。
---この処理は制御文字を削除しない限り、失敗する。以下ソースコード。
---出力が完全ではないかもしれません。

    #vim fileencoding:utf-8 
    import commands
    import codecs
    list = commands.getoutput('ls *.dat')
    fileList = list.split("\n")
    datList = []
    for file in fileList:
            for dat in codecs.open(file,'r','utf-8'):
                    datList.append(dat.encode('utf-8'))
    tweetList = []
    swaplist = []
    tw = str()
    for dats in datList:
            swaplist = dats.split()
            index = swaplist.index('2010')#2010以下がtweet
            tw = ""
            for tweet in swaplist[index + 1:]:
                    tw += tweet
            tweetList.append(tw)
    f = open('tweetList.txt', 'w')
    for tweet in tweetList:
            f.write(tweet+'\n')
    f.close()