在数据库中组合不同的名称

时间:2017-02-06 14:28:06

标签: python regex database chess

我正在研究一个有超过一百万个游戏的国际象棋数据库。我有兴趣确定不同球员的一些特征。我遇到的问题是,每个玩家都会看到几个标识。

例如,

"Carlsen, M.""Carlsen, Ma""Carlsen, Magnus""Magnus Carlsen" 全部对应于玩家"Magnus Carlsen"

此外,还有其他玩家共享卡尔森的姓氏,但名称不同,例如"Carlsen, Ingrid Oen""Carlsen, Jesper"

我需要识别数据库中与每个特定玩家相对应的所有不同名称并将它们组合起来。有没有办法用Python做到这一点?

1 个答案:

答案 0 :(得分:0)

@ Ev.Kounis解决方案简单有效,我已成功使用它。大多数时候,我们只关心顶级国际象棋选手。这就是我所做的:

  • 创建了一个像@ Ev.Jounis建议的简单函数
  • 我还扫描了玩家评分。例如,我的数据库中有几个“卡尔森”玩家,但他们的FIDE评级不超过2700.
  • 我也在搜索游戏中的其他玩家。如果我对加里卡斯帕罗夫感兴趣,他就不会和1600名对手一起打一场俱乐部比赛。
  • 获得更好的数据库。 Chessgames和TWIC的质量优于Chessbase。

您可以尝试正则表达式,但这是不必要的。有一个简单 模式玩家名称会有所不同:

  

“Carlsen,M”==“Magnus Carlsen”

这适用于数据库中的其他玩家。保存正则表达式,直到你真的必须这样做。