【问题标题】:proposed nlp algorithm for text tagging提出的用于文本标记的 nlp 算法
【发布时间】:2014-08-10 11:26:15
【问题描述】:

我一直在寻找可以帮助识别社交媒体上任何用户帖子的tags 并识别该帖子的主题/离题或垃圾评论的开源工具。即使找了一整天,我也找不到任何合适的工具/库。

在这里,我提出了我自己的算法,用于标记属于 7 个类别(工作、讨论、事件、文章、服务、买卖、人才)的用户帖子。

最初,当用户发布帖子时,他标记了他的帖子。标签可以像marketing, suggestion, entrepreneurship, MNC etc。所以考虑一下我有标签的一些帖子以及它们属于哪个类别。

步骤:

  1. 对用户帖子执行 POS(词性)标记。 这里可以做两件事。

    • 只考虑名词。名词可以代表 post more 的标签 直觉上我猜

    • 同时考虑名词和形容词。在这里我们可以收集大量 名词和形容词的数量。可以使用此类词的频率 识别该帖子的标签。

  2. 对于每个用户定义的标签,我们将收集属于特定标签的帖子的 POS。例子。考虑用户分配的标签marketing,并且该标签的帖子包含POS词SEOadwords。假设marketing标签的10个帖子分别包含SEO and adwords 5和7次。所以下次当用户发布没有任何标签但包含POS词SEO时。 SEO 在营销标签中出现7 的次数最多,因此我们将预测此帖子的marketing 标签

  3. 接下来的步骤是为 POST 识别垃圾邮件或离题评论。 考虑Job 类别的一篇用户帖子。这篇文章包含标签marketing。现在我将检查数据库中最常见的 10-15 个词性标签(即名词和形容词)以进行营销。

    并行我有该评论的 POS 标签。我会检查这篇文章的 POS(noun & adj) 是否包含属于marketing 的最常见的标签(我们可以考虑 15-20 个这样的 POS 标签)。

如果 cmets 中的 POS 与任何最常见的营销 POS 不匹配,那么该评论可以说是离题/跨度

你有什么建议可以让这个算法更直观吗?

我猜 SVM 可以帮助分类,对此有何建议?

除了这种机器学习技术可以帮助学习系统来预测标签和垃圾邮件(离题)cmets

【问题讨论】:

    标签: php algorithm nlp data-mining stanford-nlp


    【解决方案1】:

    在我看来,主要问题在于您的特征建模。虽然只挑选名词有助于减少特征空间,但这是一个额外的步骤,具有潜在的显着错误率。你真的关心你是看market/N而不是market/V吗?

    大多数使用朴素贝叶斯分类器的主流文本分类实现只是忽略 POS,而只是将每个不同的单词形式计算为一个独立的特征。 (您也可以进行强力词干提取以将 marketmarketsmarketing 减少为单个词干形式,从而减少单个特征。这通常适用于英语,但如果您是实际使用不同的语言。)

    在训练分类器时,可以进行 POS 过滤。那么没有名词读法的词形在分类器中的得分为零,所以当你使用得到的分类器时,你不需要做任何事情来过滤掉它们。

    根据经验,SVM 倾向于实现高精度,但其代价是实现和行为的复杂性。朴素贝叶斯分类器具有明显的优势,您可以准确地理解它是如何得出特定结论的。 (好吧,我们大多数凡人都不能声称对支持向量机背后的数学有同样的掌握。)也许一个好的方法是使用贝叶斯进行原型设计,并在学习整个系统的行为时消除任何问题,然后等其他部分稳定后,也许以后考虑切换到 SVM?

    “垃圾邮件”类别将比任何定义明确的内容类别更难。建议任何不符合您的任何内容类别的内容都是离题的,但如果您打算使用自动垃圾邮件过滤的判断,这可能会导致一些误报,至少在早期阶段。一种可能的替代方法是针对特定的垃圾邮件类别训练分类器——一个用于药物,另一个用于跑鞋等。

    【讨论】:

    • 嘿,三胞胎,感谢这个潜在的答案。如果我忽略 POS,那么它真的有帮助吗?考虑到每个单词可能会导致额外的预处理以删除常见的连词、冠词、介词等。
    • 是的,我需要同时考虑市场/N 和市场/V。而你的建议,贝叶斯或 SVM 更适合这里?任何参考都会非常明显
    • 感谢您的澄清。我检查了贝叶斯技术的方差。我确定了Mul1nomial Naïve。对此有何评论?贝叶斯
    • 考虑我有一组标签(类)。因此没有 POS 属于任何标签的 cmets 将具有最低的条件优先级。这种条件概率 POS 最低的 cmets 是否可以被视为跨度/离题?
    • 听起来像是一个计划,但查看真实数据才是决定的方式。
    【解决方案2】:

    看看这个 POS 标记。 http://nlp.stanford.edu/software/tagger.shtml

    更多地依赖数据收集(标记数据),然后用它来构建分类器、线性、贝叶斯、SVM 任何符合您要求的东西(性能最好)

    还可以看看您是否可以进行多类预测(即创建由两个或多个类组合而成的新类),或者尝试找出每个类中存在字符串序列的概率。

    希望对你有帮助

    【讨论】:

    • 感谢您。获得 POS 对我来说不是问题。这个斯坦福包我以前用过。获得 POS 后向我提出问题,哪些方法更好以及如何处理。顺便探索一下,很快就把它做空了
    【解决方案3】:

    任何线性分类器都适用于文本分类。根据我的经验,逻辑回归或 SVM 非常适合文本分类。

    您也可以尝试朴素贝叶斯多项分类器。这在几个垃圾邮件分类器上与垃圾邮件分类一起使用。

    【讨论】:

    • 感谢您的建议。是的,svm,naive base 可以在这里提供帮助。但是你能描述一下要使用的方法吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2021-11-13
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多