読者です 読者をやめる 読者になる 読者になる

When it’s ready.

出来るまで出来ない

GAEのDatastoreが順調に肥大中

約4日前(98時間前)は、2.6GBだったのが

現在

2.84GBになっている。

60MB/Dayのペースで増えて行ってる。2GB弱/monthか、結構良いペースだな。
たぶん、データの保存の仕方でおかしいことをしている気がするが、直すのがめんどくさい。
現在シンプルなNgram実装を作っているので、もう少しちゃんと動くようになったら、そっちに替えてみようと思う。

GAE上でのNgramを使った日本語対応全文検索

http://a2c-dev.appspot.com/ngram ここで適当な文字をPostするなりして、サーチするとちゃんと検索出来てると思う。

#!/usr/bin/env python
#coding:utf8
# ftsnfj 0.1 : full text search ngram for japanese.
# (c) 2009 atusi
# ftsn is freely distributable under the terms of a new BSD licence.

class NgramTokenizer:
  def __init__(self, feed_id, text):
    self.feed_id = feed_id
    self.text = text
    self.ngramArr = []
  
  def getText(self):
    return self.text

  def getFeedId(self):
    return self.feed_id

  def getNgramArr(self):
    return self.ngramArr

  def setNgramArr(self, sp=2):
    for pos in range(len(self.text)-sp+1):
      self.ngramArr.append({
        'feed_id' : self.feed_id,
        'word_pos' : pos,
        'word_text' : self.text[pos:pos+sp]})

if __name__ == '__main__': 
  sample_text = u'今日の天気は晴れ'
  anaStr = NgramTokenizer(99, sample_text)
  anaStr.setNgramArr()
  resStr = anaStr.getNgramArr()
  print 'bigram---\n', resStr

こんな事をしている。変な感じだけど、動いているからいいか。
モデルに入れたり、呼んだりするところはSetsを使ってめちゃバケツリレーしてるけど、もっと簡単なやり方をできればなぁと思っている。週末のPython旅館で完成まで持って行きたい。