Tag Essentials - with AI auto tagging and XFRM support

Tag Essentials - with AI auto tagging and XFRM support [Paid] 2.6.2

No permission to buy (£35.00)
Ok, gotcha. Thanks for the input, my idea was based on automation which would cost a **** load. So I'll see about making a mockup with that information in mind.
 
So with your idea that you posted, you are going to a tag that you may or may not have already defined tags as synonyms and clicking "suggest synonyms", it would then search through the database for tags that don't have a "parent synonym" for? Or were you thinking it would give suggestions based on word variations like a thesaurus? Or a little of both? Matching thesaurus words to what's been used as tags already
 
So with your idea that you posted, you are going to a tag that you may or may not have already defined tags as synonyms and clicking "suggest synonyms", it would then search through the database for tags that don't have a "parent synonym" for? Or were you thinking it would give suggestions based on word variations like a thesaurus? Or a little of both? Matching thesaurus words to what's been used as tags already
It would take your tag and then ask OpenAI for synonyms and it would populate the synonyms box with the results.
I’m not convinced of how useful this is, though.
Normally I use synonyms to ‘capture’ misspelt tags or unwanted alternatives.
E.g. https://www.avforums.com/tags/uhd-ultra-hd/

Another example I set up recently is the game Starfield. The Wikipedia text put in the tag wiki was for an author called Starfield, so I changed the tag to starfield (video game) and set starfield as a synonym.
This would be a hell of a lot of work for all the games with tags.
The important thing is to establish rules for how you’re defining your canonical and synonym tags.
 
I have noticed that there are lots of tags with plural versions.
e.g.
  • loudspeaker | loudspeakers
  • centre speaker | centre speakers
  • surround speaker | surround speakers
From all points of view these plural versions of the tags are identical. Including when getting the wiki info in there.
So what I am thinking of doing is using the canonical/synonym system we have to make the plural version of a tag a synonym.
That way any time the plural version is used as a tag, it will get switched to the canonical.
But how do we get the plural or singular version of a tag? We ask ChatGPT.
So at the point when a new tag is created, we get the singular and plural versions from ChatGPT and save the singular as the canonical and plural as a synonym.
We’d also need a batch process to perform this on all the canonical tags to sort out existing ones.
Any thoughts on this?
 
I have noticed that there are lots of tags with plural versions.
e.g.
  • loudspeaker | loudspeakers
  • centre speaker | centre speakers
  • surround speaker | surround speakers
From all points of view these plural versions of the tags are identical. Including when getting the wiki info in there.
So what I am thinking of doing is using the canonical/synonym system we have to make the plural version of a tag a synonym.
That way any time the plural version is used as a tag, it will get switched to the canonical.
But how do we get the plural or singular version of a tag? We ask ChatGPT.
So at the point when a new tag is created, we get the singular and plural versions from ChatGPT and save the singular as the canonical and plural as a synonym.
We’d also need a batch process to perform this on all the canonical tags to sort out existing ones.
Any thoughts on this?
How many api calls would this end up costing? Otherwise, I like the idea.
 
Why do the synonyms need to be created manually instead of automatically?
It depends on your use case, but in ours it’s because someone has to choose which tag is the canonical one.
In our case, synonyms aren’t used to produce normal language variants for a tag. We use them to fix instances where people use the wrong word or spelling for a tag.
For example, the correct name for Peter Parker’s alter ego is Spider-Man. So that would be the canonical with spiderman and spider man as the synonyms.
So if you’re running through your list of thousands of tags, how do you know which are the ones you prefer to set as the canonical? And we can’t assume that all the existing tags are desirable. A lot are junk.
 
Is it not possible to let AI bulk suggest canonicals and let a moderator or administrator approve it.
 
Is it not possible to let AI bulk suggest canonicals and let a moderator or administrator approve it.
Suggest canonicals from what based on what?
You can’t just send the whole list of tags and ask it to suggest which ones are canonicals because there would be mostly unrelated words and it makes no sense to do that. And picking exactly which word is canonical from a selection of synonyms depends on the context.
It’s possible to do most things. Whether it is worth the effort is the question.
 
