The setup should be written in the OP iircIn post 147, Random Nurse wrote:In post 146, Thestatusquo wrote:Its functional right now I believe.In post 144, Random Nurse wrote: Where are we at currently with this votecounter?
Is a practical version available to be used in future game?
Nice.
So say I set up a Normal game.
Where do I go to start implementing it, please?
I'm eager to get some games going with this.
Browser Extension Vote-Counter (early demo)
-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
In post 150, JacksonVirgo wrote:
The setup should be written in the OP iircIn post 147, Random Nurse wrote:In post 146, Thestatusquo wrote:
Its functional right now I believe.In post 144, Random Nurse wrote: Where are we at currently with this votecounter?
Is a practical version available to be used in future game?
Nice.
So say I set up a Normal game.
Where do I go to start implementing it, please?
I'm eager to get some games going with this.
WDYM?-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
I do think we should be working on a proper flagging system before delving into any more NLP, I do see the appeal in it though and we could implement it only be to be accessible for those that really want it (aka. explicitly having it as a feature flag). We could also do an inverse and just use NLP to create suggested aliases to be used in the configuration file if running it while generating the VC is too unpredictable.In post 148, yessiree wrote: For votes with ambiguous targets, I lean more towards flagging them to be checked manually rather than trying to parse the intended target using NLP. Reason one is that configuration (usernames, aliases and replacements) are needed for each game anyway, reason two is that if the string parsing algo is not 100% accurate, you dataset ends up with some incorrect data, and reason three - NLP is hard!
I imagine the process would be like
- configure basic settings (usernames, replacements, common aliases, etc) for games from which to collect data
- collect votes -> get a list of votes + a list of flagged votes
- go through the flagged votes one by one and add aliases as necessary
- repeat step 2 until you have no more flagged votes
Fancy talk is fun but I am going to just work on the flagging system. I like the way you wrote the process, I think a cool idea would be to offer a download for the configuration file with updated aliases. I also want to add cached config results so you don't have to upload over and over.-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
The process to install the extension is in post 0In post 151, Random Nurse wrote:In post 150, JacksonVirgo wrote:
The setup should be written in the OP iircIn post 147, Random Nurse wrote:In post 146, Thestatusquo wrote:
Its functional right now I believe.In post 144, Random Nurse wrote: Where are we at currently with this votecounter?
Is a practical version available to be used in future game?
Nice.
So say I set up a Normal game.
Where do I go to start implementing it, please?
I'm eager to get some games going with this.
WDYM?-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
If you still need help with it, let me know. Here, PMs or on Discord (my username is ._melancholic_.)-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
I actually also want the option to show vote history like Gypyx seems to do in her VCs. You can possibly also store the config file in the vc itself to scrape instead of needing a file. Unsure if that's a good ideaat all-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
Once my game gets rolling I'll get this installed.
Thanks JV.-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
No problems at all, it'd be cool to see it used more
-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
Do you have games that show it being used? I want to get a feel for how it operates, please.-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
I can record a clip of me using it from start to finish if you'd like? I assume Aureal uses it but I am not sure how much it's being used currentlyIn post 158, Random Nurse wrote:
Do you have games that show it being used? I want to get a feel for how it operates, please.-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
In post 159, JacksonVirgo wrote:
I can record a clip of me using it from start to finish if you'd like? I assume Aureal uses it but I am not sure how much it's being used currentlyIn post 158, Random Nurse wrote:
Do you have games that show it being used? I want to get a feel for how it operates, please.
I'd appreciate it.
Just want to see what it'll look like.
Does it post on every page-top?-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
It's not fully automatic, although I'm increasingly wanting to make something for that. Essentially you get a new button on the web-page which you can click and get a generated/formatted vote-count. It's a little more to that but that'd be shown in the video demo I'll record soon.In post 160, Random Nurse wrote:In post 159, JacksonVirgo wrote:
I can record a clip of me using it from start to finish if you'd like? I assume Aureal uses it but I am not sure how much it's being used currentlyIn post 158, Random Nurse wrote:
Do you have games that show it being used? I want to get a feel for how it operates, please.
I'd appreciate it.
Just want to see what it'll look like.
Does it post on every page-top?-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
Looking forward to it.-
-
Random Nurse He/HimMafia ScumHe/Him
- Mafia Scum
- Mafia Scum
- Posts: 2829
- Joined: April 29, 2023
- Pronoun: He/Him
Can Mafiascum just implement it site-wide as an option? That'd be awesome.-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
Bork said the future may have a way for people to add stuff to the site itself (check post 10) but for right now an extension is your second best option.In post 164, Random Nurse wrote: Can Mafiascum just implement it site-wide as an option? That'd be awesome.
What a magical day that would be though, being able to have a votecounter built into the site-
-
yessiree heMafia Scumhe
- Mafia Scum
- Mafia Scum
- Posts: 4390
- Joined: June 6, 2013
- Pronoun: he
Well actually I was thinking of working on a config editor to replace yaml config files altogether, but wasn't sure if that's the direction you wanted to go. Basically, it will be a UI that lets you edit configs and save/load them to/from local storage.In post 152, JacksonVirgo wrote: I also want to add cached config results so you don't have to upload over and over.-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
I wanted to do this much earlier but never got the motivation to actually get it to work so I scrapped it temporarilyIn post 166, yessiree wrote:
Well actually I was thinking of working on a config editor to replace yaml config files altogether, but wasn't sure if that's the direction you wanted to go. Basically, it will be a UI that lets you edit configs and save/load them to/from local storage.In post 152, JacksonVirgo wrote: I also want to add cached config results so you don't have to upload over and over.-
-
yessiree heMafia Scumhe
- Mafia Scum
- Mafia Scum
- Posts: 4390
- Joined: June 6, 2013
- Pronoun: he
probably because you were using jqueryIn post 167, JacksonVirgo wrote:
I wanted to do this much earlier but never got the motivation to actually get it to work so I scrapped it temporarilyIn post 166, yessiree wrote:
Well actually I was thinking of working on a config editor to replace yaml config files altogether, but wasn't sure if that's the direction you wanted to go. Basically, it will be a UI that lets you edit configs and save/load them to/from local storage.In post 152, JacksonVirgo wrote: I also want to add cached config results so you don't have to upload over and over.
should be fairly trivial with react!-
-
JacksonVirgo they/himSurvivorthey/him
- Survivor
- Survivor
- Posts: 13371
- Joined: October 29, 2019
- Pronoun: they/him
- Location: ɐılɐɹʇsn∀
I wasn't able to figure out how to inject react into the site properly. I didn't really wanna use the extension popup as I couldn't figure out how to trigger that from the VC button injected into MS's html.In post 168, yessiree wrote:
probably because you were using jqueryIn post 167, JacksonVirgo wrote:
I wanted to do this much earlier but never got the motivation to actually get it to work so I scrapped it temporarilyIn post 166, yessiree wrote:
Well actually I was thinking of working on a config editor to replace yaml config files altogether, but wasn't sure if that's the direction you wanted to go. Basically, it will be a UI that lets you edit configs and save/load them to/from local storage.In post 152, JacksonVirgo wrote: I also want to add cached config results so you don't have to upload over and over.
should be fairly trivial with react!
I tried a bunch of stuff, none of it worked super good. I'm also new to browser extensions so maybe I'm just an absolute goof on a stick-
-
yessiree heMafia Scumhe
- Mafia Scum
- Mafia Scum
- Posts: 4390
- Joined: June 6, 2013
- Pronoun: he
I can work out a quick WIP next week-
-
Psyche he/theySurvivorhe/they
- Survivor
- Survivor
- Posts: 10874
- Joined: April 28, 2011
- Pronoun: he/they
a few counterpoints:In post 148, yessiree wrote: For votes with ambiguous targets, I lean more towards flagging them to be checked manually rather than trying to parse the intended target using NLP. Reason one is that configuration (usernames, aliases and replacements) are needed for each game anyway, reason two is that if the string parsing algo is not 100% accurate, you dataset ends up with some incorrect data, and reason three - NLP is hard!
I imagine the process would be like
- configure basic settings (usernames, replacements, common aliases, etc) for games from which to collect data
- collect votes -> get a list of votes + a list of flagged votes
- go through the flagged votes one by one and add aliases as necessary
- repeat step 2 until you have no more flagged votes
- I think this underestimates how much of a slog getting to a complete configuration and handling flagged votes really is -- especially over many games -- when common abbreviations like "NMHS" so easily leak out. IMO if the votecounter doesn't "just work", you're going to see / are seeing relatively slow adoption, particularly among more experienced moderators already happy with how they do things.
- The string parsing algorithm in JV's repo is already not 100% accurate. This is already the default mode we're in. You're probably not in favor of just removing it though, right?
- It's possible to have both flagginganda smart-but-inaccurate matching algorithm. For example, you can flag all votes that don't perfectly match defined aliases, but suggest a matching during user review that can be given a quick up/down rating and trigger stuff like an update to the alias pool. You can propose aliases during configuration to save users the trouble of brainstorming them themselves. And so on.
- NLP is hard, but also fun. And also it's not that hard. For example, checking strings against a dictionary is not hard. Applying a string distance function is not hard. (And frankly I think most of the hard work is already done anyway.)
- Solving this kind of problem opens a lot of downstream possibilities that from our current vantage point look infeasible. For example, most robust analyses of a game can't stop at looking at votes, and need to pay attention to all interactions between players. Right now, tackling that looks like a pipe dream! But mapping these interactions gets much more plausible with a robust solution to the username matching problem.
Once I'm done refactoring my current implementation and its tests I'll get more specific about how it could fit into a context like this where it's very important that no false matchings get into a generated votecount without an alert.-
-
yessiree heMafia Scumhe
- Mafia Scum
- Mafia Scum
- Posts: 4390
- Joined: June 6, 2013
- Pronoun: he
hmm, I definitely agree that the string matching algo needs to perform at a certain accuracy level, or be improved in some way, but for the average mod who's using this to generate VCs every now and then, I don't think it's too much trouble for them to go through this process of looking at flagged votes and addressing them through config fixes?
as for vca, i should clarify that i don't really see the whole process happening at once. That is, collecting data and then performing analysis on said data. In other words, I don't see that we're shipping a tool that does everything in one complete package. I moreso see it as two separate processes; first is the data collection part, with the goal of creating a dataset to be used later, the second one is the analysis. These two processes don't need to be coupled together.
so i guess what im trying to say is that i dont see the point of creating a tool for other people to collect data on their own, but rather creating a tool to collect data ourselves, and then making this dataset available to the public. in that vein, data is only collected once and done, and that reduces the need for a perfect algorithm, if that makes sense
i dont want to stop you from doing what you're doing tho!-
-
Psyche he/theySurvivorhe/they
- Survivor
- Survivor
- Posts: 10874
- Joined: April 28, 2011
- Pronoun: he/they
Am thinking you make a good point. I think I'll still push for something powerful enough to pick up particularly common abbreviations like in the example I shared (mostly because I have something close and have a stronger need for something close), but otoh will avoid getting bogged down by rarer issues most easily handled by player-specific aliasing.
Even for research purposes that do require processing a very large pool of games, I agree we only really need a tool powerful enough to make it feasible to collect good dataset just once, and to confirm to us that it is good data (i.e., flagging uncertainties).-
-
Psyche he/theySurvivorhe/they
- Survivor
- Survivor
- Posts: 10874
- Joined: April 28, 2011
- Pronoun: he/they
have found some edge cases that might defy even a flagging-focused method if flagging only highlights ambiguous names
maybe most salient is broken quote tags that allow a quoted vote to look like the poster's vote
broken vote tags are also a factor, but easier to refuse by policy
might suggest as a safety measure having the votecounter by default flag any post with any signs of broken tags
Copyright © MafiaScum. All rights reserved.