Steemblr development update 09 - Trending Page Algorithm

in #utopian-io6 years ago (edited)

Steemblr is open source microblogging platform powered by steem blockchain . It allows user to post and explore content which is smaller than a traditional blog.

You can check developer version here: https://steemblr.com

Repository

https://github.com/snwolak/steemblr

https://github.com/snwolak/steemblr_ml

https://github.com/snwolak/steemblr_api

https://github.com/snwolak/esync

New Features

Trending page algorithm

To decide which post should be defined as trending, I wrote script which rates post accordingly to this parameters:

- number of votes(net_votes),

- number of comments,

- value of the post.

Post will be defined as trending when above 80% rating is reached, if post reaches trending category its popularity state won't be overwritten.

To made this work I used brain.js library, which allowed for simple and effective usage of machine learning.

The data script uses can be find here: https://github.com/snwolak/steemblr_ml/blob/master/dataset.json, it comes from various tags on steemit, in the future I would like to rate posts only from data which comes from posts made on steemblr. I also made simple interface for choosing and exporting data to json.

https://github.com/snwolak/steemblr_ml/commit/2e863fb15da62d74b5f0131313b4cb58b550d6bc

https://github.com/snwolak/steemblr_ml/commit/584b602ba108ee5ff49a01ba16afe419f446daec

https://github.com/snwolak/steemblr_ml/commit/c27f90d5a4a6f59c467e99323a3c0050e76e4e9e

https://github.com/snwolak/steemblr_ml/commit/28db4a81aea2b4e481371982d98a952e755df134

https://github.com/snwolak/steemblr_ml/commit/76e1647ead0da10ea3b4df032030fd0b38d0a6d3

https://github.com/snwolak/steemblr_ml/commit/296cc7b3144a1951497a72e566560acda9e3b1a5

Implementation of the trending feature

To ml script to be accesible I made express server with one route for rating, when post is synced with database esync is caling ML script to rate the post and then sends the data to cloud function. For the client side of things there was added now redux action to handle trending post, for now just in trending category, rest of the categories are showing new posts.

https://github.com/snwolak/esync/commit/585de4de556279b7309efbfbaff98933e204a9c0

https://github.com/snwolak/steemblr/commit/35c4aff53c1f0ae7e3f63c50e4255597a68b02f1

https://github.com/snwolak/steemblr_api/commit/02d16bc67b5e2b1a6f5907ae7d1b1baed6f7000a

https://github.com/snwolak/steemblr_ml/blob/28db4a81aea2b4e481371982d98a952e755df134/index.js

https://github.com/snwolak/steemblr_ml/blob/296cc7b3144a1951497a72e566560acda9e3b1a5/index.js

Github Account

https://github.com/snwolak

Sort:  

Thank you for your contribution, a lot of work has been gone into this contribution. It's nice that you have implemented ML for finding trending posts, but the votes can be easily bought, so you can keep that as a minimum requirement.

Commenting on the code would be better.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

It was hard to decide which content should be "trending", users probably wouldn't enjoy some kind of heavier analitics of their behaviour, and tbh I don't see investing money in post on my app as bad thing.
Yeah I'm always forgetting about commenting, sorry! :)

Thank you for your review, @codingdefined!

So far this week you've reviewed 8 contributions. Keep up the good work!

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by snwolak from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Congratulations @snwolak! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:
SteemFest³ - SteemitBoard support the Travel Reimbursement Fund.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Hi @snwolak!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @snwolak!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations @snwolak! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the total payout received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

SteemitBoard - Witness Update

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.23
TRX 0.25
JST 0.038
BTC 95957.12
ETH 3307.71
USDT 1.00
SBD 3.34