简单机器学习用于网站分类

我正在尝试编写一个Python程序,用于判断一个网站是否有害(如色情等)。

首先,我编写了一个Python网络爬虫程序,用于统计每个单词出现的次数。

有害网站的结果

这是一个键值字典,类似于

{ 单词 : [ 在有害网站中的出现次数, 包含这些单词的网站数量] }。

现在我想让我的程序分析任何网站的单词,以检查该网站是否安全。但我不知道哪种方法适合我的数据。


回答:

这里的关键是你的训练数据。你需要某种监督学习技术,其中你的训练数据包括网站本身的数据(文本文档)和其标签(harmfulsafe)。

你当然可以使用RNN,但还有其他自然语言处理技术,而且速度更快。

通常,你应该在你的训练数据上使用适当的向量化器(将每个网站页面视为一个文本文档),例如tf-idf(但也有其他可能性;如果你使用Python,我强烈建议使用scikit,它提供了许多有用的机器学习技术,并且提到的sklearn.TfidfVectorizer已经包含在内)。重点是以增强的方式对你的文本文档进行向量化。例如,想象一下英语单词the在文本中通常出现多少次?你需要考虑到这些偏见。

一旦你的训练数据被向量化,你可以使用例如随机梯度下降分类器,并查看它在你的测试数据上的表现(在机器学习术语中,测试数据意味着简单地取一些新数据示例并测试你的机器学习程序的输出)。

无论哪种情况,你都需要尝试上述选项。有许多细微之处,你需要测试你的数据,看看在哪里能获得最佳结果(取决于机器学习算法设置、向量化器类型、使用的机器学习技术本身等)。例如,支持向量机在二元分类器方面也是一个很好的选择。你可能也想尝试一下,看看它是否比SGD表现得更好。

无论如何,请记住,你需要获得带有标签(harmfulsafe)的优质训练数据,并找到最适合的分类器。在寻找最佳分类器的过程中,你可能还想使用交叉验证来确定你的分类器的表现如何。同样,这已经包含在scikit-learn中。

注意:不要忘记有效的情况。例如,可能有一个完全安全的在线杂志,它在某篇文章中仅提到了有害话题;这并不意味着该网站本身是有害的。

编辑:当我想到这一点时,如果你完全没有机器学习经验,可能有用的是参加任何在线课程,因为尽管你了解API和库的知识,你仍然需要知道它做了什么以及幕后的数学(至少大致了解)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注