如何找到合适的算法来构建基于自然语言的两个数据的模型

数据挖掘 机器学习 Python nlp python-3.x 卡格尔
2022-03-05 03:43:37

我想做什么

我想创建一个模型来从名称推断国籍,并创建以下数据框,结合来自 Kaggle 的两个数据集。

泰坦尼克号:灾难中的机器学习(input/titanic/train.csv)

泰坦尼克号

    PassengerId Nationality Name
0   1   CelticEnglish   Braund
1   2   CelticEnglish   Cumings
2   3   Nordic  Heikkinen
3   4   CelticEnglish   Futrelle
....

问题

如何使用以下两个数据找到构建第一个模型的算法:国籍和姓名?

由于都是自然语言,所以我可以理解使它们成为向量是必不可少的,这个问题将是多值分类。

但是,我不知道如何找到算法来训练这个数据集。

1个回答

没有专门针对此任务的算法,您需要自己设计流程(就像大多数任务一样)。

鉴于目标是使用人名作为指示,我建议您将名称表示为特征中字符 n-gram 的向量。

二元组示例 (n=2):

"Braund" = [ #B, Br, ra, au, un, nd, d# ]

直观地说,模型的目标是找到更具体的国籍的字母序列。您可以尝试使用 unigrams、bigrams 或 trigrams(越高n,训练所需的数据越多)。

一旦名称以这种方式表示为特征,您就可以训练任何类型的监督模型,例如决策树或朴素贝叶斯。