Python 在数据库中组合不同的名称
我正在研究一个有超过一百万个游戏的国际象棋数据库。我对识别不同玩家的一些特征感兴趣。我遇到的问题是,每个玩家都有几个标识 比如说,Python 在数据库中组合不同的名称,python,regex,database,chess,Python,Regex,Database,Chess,我正在研究一个有超过一百万个游戏的国际象棋数据库。我对识别不同玩家的一些特征感兴趣。我遇到的问题是,每个玩家都有几个标识 比如说, “Carlsen,M.”,“Carlsen,Ma”,“Carlsen,Magnus”和“Magnus Carlsen” 全部对应于播放器“Magnus Carlsen” 此外,还有其他玩家与卡尔森同名,但名字不同,如“卡尔森,英格丽德·奥恩”和“卡尔森,杰斯珀” 我需要识别数据库中所有与每个特定玩家对应的不同名称,并将它们组合起来。有没有办法用Python做到这一点
“Carlsen,M.”
,“Carlsen,Ma”
,“Carlsen,Magnus”
和“Magnus Carlsen”
全部对应于播放器“Magnus Carlsen”
此外,还有其他玩家与卡尔森同名,但名字不同,如“卡尔森,英格丽德·奥恩”
和“卡尔森,杰斯珀”
我需要识别数据库中所有与每个特定玩家对应的不同名称,并将它们组合起来。有没有办法用Python做到这一点?@Ev.Kounis解决方案简单有效,我自己也成功地使用过。大多数时候,我们只关心顶尖的棋手。我就是这么做的:
- 创建了一个简单的函数,如@Ev.Jounis
- 我还扫描了球员的评级。例如,在我的数据库中有几个“卡尔森”球员,但他们的民盟评级不会超过2700
- 我还搜索游戏中的其他玩家。如果我对加里·卡斯帕罗夫感兴趣,他就不会和一个1600级的对手打俱乐部比赛
- 获得更好的数据库。棋类游戏和TWIC比Chessbase有更好的质量
这适用于数据库中的其他玩家。保存正则表达式,直到您真正需要它为止。@Ev.Kounis解决方案简单有效,我自己也成功地使用了它。大多数时候,我们只关心顶尖的棋手。我就是这么做的:
- 创建了一个简单的函数,如@Ev.Jounis
- 我还扫描了球员的评级。例如,在我的数据库中有几个“卡尔森”球员,但他们的民盟评级不会超过2700
- 我还搜索游戏中的其他玩家。如果我对加里·卡斯帕罗夫感兴趣,他就不会和一个1600级的对手打俱乐部比赛
- 获得更好的数据库。棋类游戏和TWIC比Chessbase有更好的质量
这适用于数据库中的其他玩家。保存正则表达式,直到您确实需要这样做。您可以尝试创建一个
别名生成器
函数,该函数使用一个输入名称,例如“Magnus Carlsen”,并创建上面提供的所有这些不同组合。对所有玩家都这样做,检查数据库,看看有什么没有被拾取,使生成器更复杂,并重复。既然你能用Python编写代码,就要运用你的技能;这里没有神奇的解决方案,我担心如果这是一个大型国际象棋数据库,您肯定会有歧义,其中相同的标识符字符串用于两个不同的玩家。Ev。Kounis这确实是一个解决方案,但不幸的是数据库太大了(大约100000名玩家),所以它不实用,我感到震惊。谢谢你的回答!您可以尝试创建一个使用输入名称的别名生成器
函数,例如“Magnus Carlsen”,并创建上面提供的所有这些不同组合。对所有玩家都这样做,检查数据库,看看有什么没有被拾取,使生成器更复杂,并重复。既然你能用Python编写代码,就要运用你的技能;这里没有神奇的解决方案,我担心如果这是一个大型国际象棋数据库,您肯定会有歧义,其中相同的标识符字符串用于两个不同的玩家。Ev。Kounis这确实是一个解决方案,但不幸的是数据库太大了(大约100000名玩家),所以它不实用,我感到震惊。谢谢你的回答!