Exemple #1
0
def get_similar_post_comment():
    post_ids = []
    for post in Post.where():
        post_ids.append(post.id)
        idf.append(post.id, post.content.encode('U8'))
    length = len(post_ids)
    similar = np.zeros(length**2, np.float)
    similar = similar.reshape(length, length)
    
    cache = {}
    for numi, i in enumerate(post_ids):
        for numj, j in enumerate(post_ids):
            key = '%s-%s'%(i, j)
            if key not in cache and '%s-%s'%(j, i) not in cache:
                cache[key] = idf.similar(i, j)
            else: 
                key = '%s-%s'%(j, i)
            similar[numi][numj] = cache[key]


    comments = Comment.where().order_by('updated').col_list(col='id,content')
    com_length = len(comments)
    comment_rela = np.zeros(com_length*length, np.float)
    comment_rela = comment_rela.reshape(com_length, length)
    for num, (i, j) in enumerate(comments):
        idf.append(i, j.encode('U8'))
        for x, p in enumerate(post_ids):
            comment_rela[num][x] = idf.similar(i, p)
    return post_ids, similar, [i[0] for i in comments], comment_rela
def comment_by_group_user(group_id, user_id):
    author_id = get_author_id_by_user_id(user_id)
    users = get_user_by_group(group_id)
    comments = []
    for user in users:
        for post in Post.where(user_id=user):
            for comment in Comment.where(post_id=post.id):
                if comment.author_id == author_id:
                    comments.append(comment)
    return comments
def posts_by_users(users):
    for user in users:
        for post in Post.where(user_id=user):
            yield post