John10 , michaelscott, James.white , Jr.Jones , James-Anderson , WhiteWalter10 -- 这些是可能的用户名的一些不同情况(可能还有更多)。我有大约 200K 这样的用户名。我需要从所有这些中提取名字。如果只有名字不可能,那么至少只有相关名称(例如 - WhiteWalter10 应该只给出 Walter 或 White and Walter )。我已经有一个姓氏数据集,所以我可以过滤名字
从用户名中提取名字
数据挖掘
Python
nlp
文本挖掘
2022-02-26 16:09:51
1个回答
我认为你最好的选择是地名录方法。如果您访问此链接,您会发现大量包含现有名字列表的数据集。这应该可以帮助您使用正则表达式检测绝大多数名字。
现在,您可以采取一些预处理步骤:
- 删除任何数字、标点符号等。
- 如果您有大写字母,您可以拆分用户名,使“MichaelScott”变为“Michael”和“Scott”。现在,在这种情况下,您最终会得到两个可能是名字的东西。您可以假设第一个是名字,第二个是姓氏。
完成此操作后,请查看未检测到名字的用户名。现在,很可能是用户名不包含任何名字(即 user123213543),或者用户有点厚脸皮,可以使用特殊字符或数字来写他们的名字(即 $am、B0b 等) . 如果存在这些情况,您可以制定策略来处理它们。
其它你可能感兴趣的问题