我一直在寻找开源工具,它可以帮助识别社交媒体上任何用户帖子的标签
,并识别该帖子的主题/离题或垃圾评论。即使找了一整天,我也找不到任何合适的工具/库。
在这里,我提出了自己的算法来标记属于 7 个类别(工作、讨论、事件、文章、服务、买卖、人才)的用户帖子。
最初,当用户发帖时,他会标记他的帖子。标签可以是 marketing, suggestion, entrepreneurship, MNC etc
。所以考虑一下我有标签的一些帖子以及它们属于哪个类别。
步骤:
对用户帖子执行 POS(词性)标记。 这里可以做两件事。
只考虑名词。名词可以代表post more的标签 凭直觉我猜
同时考虑名词和形容词。在这里我们可以收集大量 名词和形容词的数量。可以使用这些词的频率 识别该帖子的标签。
对于每个用户定义的标签,我们将收集属于特定标签的帖子的 POS。例子。考虑用户分配的标签
marketing
并且此标签的帖子包含 POS 词SEO
和adwords
。假设 10 个帖子的marketing
标签分别包含 5 次和 7 次SEO 和 adwords
。所以下次当用户发布没有任何标签但包含 POS 词SEO
时。SEO
在营销标签中出现的次数最多7
,因此我们将预测此帖子的marketing
标签下一步是为 POST 识别垃圾邮件或离题评论。 考虑一个针对
Job
类别的用户帖子。这篇文章包含标签marketing
。现在我将在数据库中检查最常见的 10-15 个词性标签(即名词和形容词)以用于营销。Parallel 我有那个评论的 POS 标签。我将检查这篇文章的 POS(名词和形容词)是否包含属于
marketing
的最常见标签(我们可以考虑 15-20 个这样的 POS 标签)。
如果评论中的 POS 与任何最常见的营销 POS 不匹配,那么该评论可以说是离题/跨度
您有什么建议可以让这个算法更直观吗??
我想 SVM 可以帮助分类,对此有什么建议吗?
除此之外,机器学习技术还可以帮助学习系统预测标签和垃圾评论(离题)
最佳答案
我认为主要问题在于您的特征建模。虽然只挑选名词有助于减少特征空间,但这是一个额外的步骤,可能会产生很大的错误率。你真的关心你是在看 market/N
而不是 market/V
吗?
大多数使用朴素贝叶斯分类器的主线文本分类实现都忽略了 POS,并简单地将每个不同的单词形式计为一个独立的特征。 (您还可以使用蛮力词干提取来将 market
、markets
和 marketing
缩减为单个词干形式,从而减少单个特征。这倾向于使用英语工作,但如果您实际上使用不同的语言工作,可能就不够用了。)
折衷方案可能是在训练分类器时进行 POS 过滤。然后,没有名词读法的单词形式在分类器中的得分为零,因此您在使用生成的分类器时无需执行任何操作来过滤掉它们。
根据经验,SVM 往往会实现较高的准确度,但它是以实现和行为方面的复杂性为代价的。朴素贝叶斯分类器具有明显的优势,您可以准确地理解它是如何得出特定结论的。 (好吧,我们大多数人都不能声称对 SVM 背后的数学有同样的掌握。)也许一个好的方法是用贝叶斯做原型(prototype),并在学习系统整体行为的同时解决任何问题,然后其他部分稳定后,也许稍后考虑切换到 SVM?
“垃圾邮件”类别将比任何明确定义的内容类别都更难。暗示任何不适合您的任何内容类别的内容都是题外话,这很诱人,但是如果您打算使用自动垃圾邮件过滤的判断,这可能至少在早期会导致一些误报阶段。一种可能的替代方法是针对特定的垃圾邮件类别训练分类器——一种用于药物,另一种用于跑鞋等。
关于php - 提出的用于文本标记的 nlp 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314817/