代码之家  ›  专栏  ›  技术社区  ›  Sean

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

  •  2
  • Sean  · 技术社区  · 7 年前

    我正在尝试生成一个Python程序,用于确定网站是否有害(色情等)。

    首先,我制作了一个Python网络抓取程序,该程序计算每个单词的出现次数。

    result for harmful websites

    {文字:[#出现在有害网站中,#包含这些文字的网站]}。

    现在我想让我的程序分析来自任何网站的文字,以检查网站是否安全。但我不知道哪些方法适合我的数据。

    3 回复  |  直到 4 年前
        1
  •  1
  •   Ivan Sivak    7 年前

    supervised learning 培训数据由网站数据本身(文本文档)及其标签组成的技术( harmful safe ).

    RNN 但还有其他 natural language processing 技术和更快的技术。

    通常,您应该在训练数据上使用适当的矢量器(例如,将每个网站页面视为文本文档) tf-idf scikit 这提供了许多有用的机器学习技术,并提到 sklearn.TfidfVectorizer 已在中)。重点是以增强的方式对文本文档进行矢量化。想象一下,例如英语单词 the 它通常在文本中存在多少次?你需要考虑这样的偏见。

    stochastic gradient descent

    Support Vector Machines 当涉及到二进制分类器时也是不错的选择。你可能也想试试,看看它是否比SGD表现更好。

    有害的 安全 )并找到最合适的分类器。在你的旅程中,找到你可能也想要使用的最好的 cross validation 确定分类器的性能。同样,已经包含在 scikit-learn

    N、 B.不要忘记有效案例。例如,可能有一本完全安全的在线杂志,其中只在某些文章中提及有害主题;但这并不意味着网站本身就是有害的。

    online course 因为尽管有API和库的知识,但你仍然需要知道它的功能和幕后的数学知识(至少大致如此)。

        2
  •  1
  •   Flomp    7 年前

    你试图做的是所谓的情感分类,通常是用递归神经网络(RNN)或长-短期记忆网络(LSTM)来完成的。从机器学习开始,这不是一个容易的话题。如果你是新手,你应该先研究线性/逻辑回归、支持向量机和基本神经网络。否则很难理解发生了什么。

    这就是说:有许多用于构建神经网络的库。可能最容易使用的是 keras Here 这是一个示例,说明了如何在IMDB数据集上执行情感分类(基本上确定电影评论是否积极) 凯拉斯

        3
  •  0
  •   Sean    4 年前

    对于没有NLP或ML经验的人,我建议使用 TFIDF vectorizer 而不是使用深度学习库。简而言之,它将句子转换为向量,将词汇表中的每个单词都转换为一个维度(程度即出现)。

    然后,你可以计算 cosine similarity 到生成的向量。

    要提高性能,请使用 stemming / lemmatizing / stopwords NLTK库支持。