I have a question for Tag Essentials users. For single word tags (I'm not thinking about multiple word tags, here), do you think we should limit the use of tags to nouns? If you think we should have tags which are any of the other word types (adjectives, adverbs, conjunctions, determiners, numerals, prepositions, pronouns or verbs), please give me examples. I'm thinking about using ChatGPT to determine the type of word that each tag is so that admin can allow or reject tags which are specific word types. I'm thinking that we should reject everything except nouns.
What do you think?
 
I think that is a very reasonable idea. I just looked at my banned / stop words and it is populated mostly by verbs and pronouns.
I do think a whitelist would need to be added for those verbs or pronouns that would be needed. What if it's a sports forum? Running, jogging, racing,... Or, tick boxes to select, no verbs, nouns only etc.
 
Last edited:
For tags, I would like to suggest to filter out the ones that would be deemed low quality or low demand and put those on a "do not create" blacklist for the addon to have the AI remember. Could be based on if the tag has sufficient data from wikipedia.
 
XF 2.2.15 XFRM 2.2.5
When trying to add a resource this error happens. What dependency is it looking for? Thanks,

Server error log
  • LogicException: Could not determine dependable add-on; please override
  • src/addons/AVForums/TagEssentials/XF/Repository/Tag.php:1010
  • Generated by: CJ
  • Apr 27, 2024 at 12:48 PM

Stack trace​

#0 src/addons/AVForums/TagEssentials/XF/Repository/Tag.php(910): AVForums\TagEssentials\XF\Repository\Tag->getDependsOnAddOnIdForTagEss('resource')
#1 src/addons/AVForums/TagEssentials/XF/Repository/Tag.php(898): AVForums\TagEssentials\XF\Repository\Tag->avfNotifyNewTags(Array, 'resource', 280, 1)
#2 src/XF/Repository/Tag.php(388): AVForums\TagEssentials\XF\Repository\Tag->addTagIdsToContent(Array, 'resource', 280, 1714236526, true, 1)
#3 src/XF/Service/Tag/Changer.php(321): XF\Repository\Tag->modifyContentTags('resource', 280, Array, Array)
#4 src/addons/XFRM/Service/ResourceItem/Create.php(303): XF\Service\Tag\Changer->save(true)
#5 src/XF/Service/ValidateAndSavableTrait.php(42): XFRM\Service\ResourceItem\Create->_save()
#6 src/addons/XFRM/Pub/Controller/Category.php(267): XFRM\Service\ResourceItem\Create->save()
#7 src/XF/Mvc/Dispatcher.php(352): XFRM\Pub\Controller\Category->actionAdd(Object(XF\Mvc\ParameterBag))
#8 src/XF/Mvc/Dispatcher.php(258): XF\Mvc\Dispatcher->dispatchClass('XFRM:Category', 'Add', Object(XF\Mvc\RouteMatch), Object(XFA\TagsGenerator\XFRM\Pub\Controller\Category), NULL)
#9 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XFA\TagsGenerator\XFRM\Pub\Controller\Category), NULL)
#10 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#11 src/XF/App.php(2487): XF\Mvc\Dispatcher->run()
#12 src/XF.php(524): XF\App->run()
#13 index.php(20): XF::runApp('XF\\Pub\\App')
#14 {main}

Request state​

array(4) {
["url"] => string(56) "/community/downloads/categories/non-specific-jeep.13/add"
["referrer"] => string(75) "https://jeep-cj.com/community/downloads/categories/non-specific-jeep.13/add"
["_GET"] => array(0) {
}
["_POST"] => array(16) {
["_xfToken"] => string(8) "********"
["title"] => string(47) "CJ I6 258 / 232 Typical Vacuum System 49 States"
["tag_line"] => string(47) "CJ I6 258 / 232 Typical Vacuum System 49 States"
["resource_type"] => string(14) "download_local"
["version_attachment_hash"] => string(32) "227d5301a5315cb3fdd87d0637e3fd4f"
["version_attachment_hash_combined"] => string(107) "{"type":"resource_version","context":{"resource_category_id":13},"hash":"227d5301a5315cb3fdd87d0637e3fd4f"}"
["description_html"] => string(522) "<p>CJ I6 258 / 232 Typical Vacuum System 49 States</p><p><br></p><p><img src="/community/attachments/cj_vacuum_line_diagram-jpg.101221/?hash=c0b35a5e33e018d4fc1ae412fc3cbbb0" class="fr-fic fr-dii" status="ok" message="Your changes have been saved." redirect="https://jeep-cj.com/community/attac...=13&amp;hash=c0b35a5e33e018d4fc1ae412fc3cbbb0" attachment="[object Object]" visitor="[object Object]" debug="[object Object]" data-attachment="full:101221"></p>"
["attachment_hash"] => string(32) "c0b35a5e33e018d4fc1ae412fc3cbbb0"
["attachment_hash_combined"] => string(106) "{"type":"resource_update","context":{"resource_category_id":13},"hash":"c0b35a5e33e018d4fc1ae412fc3cbbb0"}"
["tokens_select"] => string(6) "Vacuum"
["tags"] => string(6) "Vacuum"
["external_url"] => string(0) ""
["icon_action"] => string(6) "custom"
["_xfRequestUri"] => string(56) "/community/downloads/categories/non-specific-jeep.13/add"
["_xfWithData"] => string(1) "1"
["_xfResponseType"] => string(4) "json"
}
 
Back
Top Bottom