gpt4 book ai didi

machine-learning - Spark:单词分类

转载 作者:行者123 更新时间:2023-11-30 08:55:08 26 4
gpt4 key购买 nike

我有一个关于Spark中单词分类的问题。我正在研究一个简单的分类模型,该模型将一个单词(一个单词)作为输入,并预测指定人的种族(来自虚拟宇宙)。例如,Gimli->矮人,Legolas-> elf。

我的问题是如何处理单词。我知道Spark包含两种功能向量化方法,即tf–idf和word2vec。但是,我很难理解它们,也不知道该使用哪一个。

谁能向我解释它们并指导整个过程?更重要的是,我想知道哪种方法最适合这种情况。

谢谢

最佳答案

首先,我们应该清楚,正确的方法将取决于数据。 *

此任务称为语言检测或语言识别。即使对于整个句子或页面,整个单词的向量也不是正确的方法。 (它仅适用于您在训练中实际遇到的名称,例如列表,没有实际的预测。)相反,您需要一个基于字符的n元语法模型。例如,在bigram模型中:
  “ Gimli”->“ _G Gi im ml li i_”

不幸的是,您不能立即使用pyspark.ml.feature.NGram,因为它假定一个gram是一个单词,而不是一个字符。

该怎么办?

您必须首先查找或编写a function to do this transform to character n-grams,并将其应用于原始名称和系统中的查询。 (如果名称包含空格,则也将其视为字符。)

然后,在Spark terminology中,这些字符n-gram是您的“单词”,而包含所有字符(例如“ _G Gi im ml li i_”)的字符串是您的“文档”。

(而且,如果您愿意,现在可以使用NGram:将单词拆分为['G i m l i'],然后使用n = 2的NGram应该等同于拆分为['_G', 'Gi', 'im'...]。)

一旦以这种方式进行构架,它将成为标准文档分类问题(实际上是严格的Spark术语中的“回归”),Spark为此具有a few options。需要注意的主要一点是,顺序很重要,请勿使用将其当作一句话来对待的方法。因此,尽管可以使用TF-IDF对所有Spark分类示例进行矢量化处理(并且在您的情况下也不会完全失败),但由于我认为每个字符n-gram的顺序/上下文实际上很重要,因此它不是最佳的。

就优化准确性而言,可能会围绕字母,特殊字符,区分大小写,词干等进行细化。这取决于您的数据-参见下文。 (如果发布了指向整个数据集的链接,那将很有趣。)

:*关于数据和假设:
字符n-gram方法非常适合从地球上识别实际的人类语言。即使是人类语言,也有一些特殊情况,例如名称之类的文字,例如可以使用汉字,或者像海地语或塔哥洛语这样的语言,其中许多名称只是法语或西班牙语,或者是波斯语或乌尔都语,而它们只是阿拉伯语-发音不同,但拼写相同。)

我们知道主要人类语言中单词的基本问题和技巧,但就我们所知,您数据中的名称是:
-随机或混合字母
-包含通常在网址中更常见的特殊字符,例如“ /”或“ _”
-是数字

同样有趣的是它们如何与组成员身份相关联的问题。例如,命名可能是从字母字符或简单的英语名称列表中随机生成的,或者是使用任何其他方法生成的,然后随机分配给A或B类。在这种情况下,无法预测名称是否但A或B的成员却看不见。也有可能以A的出生日期命名,而B则以其出生的星期几命名。在这种情况下,有可能但并非没有更多信息。

在其他情况下,再次使用相同的生成器,但是根据以下内容将名称分配给A或B:
-长度,即字符/字节/元音/大写字母的数量(<或> =截止)
-长度,即...的数量(偶数或奇数)
在这些情况下,必须提取一组完全不同的特征。

在另一种情况下,B的名称始终是重复的块,例如“ johnjohn”。在这种情况下,字符n元语法频率比随机猜测更好,但不是最佳方法。

因此,您将始终需要有关该问题的一些直觉。从您提供的两个示例中,我们很难假设一个人造世界,我们可能会假设这些名称有些像英语。最后,您必须尝试不同的方法和功能(理想情况下,选择的任何分类器都将忽略无用的信号)。至少在现实世界中,单词计数,字符计数和字节计数之类的功能实际上可用于解决此问题-它们可以增强字符n-gram方法。

关于machine-learning - Spark:单词分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32752216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com