Exemplo n.º 1
0
def getHtmlContent(text, docid):
    import wakachi
    aaa = wakachi.parseLine(text, '<br />')
    html = ''
    for lid, a in enumerate(aaa):
        if lid: html += '<br />'
        for wid, word in enumerate(a):
            template = '<span id="word' + str(docid) + '-' + str(lid) + '-' + str(wid) + '" class="posid' + str(word.posid) + '" title="' + word.pos(detail=True) + '">%s</span>'
            html += template % unicode(word)
    return html
Exemplo n.º 2
0
def toDocForm(prods, maxReview=10):
    import wakachi
    ret = []
    for prod in prods:
        reviews = prod.getReviews(max=maxReview, htmlStyle=True)
        ret.append([])
        for review in reviews:
            morphslist = wakachi.parseLine(review, '<br />')
            ret[-1].append([])
            for morphs in morphslist:
                ret[-1][-1].append([Word(m.surface,m.original(),m.posid) for m in morphs])
    return ret
Exemplo n.º 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
Exemplo n.º 4
0
def getPhrase(text, docid, cand = Candidates()):
    if type(text) is types.StringTypes: text = wakachi.parseLine(text, '<br />')
    for lid, morphs in enumerate(text):
        cand.check(morphs, (docid, lid))
    return dict(cand.nounps), dict(cand.adjps)