python - 如何检查名字和姓氏是否为英文?

标签 python nltk wordnet

我有一个 csv 文件,它有两列和大约 9,000 行。第 1 列包含调查中受访者的名字,第 2 列包含调查中受访者的姓氏,因此每一行都是一个观察值。

这些调查是在一个非常多样化的地方进行的。我试图找到一种方法来判断受访者的名字是否来自英语(英国或美国)。他的姓也一样。

这个任务离我的专业领域很远。看完网上有趣的讨论here , 和 here .我想过三种方式:

1- 获取最常见的三胞胎(3 个字母的家族在英语中经常一起出现)或四胞胎(4 个字母的家族在英语中经常一起出现)的数据集,并检查每个名字和姓氏是否包含这些字母家族。

2- 使用英国名字的数据集(比如 20 世纪早期英国最常见的 X 个名字,并根据与我的数据集的接近程度匹配这些名字。我认为这些数据集可能不错,data1data2 , data3 .

3- 使用 python 和接口(interface)来检测(最有可能)英语和非英语的内容。

如果有人对此有建议,可以分享经验等,那就太好了!

我附上了一个数据示例(我编造了名称)和预期输出。

注意:请注意,我完全清楚根据英语/非英语二分法对名称进行分类并非没有缺点和语义问题。

enter image description here

enter image description here

最佳答案

我不久前构建了一些非常相似的东西。总结如下。

  1. 创建了 2 个源列表,一个名字列表和一个姓氏
  2. 创建了 4 个以上的比较列表(英文名字列表、英文姓氏列表等)
  3. 然后使用 in_array 函数将源名字与比较名字进行比较
  4. 然后我使用一个大的 if 语句来相互检查列表。 Eng.First vs Src.First,American.First vs Src.First,Irish.First vs src.First。

等等。如果您正在考虑使用您的第一个项目符号作为一个选项(例如,名称的组成部分,我写了一篇论文,其中也包含一些源代码,这可能会有所帮助。

Ordered Match Ratio as a Method for Detecting Program Abuse / Fraud

关于python - 如何检查名字和姓氏是否为英文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65967459/

相关文章:

python - 使用多个线程下载单个文件

python - Django 查询性能过滤与外键集查找

python - 如何将数据框的列修改为值

Python NLTK : How to tag sentences with the simplified set of part-of-speech tags?

python - Nltk 的 wordnet lemmatizer 未对所有单词进行词形还原

python - 如何将 IP 地址转换为可用作字典键的 32 位地址

python - 通过 PIP 在虚拟环境上安装 NLTK - Python3 - Windows 64 位

python - 斯坦福解析器的 nltk 接口(interface)

python - 无意义的空间名词

semantic-markup - 查找与名词输入相关的形容词