Artificial intelligence 多语言数据的特征选择和无监督学习&x2B;机器学习算法选择

Artificial intelligence 多语言数据的特征选择和无监督学习&x2B;机器学习算法选择,artificial-intelligence,nlp,machine-learning,data-mining,classification,Artificial Intelligence,Nlp,Machine Learning,Data Mining,Classification,问题 我想将数千个网站分类/分类/集群/分组在一起。我们可以利用一些数据进行训练,这样我们就可以进行有监督的学习,但我们收集的不是数据,我们也不坚持使用这些数据,所以我们也在考虑无监督学习 我可以在机器学习算法中使用哪些功能来处理多语言数据?请注意,其中一些语言可能没有在自然语言处理领域中处理过 如果我要使用无监督学习算法,我是否应该按语言划分数据,并以不同的方式处理每种语言?不同的语言可能有不同的相关类别(或者没有,取决于你的心理语言学理论倾向),这可能会影响划分的决定 我在考虑使用决策树,

问题

我想将数千个网站分类/分类/集群/分组在一起。我们可以利用一些数据进行训练,这样我们就可以进行有监督的学习,但我们收集的不是数据,我们也不坚持使用这些数据,所以我们也在考虑无监督学习

  • 我可以在机器学习算法中使用哪些功能来处理多语言数据?请注意,其中一些语言可能没有在自然语言处理领域中处理过

  • 如果我要使用无监督学习算法,我是否应该按语言划分数据,并以不同的方式处理每种语言?不同的语言可能有不同的相关类别(或者没有,取决于你的心理语言学理论倾向),这可能会影响划分的决定

  • 我在考虑使用决策树,或者支持向量机(SVM),以允许更多的功能(根据我对它们的理解)。建议使用随机林而不是支持向量机。有什么想法吗

欢迎采用务实的方法!(理论上也是如此,但这些可能会留到以后玩。)

某些上下文

我们正在尝试用3到5种语言对数千个网站的语料库进行分类(可能多达10种,但我们不确定)

我们有数百个已经分类的网站形式的培训数据。然而,我们可以选择使用或不使用该数据集——如果其他类别更有意义,我们可以不使用我们拥有的训练数据,因为这不是我们首先收集的数据。我们正处于从网站上抓取数据/文本的最后阶段

现在我们必须就上述问题作出决定。我已经用Brown语料库和Brill tagger做了一些工作,但由于多语言问题,这将不起作用


我们打算使用机器学习软件包。

根据您提供的上下文,这是一个有监督的学习问题。 因此,您正在进行分类,而不是聚类。如果我误解了,请更新你的问题,这样说

我将从最简单的特征开始,即对页面的Unicode文本进行标记,并使用字典将每一个新的令牌转换为一个数字,并简单地考虑令牌的存在作为特征。 接下来,我将使用我能使用的最简单的算法——我倾向于使用朴素贝叶斯,但是如果你有一个简单的方法来运行SVM,这也很好

将您的结果与一些基线进行比较——比如为所有页面分配最频繁的类


最简单的方法足够好吗?如果没有,就开始迭代算法和功能。

如果你选择受监督的方式,那么网页使用多种语言这一事实应该不会有什么区别。如果你使用词汇特征(bag-o'-words风格),那么每种语言最终都会产生不相交的特征集,但这没关系。所有的标准算法都可能给出可比的结果,所以只需选择一个,然后继续。我同意Yuval的观点,NaiveBayes是一个很好的起点,只有当它不能满足您的需求时,才尝试使用SVM或随机森林

但是,如果你选择无监督的方式,那么文本并非都使用同一种语言这一事实可能是一个大问题。任何合理的聚类算法都将首先按语言对文本进行分组,然后在每个语言簇内按主题(如果您使用内容词作为特征)进行分组。这是一个bug还是一个特性将完全取决于您为什么要对这些文本进行分类。如果重点是按主题对文档进行分组,而不考虑语言,那么这是不好的。但是如果你对每种语言都有不同的分类没问题的话,那么是的,你就有了和其他语言一样多的分类问题

如果您确实想要一组统一的类,那么您需要某种方法跨语言链接类似的文档。是否有超过一种语言的文档?如果是这样的话,你可以把它们当作一种统计罗塞塔石,用来连接不同语言中的单词。然后,使用类似潜在语义分析的方法,您可以将其扩展到二阶关系:不同语言中的单词从未出现在同一文档中,但往往与出现在同一文档中的单词同时出现。或者,您可以使用锚文本或URL属性之类的东西,以独立于语言的方式为文档分配一个粗略的分类,并以此作为开始的一种方式


但是,老实说,在不清楚类是什么(或者至少什么算是好的分类)的情况下讨论分类问题似乎很奇怪。完成课程是最困难的部分,也是决定项目成败的部分。实际的算法部分相当死记硬背。

主要答案是:尝试不同的方法。没有实际的测试,很难预测哪种方法会给出最好的结果。所以,我将提出一些我将首先尝试的方法,并描述它们的优缺点

首先,我建议监督学习。即使数据分类不是很准确,它仍然可能比无监督聚类提供更好的结果。其中一个原因是聚类过程中使用了许多随机因素。例如,k-means算法在启动过程时依赖于随机选择的点,这可能导致不同程序运行的结果非常不同(尽管x-means修改似乎规范了这种行为)。只有当底层元素在特征空间中产生分离良好的区域时,聚类才会产生良好的结果

处理多语言数据的方法之一是