2017-02-06 7 views
1

나는 1 백만 개 이상의 게임으로 체스 데이터베이스를 연구 중이다. 나는 다른 플레이어의 특성을 파악하는 데 관심이 있습니다. 내가 가진 문제는 각각의 싱글 플레이어가 여러 가지 신분증을 가지고 나타난다는 것입니다. 예를 들어 데이터베이스에 다른 이름 조합하기

,

"Carlsen, M.", "Carlsen, Ma", "Carlsen, Magnus""Magnus Carlsen" 모든 플레이어 "Magnus Carlsen"에 대응한다.

또한 Carlsen의 성을 공유하지만 다른 이름이있는 다른 플레이어가 있습니다 (예 : "Carlsen, Ingrid Oen""Carlsen, Jesper").

각 특정 플레이어에 해당하는 데이터베이스의 모든 다른 이름을 식별하고 결합해야합니다. 파이썬으로 그렇게 할 수있는 방법이 있습니까?

+1

"Magnus Carlsen"과 같은 입력 이름을 사용하는 alias-generator 함수를 만들 수 있으며 위에 제공된 모든 다른 조합을 생성 할 수 있습니다. 모든 플레이어에게이 작업을 수행하고, 데이터베이스를 거쳐 수집되지 않은 것을 확인하고, 발전기를 더 정교하게 만들고 반복하십시오. 파이썬으로 코드를 작성할 수 있으므로 기술을 사용하십시오. 여기서 마법의 해결책이 없습니다. –

+0

큰 체스 데이터베이스 인 경우 동일한 식별자 문자열이 다른 두 플레이어에게 사용되는 모호한 점이 분명히 있습니다. – schwobaseggl

+0

Ev. Kounis 그것은 실제로 해결책이지만 불행히도 데이터베이스는 거대합니다 (약 100000 명의 플레이어). 그래서 나는 실용적이지 않을 것입니다. 답변 해주셔서 감사합니다! –

답변

0

@ Ev.Kounis 솔루션은 간단하고 효과적이므로 직접 사용해 보았습니다. 대부분의 경우, 우리는 최고의 체스 선수들만을 돌 봅니다. 그게 내가 무슨 짓을했는지 :

  • 는 @ Ev.Jounis 같은 간단한 기능 나는 또한 플레이어의 등급을 스캔
  • 제안 만들었습니다. 예를 들어 데이터베이스에 "Carlsen"플레이어가 몇 명 있었지만 FIDE 등급이 2700 이상인 플레이어는 없습니다.
  • 게임에서 다른 플레이어를 검색합니다. Garry Kasparov에 관심이 있다면 그는 1600 명의 상대를 가진 클럽 게임을하지 않을 것입니다.
  • 더 나은 데이터베이스를 확보하십시오. 체스 게임과 TWIC는 체스베이스보다 더 좋은 품질을 가지고 있습니다.

정규식을 사용해 볼 수도 있지만 필요하지 않습니다.

"칼슨, M"== "망 누스 칼센"이것은 데이터베이스에있는 다른 플레이어에 적용

: 플레이어 이름이 다른 것이 어떻게 간단한패턴이있다. 정말로 정규식을 저장해야합니다.