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
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
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
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)