Topic: e621 tagging quality rating system

Posted under e621 Tools and Applications

a worthless "utility" to score users based on how they tag posts

quick summary of what it does:
- get a user's post version history
- create a score for each post edited using the applied tags' values, or "weights", as points, which depend on specificty on the booru
- if the user's tags are affected by another/if the user is the op and the tags are changed by another, points are deducted
- all scores for posts are reduced down to one number to present a user's performance

the process can take a while varying on how many posts were edited (almost half an hour per 500 posts)

download (local web app, runs on modern browsers)
homepage and more details

some shit is unbalanced such as the tag weights and the limited amounts there are, resulting in weight estimation and ways of creating scores, so suggestions can help

Updated

"e621 tagging quality rating system" said:
results for Hexen:
424.3
"outstanding"

I feel validated.

Is the .bat file necessary? I don't run Windows but it looks like I should be able to manually create the configuration file

I have a feeling this isn't going to work well with my quantity of tag edits anyway

edit: answer is yes, created it by myself. not really sure what the point of the bat file really is. Now to see if it works.

Updated

hexen said:
Perhaps it can profile last N posts for very active taggers?

It stopped gathering post IDs at 9920, which is roughly just before the tag history page breaks. In the past 2 hours I've only done 400/9920 because it's occasionally giving an error dialog that I need to close for it to continue running.

unkown1832_11a0 said:
- if the user's tags are affected by another/if the user is the op and the tags are changed by another, points are deducted

There's a distinct bias against old edits if you simply do that. The tag system has changed over the years. It should be possible to check aliases and the current state of the post and give credit for correctly tagging a tag that was formally replaced via aliasing. For a concrete example, +gay on a post that is currently tagged male/male should be counted as a correct application of the male/male tag. There is also There would still be an age bias due to things like tags being split into more specific meanings or manual systematic replacements, but those would require a lot more work to address.

snowy said:
There's a distinct bias against old edits if you simply do that. The tag system has changed over the years. It should be possible to check aliases and the current state of the post and give credit for correctly tagging a tag that was formally replaced via aliasing. For a concrete example, +gay on a post that is currently tagged male/male should be counted as a correct application of the male/male tag. There is also There would still be an age bias due to things like tags being split into more specific meanings or manual systematic replacements, but those would require a lot more work to address.

didnt know tags that were updated still show their old counterparts in old versions
i was also wondering how tags would have be to added automatically when an implication is made
ill look into that
originally there was an alias checker left in but it took up network shit
it was taken out because it was scanning antecedent names rather than just consequent names, at least for what i tested

unkown1832_11a0 said:
the process can take a while varying on how many posts were edited (almost half an hour per 500 posts)

currently at "generating scores (25/6449)" after starting it 6-ish hours ago

this may take a while

I didn't realize I was the antithesis of a good tagger. I guess it sort of makes sense since I've only tagged about 20 posts, and the rest is undoing vandalism?

Going to have to up my game.

I was expecting a not super high score with it being based on how specific tags are, given that the tag project I've contributed the second most to is just leg counts, which is pretty far from unique.

Not quite sure what I did to deserve a 28.4 though, guess I should start tagging more individual posts, and focus less on tagging projects :P

Well, this is interesting. And absolutely horrific. And should definitely be optimized.

1. Line 46: https://i.imgur.com/8GCZPvI.png
There are not enough words in the English language to describe how much I hate this.

You should definitely be specifying the user agent. If you can't do it in the header, you should do it like this: https://e621.net/posts.json?tags=whatever&_client=your_user_agent.
Secondly, you definitely need to throttle your requests more. At most, send a request every 500ms. It's a miracle that this thing doesn't fail more often, 15ms is not enough.
If you are sending many requests over a long period of time, I would space them 1000ms apart.

Moreover, you should set up handing for error codes that the request returns.
421 and 503 specifically, but other 400 and 500 codes as well.

2. Also line 46-ish.

uu = new URL(u).href.replaceAll(";","%3B") // wtf

Yeah, I agree, wtf. Have you not heard of encoding URI parameters?
Like this:

const link = `https://e621.net/tags.json?search[name_matches]=${encodeURIComponent("mammal")}&limit=320`;

2. Line 235:

whatisthis = JSON.parse(net("https://e621.net/tags.json?search%5Bname_matches%5D="+tag+keyq))

... you know that you can batch those, right? Here: https://e621.net/tags.json?search[name]=horse,solo,mammal
You can look up 100 tags at a time.

3.Line 282

