文本的统计分类

机器算法验证 分类 信息检索 文本挖掘
2022-01-23 23:09:13

我是一个没有统计背景的程序员,我目前正在为大量不同的文档寻找不同的分类方法,我想将它们分类为预定义的类别。我一直在阅读有关 kNN、SVM 和 NN 的信息。但是,我在开始时遇到了一些麻烦。你推荐什么资源?我确实非常了解单变量和多变量微积分,所以我的数学应该足够强大。我还拥有 Bishop 关于神经网络的书,但事实证明它作为介绍有点密集。

4个回答

我推荐这些书——它们在亚马逊上也得到了很高的评价:

Weiss的“文本挖掘”

“文本挖掘应用程序编程”,作者:Konchady

对于软件,我推荐 RapidMiner(带有文本插件),免费且开源。

这是我的“文本挖掘过程”:

  • 收集文档(通常是网络爬虫)
    • [样本如果太大]
    • 时间戳
    • 去除标记
  • 标记化:分解成字符、单词、n-gram 或滑动窗口
  • 词干提取(又名词形还原)
    • [包括同义词]
    • 请参阅搬运工或雪花算法代词和文章通常是不好的预测器
  • 删除停用词
  • 特征向量化
    • 二进制(出现或不出现)
    • 字数
    • 相对频率:tf-idf
    • 信息增益,卡方
    • [具有包含的最小值]
  • 加权
    • 文档顶部的单词权重更高?

然后你就可以开始对它们进行分类了。kNN、SVM 或 Naive Bayes(视情况而定)。

你可以在这里看到我的一系列文本挖掘视频

涵盖您提到的主题的一篇很棒的介绍性文本是Introduction to Information Retrieval,可免费在线获取全文。

信息检索导论

对于大量文档,神经网络可能会变慢(现在也已经过时了)。
您还可以检查分类器中的随机森林;它非常快,扩展性很好,不需要复杂的调整。

首先,我可以向您推荐Manning 和 Schütze所著的《统计自然语言处理基础》一书。

我会使用的方法是词频分布和 ngram 语言模型。当您想要对主题进行分类并且您的主题是具体且专家(具有关键字)时,第一个效果非常好。当您想要对写作风格等进行分类时,Ngram 建模是最好的方法。