Topic auto tagging

I need one certain category’s (and it’s sub-category’s) to have auto-tagging feature. For example… I set up Tags, which can be used for topics in category (for example: iphone, macbookpro). If topic title has text “iPhone” and “MacBook Pro” in it, the tags “iphone” and “macbookpro” would be automatically selected for this topic.

What is the best strategy to get such feature implemented?

Should I go with a plugin? Is it possible to do with a plugin?

Or should I add feature to topic (and add “Topic auto-tagging” to it’s settings) and create a pull request to have it in main branch?

7 إعجابات

Create a plugin based on Sam’s Unhandled Tagger.

Alter plugin.rb to scan for title and apply existing tags instead of always applying unhlandled.

9 إعجابات

Instead of automatically tagging topics, I would like the idea of suggesting tags just as similar topics are suggested, but I imagine this isn’t that cheap to have (because we would need to maintain some sort of model/corpus per tag).

4 إعجابات

What if tags would populate as you type and before posting you could add/remove tags? Would that be OK?

إعجاب واحد (1)

Would like to see option on the Category>Edit>Tags screen for:

Default tags for this category

below the current options:

This would also help for topics posted via mobile since adding tags is not supported.

My use case is adding an “events” tag so that topics from different event subcategories across the site can get aggregated to one calendar.

إعجاب واحد (1)

A bayesian algorithm would work well here.

To seed it, feed in all the current tagged posts, and let it learn which words in the content of a post correspond (probabilistically) to which tags.

إعجاب واحد (1)

Merged in from a duplicate topic.


Great WP plugin and seems it would be a great Discourse plugin as well if built to the same logic as this one.

Comments?

4 إعجابات

Yuss! I was hoping for something like this recently when I built a ‘homepage’ that relies on tagging to group content.

إعجابَين (2)

See how Wikibots are working at Wikipedia, it is a good reference model… Other important criteria to policy and implementation:

  • to be an assisted agent: never (or very rare) an automatic classification with no human confirming it. Must work “by (assisted) lot” not in a continous (by demand) way.

  • to be specialized: never generic, need a scope and limited (configurable/controlable) range.

  • to be symmetric over validation: an human can be also use the same tag, the robot (software agent) is not the only autorithy to tagging its scope. So two cenarios: 1. robot tagging and human validating/confirming (or warning to vote). 2. human tagging, and robot valiating (or warning to other human confirm).

Whith this basic polices the robot is viable in any community!

Other suggestion: when the scope is specific, or when the “easy to tag” generates “tag pollution”, the best is to use different color to the tags of the bot-scope. EXAMPLE: tagging languages in a multilingual community as https://discuss.okfn.org.

إعجاب واحد (1)

Now that we have watched words that trigger certain actions, wouldn’t it be easy to simply add “tag” as a possible action to perform upon a matched word/regex?

7 إعجابات

It’s a feature that is closer to being implemented now, yes. “Simply adding tag” isn’t quite the whole story. Each watched word needs to also specify which tag to add, for example.

10 إعجابات

That would be absolutely awesome! Especially if it’s not just words but also regular expressions. Auto-tagging based on regular expressions would bring tags in discourse to a whole new level!

Yes, and I also realize that the existing actions apply to posts while tags can only be applied to topics. So the question is: will tagging actions only be based on the first post? Or can any reply also trigger the tag? Or will it be a setting, whether it applies to both?..

Did anyone endup building this as a plugin?

@vinothkannans is currently working on something along these lines for PMs. I’m not sure how much extra work there would be to make it fit this brief – can you comment Vinoth?

You can create a plugin with the below simple code. But the difficulty level is fully depends upon your auto tagging logic/requirement.

DiscourseEvent.on(:topic_created) do |topic|
  guardian = Guardian.new(Discourse.system_user)
  DiscourseTagging.tag_topic_by_names(topic, guardian, ["bug"], append: true) if topic.title.match(/bug/)
end
13 إعجابًا

@syl حل هذه المشكلة باستخدام وضع العلامات التلقائي القابل للتعريف في إضافة Docus الخاصة به. أعتقد أنه يمكن لشخص ما استخلاص هذه الدالة لإنشاء وضع علامات تلقائي إذا لم يكن ذلك يزعجه.

من وجهة نظري، سيكون الحل الأكثر وضوحًا هو أن يتم وضع علامة تلقائية على المنشور بالعلامة (العلامات) التي يتصفحها المستخدم حاليًا (صفحة العلامات، أو المنشور). هذا يجعل من الواضح بصريًا للمستخدم كيفية عمل الميزة إذا احتاج إلى تغييرها، وفي معظم الحالات سيكون ذلك صحيحًا على الأرجح حيث سيقومون بالرد على شيء ما باستخدام العلامات التي يردون عليها.

إعجابَين (2)

صححوا لي إن كنت مخطئًا، ولكن يبدو أن @pfaffman قد قام بتطبيق هذه الإضافة في https://github.com/pfaffman/discourse-topic-default-tag؟

إعجاب واحد (1)

لقد قمت بذلك. إنه ببساطة يعين وسمًا لكل موضوع يُنشأ في فئة معينة، لكنه بداية جيدة لشيء يمكن أن يحدد الوسوم بناءً على محتوى الموضوع، على ما أظن.

3 إعجابات

+1، ستكون هذه ميزة أو إضافة مفيدة جدًا، وهي التسميع التلقائي بناءً على الكلمات المفتاحية التي يتم متابعتها (كل منها مرتبط بوسم) والتي توجد في الموضوع (العنوان/المحتوى).

إعجاب واحد (1)

هذا بالتأكيد ممكن في إضافة. يمكنك استخدام إضافتي أعلاه كنقطة انطلاق أو طرح سؤالك في #السوق

3 إعجابات