Beispiel #1
0
def createRank(minReviewCount=0, minProductCount=0, onlyValidCategory=False):
    checkMkdir(RANK_DIR)
    for category, products in iterAllProducts(minReviewCount):
        ranking = []
        if len(products) < minProductCount: continue
        for prod in products:
            prodCategory = prod['CategoryName']
            if onlyValidCategory and category != prodCategory.split('>')[-1]: break
            ranking.append(unicode(prod)+'\t'+prodCategory)
        else:
            fout = codecs.open(RANK_DIR+category, 'w', 'utf-8')
            print >>fout, str(len(products)) + '\n' + '\n'.join(ranking)
            fout.close()
Beispiel #2
0
def main():
    nm = NodeMaker()
    cnt = 0
    for category, products in iterAllProducts():
        cnt += 1
        if cnt < 2: continue
        print >>sys.stderr, category
        doProducts(products, nm)
        if cnt == 3: break
    #nm.graph.pack(); print nm.graph
    rank = pagerank(nm.graph)
    result = {}
    for id, pr in enumerate(rank):
        word = nm.ser.decode(id)
        result[word] = pr
    for word, pr in sorted(result.iteritems(), reverse=True):
        print u'(%s,%d) %.3f' % (word[1], word[2], (pr*1000))
Beispiel #3
0
def doAll(maxReview=10):
    cand = Candidates()
    selected = [u'Macノート']#,u'MP3プレーヤー',u'PDA',u'インク',u'カメラ',u'キーボード',u'コンタクトレンズ 1day',u'セキュリティソフト',u'チャイルドシート',u'テレビ',u'テレビリモコン',u'トースター',u'ドライバー',u'パソコン',u'パソコンゲーム',u'ヒーター・ストーブ',u'プリンタ',u'マッサージ器',u'ミシン',u'レンズ',u'冷蔵庫・冷凍庫',u'動画編集ソフト',u'地デジアンテナ',u'女性用シェーバー',u'掃除機',u'洗濯機',u'生ごみ処理機',u'自転車',u'電子ピアノ',u'香水']
    words = []
    for cid, (category, prods) in enumerate(iterAllProducts(minReviewCount=50, categoryFilter=selected)):
        #print category
        words.append([])
        for pid, prod in enumerate(prods):
            reviews = prod.getReviews(max=maxReview, htmlStyle=True)
            words[-1].append([])
            for rid, review in enumerate(reviews):
                morphslist = wakachi.parseLine(review, '<br />')
                words[-1][-1].append(morphslist)
                getPhrase(morphslist, (cid,pid,rid), cand)
    for p, bgn, end in cand.iterAllInternal(spanMax=1, spanMin=0):
        cid, pid, rid, lid = p[0][0], p[0][1], p[0][2], p[1]
        print cid, pid, rid, lid, bgn, end,
        for wid in xrange(bgn[0],end[1]+1):
            print unicode(words[cid][pid][rid][lid][wid]),
            if wid == bgn[1]: print '[',
            if wid ==end[0]-1: print ']',
        print
Beispiel #4
0
def doAll(html=False):
    selected = [u'Macノート',u'MP3プレーヤー',u'PDA',u'インク',u'カメラ',u'キーボード',u'コンタクトレンズ 1day',u'セキュリティソフト',u'チャイルドシート',u'テレビ',u'テレビリモコン',u'トースター',u'ドライバー',u'パソコン',u'パソコンゲーム',u'ヒーター・ストーブ',u'プリンタ',u'マッサージ器',u'ミシン',u'レンズ',u'冷蔵庫・冷凍庫',u'動画編集ソフト',u'地デジアンテナ',u'女性用シェーバー',u'掃除機',u'洗濯機',u'生ごみ処理機',u'自転車',u'電子ピアノ',u'香水']
    for category, prods in iterAllProducts(minReviewCount=30, categoryFilter=selected):
        if html: products2html(prods, category, 10)
        else: products2text(prods, category)
Beispiel #5
0
def ngram(n):
    nc = NgramCounter()
    for category, products in iterAllProducts():
        print >>sys.stderr, category
        nc.ngram(products, n)
    return dict(nc.cnt)
Beispiel #6
0
def df():
    wc = WordCounter()
    for category, products in iterAllProducts():
        print >>sys.stderr, category
        wc.regist(products)
    return dict(wc.cnt)