Repository
https://github.com/steemit/steem
Introduction
There are many communities on the Steem network that use a different language than English. For example, I am actively involved in the #polish community using the @jacekw account. The purpose of the following analysis is to find the most active communities of this type, compare them and observe how they have changed over time.
Outline
- Scope of the analysis
- Tools
- Verification of initial data
- Different tags for the same languages
- Posts
- Payouts
- Average payout per post
- Authors
- Tags with prefixes
- Conclusions
- Proof of work
Scope of the analysis
The data has been downloaded from the SteemSQL database (tableComments
) and refer to the first 6 months of 2018. The following script was used to download posts from the given tag.
SELECT url, total_payout_value, active_votes, json_metadata, created, body_language
FROM Comments (NOLOCK) c
WHERE depth = 0 AND
(CONTAINS(json_metadata, 'spanish') AND json_metadata LIKE '%"spanish"%') AND
YEAR(created) = 2018 AND
MONTH(created) <= 6
Tools
Verification of initial data
Potential language community tags have been manually selected based on 1000 most popular tags (from a 14 day time period).
lang_tags = [
'indonesia', 'spanish', 'aceh', 'kr', 'cervantes', 'cn', 'deutsch', 'castellano', 'venezuela',
'tr', 'polish', 'fr', 'myanmar', 'japanese', 'ru', 'pt', 'thai', 'ua',
'morocco', 'arab', 'pilipinas', 'steemit-austria', 'mexico', 'vn', 'rusteemteam', 'cesky', 'bangladesh',
'russian', 'hindi', 'br', 'arabic', 'teamserbia', 'steemromania', 'teamukraine', 'filipino', 'serbia'
]
There are different conventions here:
- country name e.g. #indonesia, #venezuela
- name of the language used, in English e.g. #spanish, #polish
- name of the language used, in the mother tongue e.g. #cervantes, #deutsch
- two-letter code e.g. #kr, #cn
- other name e.g. #steemit-austria, #rusteemteam
In my opinion, the name of the country is not the best choice for the language community tag, because this is the first tag that comes to mind if we want to add a post regarding given country in English.
The tags have been selected manually, so additional verification is needed, as some of them may not be relevant to language communities at all.
For this purpose, I used the column body_language
from the tableComments
. Below you will find charts showing the share of individual languages in given tags.
We can see that some tags are dominated by English. Such tags will be omitted from further analysis. Since we are not sure to what extent the body_language
can be trusted, we will set the threshold quite low, at 30%.
. | Tag | Ratio | Lang |
---|---|---|---|
1 | castellano | 94.1 | es |
2 | br | 92.5 | pt |
3 | cervantes | 89.4 | es |
4 | kr | 87.4 | ko |
5 | thai | 87.3 | th |
6 | spanish | 87.0 | es |
7 | teamukraine | 85.5 | uk |
8 | venezuela | 84.7 | es |
9 | pt | 81.0 | pt |
10 | polish | 79.2 | pl |
11 | myanmar | 77.4 | my |
12 | tr | 68.7 | tr |
13 | japanese | 68.4 | ja |
14 | deutsch | 67.9 | de |
15 | fr | 65.1 | fr |
16 | steemit-austria | 63.1 | de |
17 | rusteemteam | 61.2 | ru |
18 | cesky | 59.7 | cs |
19 | indonesia | 53.2 | id |
20 | cn | 51.0 | zh |
21 | arabic | 50.6 | ar |
22 | ru | 48.3 | ru |
23 | mexico | 47.4 | es |
24 | aceh | 46.2 | id |
25 | morocco | 45.6 | ar |
26 | arab | 41.2 | ar |
27 | ua | 34.6 | uk |
28 | pilipinas | 33.1 | tl |
29 | russian | 32.9 | ru |
30 | hindi | 30.1 | hi |
- | - | - | - |
31 | filipino | 19.7 | tl |
32 | vn | 17.8 | vi |
33 | serbia | 15.9 | sr |
34 | bangladesh | 15.4 | bn |
35 | teamserbia | 15.0 | sr |
36 | steemromania | 13.9 | ro |
The last 6 tags will be deleted.
Different tags for the same languages
It also appears that some communities use the same language as others. Let's see what the relations are between them, whether they have a large common part.
es : castellano, cervantes, spanish, venezuela, mexico
pt : br, pt
uk : teamukraine, ua
de : deutsch, steemit-austria
ru : rusteemteam, ru, russian
id : indonesia, aceh
ar : arabic, morocco, arab
def plot_venn(tags):
plt.figure(figsize=(6, 6))
fn = venn2 if len(tags) == 2 else venn3
fn([tag_urls_dict[tag] for tag in tags], map(lambda t: '#' + t, tags))
plt.show()
for lang_code, tags in same_lang_dict.items():
if 2 <= len(tags) <= 3:
plot_venn(tags)
plot_venn(['spanish', 'cervantes', 'castellano'])
plot_venn(['spanish', 'mexico', 'venezuela'])
pt : #br, #pt
uk : #teamukraine, #ua
de : #deutsch, #steemit-austria
ru : #rusteemteam, #ru, #russian
id : #indonesia, #aceh
ar : #arabic, #morocco, #arab
es: #spanish, #cervantes, #castellano
es : #spanish, #mexico, #venezuela
The #teamukraine tag is practically completely contained in #ua, so it is going to be omitted from further analysis, especially that both of them concern the Ukrainian community. For #pt and #br the situation is similar, but #br seems to be a separate (Brazilian) community.
Posts
Let's see how many posts were added in each tag.
. | Tag | Posts |
---|---|---|
1 | indonesia | 300522 |
2 | spanish | 282685 |
3 | aceh | 258482 |
4 | kr | 242179 |
5 | cervantes | 158545 |
6 | cn | 74577 |
7 | deutsch | 71291 |
8 | castellano | 61437 |
9 | venezuela | 58809 |
10 | tr | 57838 |
11 | polish | 29744 |
12 | myanmar | 20385 |
13 | fr | 20350 |
14 | japanese | 19592 |
15 | ru | 18445 |
16 | pt | 16875 |
17 | thai | 16681 |
18 | ua | 14414 |
19 | morocco | 8851 |
20 | arab | 6444 |
21 | pilipinas | 6389 |
22 | steemit-austria | 6386 |
23 | mexico | 4643 |
24 | rusteemteam | 4615 |
25 | cesky | 3956 |
26 | russian | 2432 |
27 | teamukraine | 2133 |
28 | hindi | 1990 |
29 | br | 1326 |
30 | arabic | 1240 |
We can see a great diversity here, communities from leading places have several hundred times more posts than those from the end. The Spanish language tags are top of the list, which may indicate that Steem is well known in South America.
Author rewards
However, the number of posts is an insufficient indicator, because it is very easy to spam a given tag with low value posts, and this will not indicate the popularity of a given tag at all. Therefore, let's also look at the sum of rewards in individual tags.
. | Tag | Author rewards |
---|---|---|
1 | kr | 342070 |
2 | spanish | 166190 |
3 | cn | 158431 |
4 | cervantes | 105259 |
5 | deutsch | 86543 |
6 | indonesia | 81085 |
7 | tr | 63973 |
8 | aceh | 42160 |
9 | fr | 36596 |
10 | castellano | 35293 |
11 | japanese | 26803 |
12 | pt | 22386 |
13 | myanmar | 19214 |
14 | polish | 19053 |
15 | ru | 18731 |
16 | venezuela | 17815 |
17 | steemit-austria | 13182 |
18 | ua | 12459 |
19 | thai | 12041 |
20 | morocco | 9888 |
21 | mexico | 8887 |
22 | arab | 6835 |
23 | br | 4579 |
24 | cesky | 4246 |
25 | pilipinas | 3428 |
26 | rusteemteam | 2364 |
27 | hindi | 1325 |
28 | russian | 718 |
29 | teamukraine | 519 |
30 | arabic | 414 |
The table looks quite similar to the previous one. It is also worth to look at the average rewards in a given tag. This will allow us to find out how rich the community is.
Average payout per post
. | Tag | Average author rewards per post |
---|---|---|
1 | br | 3.453 |
2 | cn | 2.124 |
3 | steemit-austria | 2.064 |
4 | mexico | 1.914 |
5 | fr | 1.798 |
6 | kr | 1.412 |
7 | japanese | 1.368 |
8 | pt | 1.327 |
9 | deutsch | 1.214 |
10 | morocco | 1.117 |
11 | tr | 1.106 |
12 | cesky | 1.073 |
13 | arab | 1.061 |
14 | ru | 1.016 |
15 | myanmar | 0.943 |
16 | ua | 0.864 |
17 | thai | 0.722 |
18 | hindi | 0.666 |
19 | cervantes | 0.664 |
20 | polish | 0.641 |
21 | spanish | 0.588 |
22 | castellano | 0.574 |
23 | pilipinas | 0.537 |
24 | rusteemteam | 0.512 |
25 | arabic | 0.334 |
26 | venezuela | 0.303 |
27 | russian | 0.295 |
28 | indonesia | 0.270 |
29 | teamukraine | 0.243 |
30 | aceh | 0.163 |
We can see that the differences are significant. It should also be taken into account, however, that tags with a small number of posts may not have reliable results.
Authors
We can look at the popularity of a given tag from a different angle - looking at the number of authors, not posts. This indicator seems even better, because it omits situations where a given user spams a very large number of posts.
. | Tag | Authors |
---|---|---|
1 | spanish | 48312 |
2 | indonesia | 42307 |
3 | aceh | 40846 |
4 | cervantes | 31520 |
5 | kr | 25622 |
6 | venezuela | 18329 |
7 | castellano | 15121 |
8 | cn | 9226 |
9 | deutsch | 9109 |
10 | tr | 6931 |
11 | polish | 4785 |
12 | japanese | 3118 |
13 | fr | 2976 |
14 | myanmar | 2851 |
15 | ru | 2083 |
16 | thai | 2060 |
17 | mexico | 1998 |
18 | pt | 1829 |
19 | arab | 1058 |
20 | morocco | 1039 |
21 | steemit-austria | 880 |
22 | ua | 854 |
23 | pilipinas | 846 |
24 | russian | 796 |
25 | hindi | 638 |
26 | rusteemteam | 458 |
27 | arabic | 441 |
28 | cesky | 369 |
29 | br | 291 |
30 | teamukraine | 81 |
Now we see how small some communities are! And if a community does not exceed a certain threshold, its members may prefer to post in English, which makes the growth of such a community more difficult.
Tags with prefixes
A common problem in language communities (I say this as someone who is actively involved in the #polish community) is how to use other tags. If I make a post in Polish and tag it: #polish #bitcoin #cryptocurrency, these last two tags will make the post reach also English-speaking audiences, so it is not a good solution.
Another idea seems to be to use tags in the mother tongue, but then you may find tags that function as a word in both languages, e.g. #film. This shows that it is not a good solution either. Therefore, the Polish community decided (based on the convention adopted by the Korean community) on the convention of tags with the prefix pl-
. This makes it possible to separate posts in Polish from the English-speaking audience.
Let us therefore look at which other communities use such a convention. The table below shows how many unique tags are with the specified prefix.
. | Prefix | Count |
---|---|---|
1 | kr | 2302 |
2 | pl | 815 |
3 | cn | 221 |
4 | ru | 168 |
5 | jp | 64 |
6 | de | 31 |
7 | tr | 24 |
8 | pt | 12 |
9 | fr | 8 |
10 | ua | 5 |
11 | es | 5 |
We can see that the Korean community has the largest number of such unique tags, followed by the Polish and Chinese communities. As far as the Polish community is concerned we can see a tree of these tags on the website: https://steemweb.pl/categories (by @rafalski)
Let's see what are the most popular tags of this type.
. | Prefix-tag | Count |
---|---|---|
1 | #kr-newbie | 83291 |
2 | #kr-life | 23164 |
3 | #kr-writing | 19077 |
4 | #kr-event | 13164 |
5 | #cn-reader | 13133 |
6 | #kr-daily | 12263 |
7 | #kr-art | 8748 |
8 | #kr-travel | 7077 |
9 | #kr-food | 6037 |
10 | #pl-artykuly | 5987 |
11 | #kr-pen | 5678 |
12 | #kr-coin | 5494 |
13 | #kr-join | 5484 |
14 | #kr-news | 5011 |
15 | #jp-newbie | 4171 |
16 | #kr-overseas | 4055 |
17 | #kr-diary | 3812 |
18 | #kr-gazua | 3752 |
19 | #kr-series | 2980 |
20 | #kr-funfun | 2738 |
21 | #kr-dev | 2665 |
22 | #kr-book | 2601 |
23 | #kr-youth | 2563 |
24 | #kr-story | 2355 |
25 | #cn-malaysia | 1957 |
26 | #kr-economy | 1777 |
27 | #kr-hobby | 1708 |
28 | #kr-steemit | 1706 |
29 | #kr-game | 1693 |
30 | #pl-fotografia | 1612 |
As we can see, most of the tags are Korean.
Conclusions
We have managed to find 30 language communities that do not use English. There are probably more, but the process of finding them is not a simple one, because of the different tagging conventions that have been adopted. All these communities are probably waiting for the appearance of the functionality Communities, because this will make it easier for them to function.
It also appears that the size of language communities is not always correlated with the number of people using a given language / country size. An example of this is tag #kr, which is high in all lists and has a relatively small population compared to e.g. the Chinese community.
Some communities use almost only their mother tongue, while others have chosen to use English (e.g. #serbia). It is also worth remembering that the Russian community decided at some point to move to its own blockchain: https://golos.io, but on the other hand, this did not make it completely disappear from the Steem network. Interestingly, there are also quite a big countries that do not have a language community.
There are many other issues that could be explored here, such as how the community formation process looks like, who the pioneers are, who the leaders are (if any).
Polish breaks overall trend
#polish is the bestest
I have changed the way of calculating rewards so that the result is independent of the STEEM price and now this plot also looks interesting :)
#polish to the moon!
.
Thanks for valuable feedback! I have just changed the tables and charts so that the values are now independent of the STEEM price (using the
author_rewards
column). Now it's looks much better :)It is hard to analyze "payouts through time", because in all communities those payouts are down... but mostly because of drop in STEEM price.
If you would use STEEM as a unit for this chart... then we could compare which national community is growing and which don't
I must admit that I was wondering how to present this. And converting to STEEM seems like a good idea, so I'll add it.
Done :)
I've just found this your post and was pleasantly surprised to see my native Ukrainian community mentioned.
You couldn't know this but there are several additional tags used in our community: #ukraine and #ua-by ( because we have a few members from Belorussia in our Discord-community). I think this last tag is even more popular than #ua.
just info, in case if you decide to make another report in the future;-)
Good work, btw. I'm a bit late here, so I voted your most recent post.
Thanks for the feedback!
Finding these tags was not easy, so I realize I could have missed some of them. And frankly, I just hoped that maybe there would be supplementary comments like yours :)
Congratulations @jacekw.dev! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :
You published your First Post
You got a First Vote
Award for the number of upvotes received
Award for the number of upvotes
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:
SteemitBoard World Cup Contest - The results, the winners and the prizes
STOP
Hey @jacekw.dev
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
I would say this analysis reveals what's pretty obvious.
It's all about how many people speak your language.
If the audience you can hit with your native language is big enough, you will more likely prefer native language to comment & blog.
Congratulations @jacekw.dev! 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
Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - The results, the winners and the prizes
Congratulations @jacekw.dev! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
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 World Cup Contest - The results, the winners and the prizes
Congratulations @jacekw.dev! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :
You got your First payout
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
fantastic analysis - sorry I missed it when you posted it
Congratulations @jacekw.dev! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of comments
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