在谈论解决方案之前,您为什么不专注于内容呢?考虑到大多数电子邮件地址都以发件人的签名结尾,我认为解决您的问题会更有帮助,姓氏. 此外,无法从电子邮件地址获取此信息的概率远高于无法从内容获取信息的概率。尤其是公司电子邮件地址可能不包含电子邮件地址中的全名(姓名和姓氏的第一个字母,例如 John Travolta - jtravolta@company.com),但它必须包含作者的全名(至少名称)在最后。此外,考虑到许多电子邮件地址将只包含姓名或姓氏或两者都不包含,而是诸如 superboy122133@+++.com :D 之类的替代词。但大多数电子邮件应用程序都包含一个包含姓名和姓氏的默认标志。此外,您可以将这两种技术结合起来。也就是说,将电子邮件地址数据与电子邮件内容数据相结合,这样,
但是,如果假设您只需要使用电子邮件地址就可以做到这一点,我认为使用机器学习技术会高估或高估问题。此外,使用非机器学习技术并不意味着您正在简化解决方案,所有这些技术在正确的上下文中应用时都会产生最佳结果。让我们想象一个简单的情况:如果您知道或可以轻松推断出 [tax] = 0.2 * [salary] + 20 $,为什么要使用机器学习找到(或拟合)这个等式?
除非你有 |email address, fullname| 格式的数据,否则你不应该从使用机器学习开始。(如果您有 |email address, fullname| 数据作为选项,您将训练一个模型来学习电子邮件地址和全名之间的一般关系,从而识别相似的电子邮件地址)。
但是,在当前情况下,一种方法是在电子邮件地址中查找所有可能的模式。哪个可以
- 姓名和姓氏的第一个字母 jtravolta@+++.com
- 姓名、特殊字符和姓氏 john_travolta@+++.com
- 姓名和号码 john1954@+++.com
- ...
然后,可以将使用已识别模式从电子邮件地址中提取的这些特征与散列或使用字符串距离算法的其他电子邮件进行比较。
一种替代方法是使用所有可用姓名和姓氏的哈希字典,然后您可以从电子邮件地址中剪切片段(子字符串),然后对它们进行哈希处理以从地址中查找姓名和姓氏(当然,反之亦然,效率非常低)。将匹配具有最相似属性的电子邮件地址。
另一种解决方案是,使用上述模式,您可以生成一堆人工电子邮件地址。考虑到很可能没有包含人名和姓氏及其一个或多个电子邮件地址的数据集,数据增强是首要任务。(我不确定数据增强术语是否适合这种情况。如果不适合,那么就说数据生成)。因此,您的输入将是姓氏(您可以包括中间名、数字等),输出将是基于预定义模式的随机生成的电子邮件地址。为单个输入生成的电子邮件数量也应随机选择,但要注意多次生成相同的电子邮件地址。例如输入 -> John Travolta -> 输出 -> j_travolta12@+++.com,
然后,在您创建具有所有可能(几乎)模式的电子邮件地址后,您可以从机器学习技术中获得帮助。因此,该模型可能会为您提供相关姓名和姓氏的概率。(此外,您可以配置输出,以便为您提供概率较高的前 n 个姓名和姓氏)
需要考虑的另一件事是两个不同的人具有相同姓名和姓氏的可能性。最后,与使用哪种方法无关,您的解决方案不可能是完美的,因为例如,无法理解字符“j”代表电子邮件地址中的 John 还是 Jake。因此,如果您可以将电子邮件内容集成到您的解决方案中,那将大大提高性能。
相应地更新:检查这个答案,它不能完全回答你的问题,但上下文是相同的。