whatisthis2 = JSON.parse(net("https://e621.net/wiki_pages.json?search%5Btitle%5D="+tag+keyq))
if (whatisthis2.length>0)
{
whatisthis2 = whatisthis2[0]
if (whatisthis2.body.startsWith("This tag applies to images made in the year "+tag))

Not all year tag have wiki pages, and not all such wiki pages would follow that format.
Surely, a meta-category tag that consists of 4 numbers is most likely a year tag, right?

4. Line 377: Would it kill you to name variables properly? I'm having trouble following this.

//another user reverting other's changes on op's tags might not give points back
//figure that shit out

You can simplify this whole thing a lot.
First, "flatten" the user's changes for that post: get a complete list of tags that they added and removed across all of their changes to the post.
Then, get the newest change for the post and check if the changes the user made are still present. Award points for those that are, subtract for those that are not.

Generally speaking, this needs to be optimized. A lot.

5. Line 526

raw = net("https://e621.net/post_versions.json?search%5Bpost_id%5D="+ehids[i]+"&limit=320"+keyq)

Again, you can batch these: https://e621.net/post_versions.json?search[post_id]=12345,12346,12347&limit=320
Queue them up, 100 posts at a time, and iterate over the pages. It would definitely improve lookup times.

Updated

Only 135.6 "standard"! Outrageous!

Nyways. It would be good to have (at least additionally) a score that was more forgiving about the past. If a person has become a higher quality tagger throughout years, this should show.

Also, the old taggings are very cruel, as there has been more time for other users to come in and change the tags. With the amount of postings constantly increasing, the likelyhood of post edits today to be revised by others is less likely than for a post edit done 7 years ago.

How does https://e621.net/post_versions?search%5Bpost_id%5D=1654955 affect my score?
1. I mistyped two_tone_hair and fixed that in my following update.
2. I later noticed that one character shouldn't be tagged, unlike it originally was, and further updated to remove this (which had in my initial update already been automatically changed by an alias).
Has noticing my mistake and correcting it actually damaged my score, unlike if I had just quietly sneaked away like a weasel and trusted that no-one will come within the following 3 years to find and correct it? (I did love that thick bright green view of my original post update, and felt bad for having to do those two patches on top of it.)

(In general, I would love to have the option to "amend" one's recent update in e621.)

urielfrys said:
Only 135.6 "standard"! Outrageous!

Nyways. It would be good to have (at least additionally) a score that was more forgiving about the past. If a person has become a higher quality tagger throughout years, this should show.

Also, the old taggings are very cruel, as there has been more time for other users to come in and change the tags. With the amount of postings constantly increasing, the likelyhood of post edits today to be revised by others is less likely than for a post edit done 7 years ago.

How does https://e621.net/post_versions?search%5Bpost_id%5D=1654955 affect my score?
1. I mistyped two_tone_hair and fixed that in my following update.
2. I later noticed that one character shouldn't be tagged, unlike it originally was, and further updated to remove this (which had in my initial update already been automatically changed by an alias).
Has noticing my mistake and correcting it actually damaged my score, unlike if I had just quietly sneaked away like a weasel and trusted that no-one will come within the following 3 years to find and correct it? (I did love that thick bright green view of my original post update, and felt bad for having to do those two patches on top of it.)

(In general, I would love to have the option to "amend" one's recent update in e621.)

score is averaged based on scores for individual posts, so its possible a lot of new good edits over a few old bad ones will bring the score up i might be an example of this
score can be deducted for obscure tags (ones used 0-250 times, if weight is estimated), and deducted if your added tags are effected
removing tags can be accounted for adding to score, unless those are reverted by someone else
in your post example (90.7 pts), jake could technically be tagged just for the fact he appears in the image, regardless of how he does, and i see you included two uncommon tags which can lower your score on the post
fixing two_tone_hair the way you did should deduct a few points for the typo being recognized as an uncommon tag, and then removing it and adding the right tag should add points
i see a big portion of your scores on posts are 3-20 points, which is what mightve made up the score of 135 (dont know if ill have to change the final score method at that point), but assuming most of those low scores are minor edits to posts

Updated

Heads up, the "homepage and more details" link in the first message is not working. Following it gives a http 404, NoSuchKey The specified key does not exist.

Interesting project. I've never seen such angry code in my life

splineclaw said:
Heads up, the "homepage and more details" link in the first message is not working. Following it gives a http 404, NoSuchKey The specified key does not exist.

oops, fixed, dont know if i accidentally deleted the page or if pomf's fucking with me

Interesting project. I've never seen such angry code in my life

lmao

I keep trying this but I get a "motherfucker" error code and the results are NaN. Now I have a very limited understanding of code (elementary level tbh) so I'm probably doing something wrong

Edit: Figured it out, it's processing

Updated

  • 1