提出了一种用于文本标注的nlp算法



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

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

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

步骤:

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

    • 只考虑名词。名词可能代表帖子的标签更多凭直觉我猜

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

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

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

    平行,我有POS标签的评论。我将检查这篇文章的POS(名词&adj(是否包含属于marketing的最频繁的标签(我们可以考虑15-20个这样的POS标签(。

如果评论中的POS与任何最频繁、最热门的营销POS都不匹配,则该评论可以说偏离主题/span

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

我想SVM可以帮助分类,对此有什么建议吗

除此之外,WhIch机器学习技术还可以帮助学习预测标签和垃圾邮件(主题外(评论的系统

我认为主要问题是您的功能建模。虽然只挑选名词有助于减少特征空间,但这是一个额外的步骤,可能会导致显著的错误率。你真的在乎你看的是market/N而不是market/V吗?

大多数使用朴素贝叶斯分类器的主流文本分类实现都忽略了POS,只将每个不同的单词形式作为一个独立的特征进行计数。(你也可以使用蛮力词干,将marketmarketsmarketing简化为一个词干形式,从而成为一个单一的功能。这在英语中通常有效,但如果你实际使用的是另一种语言,可能就不够了。(

一个折衷方案是在训练分类器时进行POS过滤。然后,没有名词阅读的单词形式在分类器中的得分为零,所以当你使用结果分类器时,你不必做任何事情来过滤掉它们。

从经验上讲,支持向量机倾向于实现高精度,但它是以实现和行为的复杂性为代价的。一个天真的贝叶斯分类器有一个明显的优势,你可以准确地理解它是如何得出特定结论的。(好吧,我们大多数人都不能声称对SVM背后的数学有同样的理解。(也许一个好的方法是用贝叶斯建模,在学习系统整体行为的同时解决任何问题,然后在其他部分稳定后考虑改用SVM?

"垃圾邮件"类别将比任何定义明确的内容类别都更难。人们很容易认为,任何不符合你的任何内容类别的内容都是偏离主题的,但如果你要使用这个判决来自动过滤垃圾邮件,这很可能会导致一些误报,至少在早期阶段是这样。一种可能的替代方案是为特定的垃圾邮件类别训练分类器——一个用于药物,另一个用于跑鞋等。

任何线性分类器都适合文本分类。根据我的经验,逻辑回归或SVM对文本分类很好。

你也可以试试朴素贝叶斯多项式分类器。这与几个电子邮件垃圾邮件分类器上的垃圾邮件分类一起使用。

查看一下POS标记。http://nlp.stanford.edu/software/tagger.shtml

更多地依赖数据收集(标记数据(,然后使用它来构建分类器、线性、贝叶斯、SVM——任何符合您需求(表现最好(的

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

希望这能帮助

最新更新