├── .gitignore
├── .readthedocs.yaml
├── .travis.yml
├── README.rst
├── RLdata
├── README.md
├── RLdata500.R
├── RLdata500.csv
└── RLdata500dupes.csv
├── mergic
├── __init__.py
├── mergic.py
└── test.py
├── setup.py
└── tennis
├── .mergic_cache
├── README.md
├── Tennis-Major-Tournaments-Match-Statistics.zip
├── diff.json
├── edited.json
├── groups.json
├── merge.csv
├── names.txt
├── rebuilt.json
├── requirements.txt
└── tennis_mergic.py
/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | mergic.egg-info/
3 | dist/
4 | AusOpen-men-2013.csv
5 | AusOpen-women-2013.csv
6 | FrenchOpen-men-2013.csv
7 | FrenchOpen-women-2013.csv
8 | USOpen-men-2013.csv
9 | USOpen-women-2013.csv
10 | Wimbledon-men-2013.csv
11 | Wimbledon-women-2013.csv
12 | .mergic_cache
13 | .coverage
14 |
--------------------------------------------------------------------------------
/.readthedocs.yaml:
--------------------------------------------------------------------------------
1 | # .readthedocs.yaml
2 | # Read the Docs configuration file
3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4 |
5 | # Required
6 | version: 2
7 |
8 | # Set the version of Python and other tools you might need
9 | build:
10 | os: ubuntu-22.04
11 | tools:
12 | python: "3.11"
13 |
14 | # Build documentation in the docs/ directory with Sphinx
15 | sphinx:
16 | configuration: docs/conf.py
17 |
18 | # We recommend specifying your dependencies to enable reproducible builds:
19 | # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
20 | # python:
21 | # install:
22 | # - requirements: docs/requirements.txt
23 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # travis-ci.org configuration
2 |
3 |
4 | language: python
5 |
6 |
7 | python:
8 | - 2.7
9 |
10 |
11 | # integrate with coveralls.io:
12 |
13 | install:
14 | - pip install coveralls
15 |
16 |
17 | script:
18 | - coverage run --source=mergic --omit=*init* mergic/test.py
19 |
20 |
21 | after_success:
22 | coveralls
23 |
--------------------------------------------------------------------------------
/README.rst:
--------------------------------------------------------------------------------
1 | .. image:: https://travis-ci.org/ajschumacher/mergic.svg
2 | :target: https://travis-ci.org/ajschumacher/mergic
3 | :alt: Build Status
4 |
5 | .. image:: https://coveralls.io/repos/ajschumacher/mergic/badge.svg
6 | :target: https://coveralls.io/r/ajschumacher/mergic
7 | :alt: Test Coverage
8 |
9 | ======
10 | mergic
11 | ======
12 | -----------------------------------------------------------
13 | workflow support for reproducible deduplication and merging
14 | -----------------------------------------------------------
15 |
16 | Say you have a bunch of strings, and some of them are different but refer to the same thing. Maybe it's just some long list, maybe it's the contents of two key columns from data sets that you'd like to merge.
17 |
18 | ::
19 |
20 | David Copperfield
21 | Lance Burton
22 | Dave Copperfield
23 | Levar Burton
24 |
25 | Here's what you can do with ``mergic``:
26 |
27 | Give ``mergic`` all your identifiers, one per line. If they are in a file called ``originals.txt``:
28 |
29 | .. code:: bash
30 |
31 | mergic calc originals.txt
32 |
33 | You will see output about the possible groupings ``mergic`` can produce based on its default distance function. (It's easy to use a custom distance function—see below.)
34 |
35 | ::
36 |
37 | num groups, max group, num pairs, cutoff
38 | ----------------------------------------
39 | 4, 1, 0, -0.909090909091
40 | 3, 2, 1, 0.0909090909091
41 | 2, 2, 2, 0.25
42 | 1, 4, 6, 0.714285714286
43 |
44 | There are 4 groupings that ``mergic`` can make with the given distance function, ranging from a group for every name to a single group for all four names.
45 |
46 | The ``num groups`` is the number of groups that ``mergic`` can make with the given ``cutoff``.
47 |
48 | The ``max group`` is the number of items in the largest group for that grouping.
49 |
50 | The ``num pairs`` column indicates the number of within-group links that correspond to the grouping. In some sense this represents how much work it is to check all the linkages that ``mergic`` is making. Thinking in groups is much better than thinking in individual pairwise comparisons, but the metric is useful for summarizing how much linking is happening.
51 |
52 | The ``cutoff`` determines which pairs of items are put in the same group. If the distance between two items is equal to or less than the ``cutoff``, those items will be grouped together.
53 |
54 | Select a cutoff to produce the grouping you would like to see. If you would like to use the cutoff 0.3 and put the results in a file called ``grouping.json``:
55 |
56 | .. code:: bash
57 |
58 | mergic make originals.txt 0.3 > grouping.json
59 |
60 | Now ``grouping.json`` contains a grouping of your original data, specified in `JSON `__. It's designed to be human-readable, and human-editable, so you can check it and improve it as needed. The largest groups will be at the top, and similar items will be near one another.
61 |
62 | ::
63 |
64 | {
65 | "Lance Burton": [
66 | "Lance Burton",
67 | "Levar Burton"
68 | ],
69 | "David Copperfield": [
70 | "Dave Copperfield",
71 | "David Copperfield"
72 | ]
73 | }
74 |
75 | There are two proposed groups, with proposed names "Lance Burton" and "David Copperfield". You probably want to copy the produced file and edit the copy.
76 |
77 | .. code:: bash
78 |
79 | cp grouping.json grouping_fixed.json
80 | # edit `grouping_fixed.json`
81 |
82 | You can edit the proposed group names—the keys of the object—if you like. The original values from the data are in the array values of the object, and you can move them around to correct the grouping. In this case you could also re-run ``mergic`` with a cutoff of 0.1 to get a correct grouping:
83 |
84 | ::
85 |
86 | {
87 | "David Copperfield": [
88 | "Dave Copperfield",
89 | "David Copperfield"
90 | ],
91 | "Lance Burton": [
92 | "Lance Burton"
93 | ],
94 | "Levar Burton": [
95 | "Levar Burton"
96 | ]
97 | }
98 |
99 | Now that ``grouping_fixed.json`` is as perfect as it can be, you can move forward.
100 |
101 | You can also compare your two JSON grouping files and see what you changed:
102 |
103 | .. code:: bash
104 |
105 | mergic diff grouping.json grouping_fixed.json > diff.json
106 |
107 | Now the file ``diff.json`` contains just what's different between ``grouping.json`` and ``grouping_fixed.json``. The ``mergic diff`` command is analogous to regular ``diff`` for text files, but it is aware of the JSON partition format so it can capture changes intelligently.
108 |
109 | You can apply changes to a ``mergic``-produced file to recover your edited version.
110 |
111 | .. code:: bash
112 |
113 | mergic apply grouping.json diff.json > grouping_new.json
114 |
115 | Now ``grouping_new.json`` is equivalent to ``grouping_fixed.json``, as you can verify:
116 |
117 | .. code:: bash
118 |
119 | mergic diff grouping_fixed.json grouping_new.json
120 | # {} // (no changes)
121 |
122 | In this way you have a complete and verifiable record of your work, at the level of whole files and also at the level of changes made by hand.
123 |
124 | The JSON grouping format is very convenient for humans, but for tabular data a merge table is more useful. A merge table has one column with the original values from your data and one column with the new keys. These are named ``original`` and ``mergic`` in the output:
125 |
126 | .. code:: bash
127 |
128 | mergic table grouping_fixed.json > merge_table.csv
129 |
130 | The file ``merge_table.csv`` looks like this:
131 |
132 | ::
133 |
134 | original,mergic
135 | Lance Burton,Lance Burton
136 | Levar Burton,Levar Burton
137 | Dave Copperfield,David Copperfield
138 | David Copperfield,David Copperfield
139 |
140 | This merge table can now be used with any tabular data system. For merges, first merge it on to both tables and then merge by the ``mergic`` key. For deduplication, merge it on to the table(s) of interest and then use the ``mergic`` column as you would have used the original data.
141 |
142 |
143 | Installation
144 | ============
145 |
146 | .. code:: bash
147 |
148 | pip install mergic
149 |
150 |
151 | Using a Custom Distance Function
152 | ================================
153 |
154 | The ``mergic`` package provides a command-line script called ``mergic`` that uses Python's built-in ``difflib.SequenceMatcher.ratio()`` for calculating string distances, but a major strength of ``mergic`` is that it enables easy customization of the distance function via the ``mergic.Blender`` class. Making a custom ``mergic`` script is as easy as:
155 |
156 | .. code:: python
157 |
158 | #!/usr/bin/env python
159 | # custom_mergic.py
160 | import mergic
161 |
162 | # Any custom distance you want to try! e.g.,
163 | def my_distance(a, b):
164 | return abs(len(a) - len(b))
165 |
166 | mergic.Blender(my_distance).script()
167 |
168 | Now ``custom_mergic.py`` can be used just like the standard ``mergic`` script!
169 |
170 | There is also a function that determines how to make a key for a group. It takes a list and returns a string. By default ``mergic.Blender`` will use the longest of a group's values (the first longest, in stable sorted order). You can also supply a custom function for generating keys.
171 |
172 |
173 | Distances You Might Like
174 | ------------------------
175 |
176 | `Levenshtein string edit distance `__: The classic! It has many implementations; one of them is `python-Levenshtein `__.
177 |
178 | .. code:: python
179 |
180 | # pip install python-Levenshtein
181 | import Levenshtein
182 | Levenshtein.distance("fuzzy", "wuzzy")
183 | # 1
184 |
185 | SeatGeek's `fuzzywuzzy `__: As described in their `blog post `__, some people have found these variants to work well in practice. Responses from ``fuzzywuzzy`` are phrased as integer percent similarities; one way to make a distance is to subtract from 100.
186 |
187 | .. code:: python
188 |
189 | # pip install fuzzywuzzy
190 | from fuzzywuzzy import fuzz
191 | 100 - fuzz.ratio("Levensthein", "Leviathan")
192 | # 50
193 |
194 | There are a ton of distances, even just within the two packages mentioned!
195 |
196 | You can also make your own!
197 |
--------------------------------------------------------------------------------
/RLdata/README.md:
--------------------------------------------------------------------------------
1 | # RLdata
2 |
3 | Data from the `R` `RecordLinkage` package.
4 |
--------------------------------------------------------------------------------
/RLdata/RLdata500.R:
--------------------------------------------------------------------------------
1 | # install.packages('RecordLinkage')
2 | library('RecordLinkage')
3 | data(RLdata500)
4 | write.table(RLdata500, "RLdata500.csv",
5 | row.names=FALSE, col.names=FALSE,
6 | quote=FALSE, sep=",", na="")
7 |
8 | RLdata500lines <- read.table("RLdata500.csv")
9 | RLdata500lines$id <- identity.RLdata500
10 | RLdata500pairs <- merge(RLdata500lines, RLdata500lines, by='id')
11 | RLdata500dupes <- subset(RLdata500pairs, V1.x != V1.y)
12 | RLdata500dupes <- subset(RLdata500dupes, !duplicated(id))
13 | RLdata500dupes$id <- NULL
14 | write.table(RLdata500dupes, "RLdata500dupes.csv",
15 | row.names=FALSE, col.names=FALSE,
16 | sep=",")
17 |
--------------------------------------------------------------------------------
/RLdata/RLdata500.csv:
--------------------------------------------------------------------------------
1 | CARSTEN,,MEIER,,1949,7,22
2 | GERD,,BAUER,,1968,7,27
3 | ROBERT,,HARTMANN,,1930,4,30
4 | STEFAN,,WOLFF,,1957,9,2
5 | RALF,,KRUEGER,,1966,1,13
6 | JUERGEN,,FRANKE,,1929,7,4
7 | GERD,,SCHAEFER,,1967,8,1
8 | UWE,,MEIER,,1942,9,20
9 | DANIEL,,SCHMIDT,,1978,3,4
10 | MICHAEL,,HAHN,,1971,2,27
11 | PETER,,JUNG,,1988,1,9
12 | MANFRED,,HOFFMANN,,1933,8,25
13 | MICHAEL,,FISCHER,,1951,7,1
14 | MANFRED,,BECKER,,1973,7,27
15 | WALTER,,SCHNEIDER,,1953,8,26
16 | MARTIN,,SCHROEDER,,1988,2,3
17 | ALEXANDER,,MUELLER,,1974,9,9
18 | HANS,,SCHAEFER,,2003,6,22
19 | STEFAN,,MUELLER,,1949,8,13
20 | GERHARD,,SCHAEFER,,1964,4,29
21 | DENNIS,,SCHAEFER,,1956,4,11
22 | THORSTEN,,KLEIN,,1966,9,20
23 | PETER,,BRANDT,,1997,4,1
24 | WALTER,,FISCHER,,1997,4,7
25 | MATTHIAS,,HAAS,,1955,7,8
26 | WOLFGANG,,WOLF,,1961,12,28
27 | BENJAMIN,,MUELLER,,1997,4,19
28 | JAN,JUERGEN,SCHAEFER,,1946,5,25
29 | PETER,,WINTER,,1958,8,18
30 | SVEN,,BRAUN,,1994,1,22
31 | WOLFGANG,,LEHMANN,,1971,1,3
32 | CHRISTIAN,JENS,SCHULZ,,2008,5,18
33 | ANDREAS,FRANK,SCHUMACHER,,1928,7,7
34 | HEINZ,,BOEHM,,1938,12,20
35 | HARALD,,BECKER,,1951,2,24
36 | KURT,,SCHMIDT,,1998,4,27
37 | HARTMHUT,,HOFFMSNN,,1929,12,29
38 | HORST,,ENGEL,,1999,2,27
39 | DIETER,,NEUMANN,,1994,6,20
40 | WOLFGANG,,SCHMITT,,1986,11,29
41 | SVEN,,SCHUMACHER,,2008,2,27
42 | DIETER,,WEISS,,1945,1,10
43 | GERD,,BAUERH,,1968,7,27
44 | THORSTEN,,HARTMANN,,1935,3,11
45 | FRIEDRICH,,PETERS,,1954,10,16
46 | HERMANN,,MAIER,,1999,10,12
47 | HELMUT,,MUELLER,,1930,7,30
48 | WERNER,,KOERTIG,,1965,11,28
49 | WOLFGANG,,SEIDEL,,1974,2,5
50 | STEFAN,,MUELLER,,1957,6,7
51 | DIETER,,WINTER,,2000,8,20
52 | HOLGER,,SCHNEIDER,,1931,4,2
53 | JUERGEN,,SCHMIDT,,1956,7,23
54 | THORSTEN,,WEBER,,1965,11,21
55 | JENS,,SCHMIDT,,1961,1,10
56 | PETER,GUENTHER,ZIMMERMANN,,1996,2,10
57 | MARTIN,,HERRMANN,,1944,8,13
58 | FRANK,,MUELLDR,,1978,5,20
59 | BERND,,JUNG,KLEIN,1935,1,14
60 | THORSTEN,,FUCHS,,1952,9,27
61 | ANDRE,,FISCHER,,1943,6,25
62 | SIEGFRIED,,BRANDT,,1982,2,14
63 | DIETER,,BOEHM,,1972,7,1
64 | JUERGEN,,MEIER,,1983,7,7
65 | OTTO,,WERNER,,1926,4,12
66 | KARL,,WEBER,,1934,10,14
67 | GERHARD,,MEYER,,1959,12,3
68 | PETEVR,,FUCHS,,1972,9,12
69 | GUENTHER,,ZIMMERMANN,,1999,1,19
70 | PETER,,SCHULZ,,1927,7,19
71 | CHRISTIAN,,GROSS,,1959,4,7
72 | HARTMUT,,HOFFMANN,,1929,12,29
73 | JUERGEN,,MUELLER,,1946,11,22
74 | JOHANNES,,MUELLER,,1963,12,16
75 | KARL,,KAISER,,1966,9,12
76 | ANDREAS,,ZIEGLER,,1964,5,5
77 | HOLGER,,FISCHER,,1984,4,15
78 | STEFAN,,BRAUN,,1997,12,30
79 | ANDREAS,,KUEHN,,1950,11,2
80 | HORST,,KRAUSE,,1946,8,28
81 | MANFRED,,KLEIN,,1969,8,3
82 | FRANK,,SCHMIDT,,2003,6,13
83 | STEFAN,,SCHULZ,,2001,9,12
84 | BERND,,SEIDEL,,2007,2,16
85 | THORSKTEN,,MARTIN,,1995,11,15
86 | GERHARD,,MEYER,,1941,11,25
87 | HANS,,SCHULZE,,1972,11,27
88 | KARL,,HOFFMANN,,1944,10,21
89 | DETLEF,,SCHMIDT,,1937,4,6
90 | MICHAEL,,SCHAEFER,,1991,5,30
91 | ANDREAS,,MAYER,,1959,12,24
92 | HEINZ,,LEHMANN,,1948,9,25
93 | MARTIN,,KUEHN,,1959,10,8
94 | BERND,,FRANK,,1933,1,30
95 | WERNER,,KRAEMER,,1938,1,1
96 | THOMAS,,HUBER,,1966,11,29
97 | RAINER,,KOCH,,1972,8,18
98 | JOERG,,KELLER,,1947,6,26
99 | KLAUS,,SCHUBERT,,1955,10,6
100 | WOLFGANG,,SCHMIDT,,2005,6,30
101 | MANFRED,ANDREAS,SCHULZ,,1998,4,9
102 | WALTER,,SCHMIDT,,1969,5,2
103 | KLAUS,,SCHUMACHER,,1929,6,18
104 | HORST,,RICHTER,,1930,5,27
105 | HORST,,SCHNEIDER,,1983,1,3
106 | ANDRE,,MUELLER,,1976,2,25
107 | MATTHIAS,,HAAS,,1955,8,8
108 | GERHARD,,FRIEDRICH,,1987,2,10
109 | GUENTHER,,STEIN,,1975,8,14
110 | MARTIN,,HOFFMANN,,1971,1,19
111 | HEINZ,,BOEHMR,,1938,12,20
112 | GERHARD,,ERNSR,,1980,12,16
113 | WOLFGANG,,VOGEL,,1995,1,4
114 | FRIEDRICH,,WEBER,,1948,8,24
115 | DIETER,,WINKLER,,1964,11,3
116 | GERHARD,,ERNST,,1980,12,16
117 | HANS,,SCHULZE,,1972,11,28
118 | WILFRIED,,HOFFMANN,,1994,10,20
119 | ALEXANDER,,FRIEDRICH,,1968,8,14
120 | FRANK,,BERGMANN,,1998,11,8
121 | HANS,,SCHMIDT,,1935,6,25
122 | THOMAS,,MAIER,,1941,4,5
123 | CHRISTIAN,,KOERTIG,,1967,9,11
124 | SIEGFRIED,,MUELLER,,1925,9,26
125 | CHRISTIAN,,MUELLEPR,,1974,8,9
126 | HEINZ,,SCHULZ,,1971,9,23
127 | KARL,,KLEIN,,2002,6,20
128 | FRANK,,KRUEGER,,1997,2,10
129 | MICHAEL,,VOGEL,,1967,8,26
130 | MICHAEL,,MEYER,,1988,1,31
131 | WERNER,,SCHMITZ,,1968,8,14
132 | THOMAS,,MOELLER,,1930,1,18
133 | STEFAN,,BRAUN,,1947,12,30
134 | THOMAS,,JUNG,,1949,9,30
135 | KARL,,SIMON,,1954,5,30
136 | KURT,,FISCHER,,1968,4,7
137 | FRIEDRICH,,SCHUBERT,,1930,8,15
138 | GUENTHER,,THOMAS,,1957,2,14
139 | GUENTHER,,HOFMANN,,1942,8,27
140 | BERND,,WOLF,,1940,8,30
141 | KLAUS,,MEIER,,1983,11,10
142 | KARL,,KLEIBN,,2002,6,29
143 | MANFRED,,WOLF,,1954,5,24
144 | WOLFGANG,,ENGEL,,1936,12,27
145 | HARALD,,WEBER,,1977,6,1
146 | ANDREAS,,ZIEGLER,,1962,12,6
147 | MICHAEL,,MYER,,1988,1,31
148 | FRANK,,MUELLER,,1978,5,20
149 | BERND,,FISCHER,,1947,3,20
150 | MICHAEL,,KELLER,,1965,3,19
151 | MARTIN,,BAUMANN,,1939,4,25
152 | WALTER,,SCHROEDER,,1998,3,28
153 | FRANK,,MUELLER,,2000,6,22
154 | HORST,,GUENTHER,,1926,7,2
155 | UWE,,KRAEMER,,1981,9,9
156 | ULRICH,,WEISS,,1992,7,19
157 | HELMUT,,ZIEGLER,,1971,8,11
158 | PETER,,BECKER,,1960,9,5
159 | SVEN,,STEIN,,1960,10,14
160 | WOLFGANG,,SCHULTE,,1963,9,4
161 | MANFRED,,SCHAEFER,,1983,3,11
162 | STEFAN,,MEYER,,1960,2,23
163 | RAINER,,ALBRECHT,,1976,11,10
164 | FLORIAN,,KLEIN,,1928,6,21
165 | FRANK,,BERGKANN,,1998,11,8
166 | BERNHARD,,WERNER,,1974,2,14
167 | KLAUS,,MOELLER,,1989,3,10
168 | INGO,,VOGEL,,1976,5,22
169 | GERD,,LUDWIG,,1953,12,25
170 | MARTIN,,HOFFMANN,,1935,11,26
171 | SVEN,,HUBER,,1951,10,1
172 | NORBERT,,BECK,,1980,10,2
173 | UWE,,WEBER,ENGEL,1952,7,7
174 | CARSTEN,,SCHMITT,,2001,6,27
175 | ANDRE,,MUELLER,,1976,1,25
176 | MANFRED,,MEYER,,1959,10,12
177 | JOHANNNES,,SCHULZ,,1974,1,17
178 | UWE,,ALBRECHT,,1967,1,8
179 | KLAUS,,BECKER,,1956,11,1
180 | DETLEF,,LANGE,,1970,10,19
181 | WERNER,,LANGE,,1997,3,26
182 | WERNER,,RICHTER,,1984,8,28
183 | ULRICH,,MUELLER,,1962,6,19
184 | MARCEL,,SCHMITZ,,1933,6,29
185 | ANDREAS,,MEIER,,1932,12,30
186 | FRANK,,SCHMIDT,,1988,12,22
187 | THORSTEN,,MARTIN,,1995,11,15
188 | MARKUS,,SAUER,,2003,6,5
189 | WOLFGANG,,WEBER,,1954,4,8
190 | PETER,,FUCHS,,1972,9,12
191 | MARKUS,,MUELLER,,1937,11,16
192 | DIETER,,SCHNEIDER,,1968,8,21
193 | CHRISTIAN,,MUELLER,,1974,8,9
194 | FRANK,,SIMON,,1935,9,20
195 | RUDOLF,,WOLFF,,1975,11,11
196 | DIETER,KLAUS,SCHMIDT,,1950,8,20
197 | JUERGEN,,FUCHS,,2007,9,20
198 | HANS,,SCHWARZ,,1926,1,18
199 | ERNST,,SCHROEDER,,1999,7,10
200 | GUENTHER,FRIEDRICH,WOLF,,1975,4,23
201 | HEINZ,,WAGNER,,1960,6,24
202 | KLAUS,,HARTMANN,,1992,11,1
203 | GERHARD,,FRIEDRICH,,1957,2,10
204 | CARSTEN,,BRANDT,,1938,1,14
205 | CHRISTIAN,,GROSS,,2008,4,7
206 | JAN,,SCHULZ,,1938,9,6
207 | JOHANNES,,SCHULZ,,1974,1,17
208 | KLAUS,,HOFFMANN,,1966,8,1
209 | ROLBF,,NEUMANN,,1967,3,29
210 | PETER,,SCHUBERT,,1961,12,3
211 | LARS,,MAYER,,1929,6,25
212 | STEFAN,,HOFFMANN,,2000,4,15
213 | UWE,,GROSS,,1982,5,27
214 | JENS,,WEBER,,1959,7,24
215 | STEFAN,,MUELLER,,2004,4,20
216 | DIETER,,SCHNNIDER,,1968,8,21
217 | HORST,,MEIER,,1977,6,6
218 | GUENTHER,,SCHMIDT,,2006,10,29
219 | KLAUS,,SCHMIDT,SCHMIDT,1997,12,15
220 | MICHAEL,,KUEHN,,1943,10,9
221 | PETER,,FRANKE,,1973,8,19
222 | HEINRICH,,SCHMITZ,,1957,5,31
223 | VOLKER,,GROSS,,1981,8,2
224 | KLAUS,,SCHMITT,,1980,4,23
225 | WILHELM,,MARTIN,,1964,12,22
226 | THOMAS,,SCHUSTER,,1978,7,25
227 | ROLF,,NEUMANN,,1967,3,29
228 | OLIVER,,HERRMANN,,1964,4,5
229 | PETERS,,BECKER,,1960,9,5
230 | BERND,,MUELLER,,1944,11,16
231 | MANFRED,,SCHAEFER,,2007,7,13
232 | MARTIN,,SCHMIDT,,1974,2,6
233 | THORSTEN,,FISCHER,,1937,7,19
234 | STEFAN,,MUELLER,,1957,6,1
235 | HARALD,,SCHNEIDER,,1983,5,17
236 | INGO,,FUCHS,,1941,1,15
237 | STEFAN,,KOEHLER,,1977,4,27
238 | WERNIER,,KOERTIG,,1965,11,28
239 | THORSTEN,,KRAUSE,,1975,6,19
240 | HARALD,,WEBER,,1977,6,2
241 | CHRISTIAN,ALEXANDER,HERRMANN,,1982,7,9
242 | BENJAMIN,,MUELLER,,2005,4,20
243 | WOLFGANG,,MUELLER,,1959,2,8
244 | DIETER,,MEYER,,1967,6,16
245 | FRIEDRICH,,MARTIN,,1938,1,20
246 | HANS,,BECKER,,1940,2,6
247 | DIETER,,SCHWARZ,,1996,6,12
248 | HORST,,MEIER,,1972,6,6
249 | ROLF,,KOERTIG,,1934,9,9
250 | GERHARD,,SCHWARZ,,1959,6,22
251 | BAERBEL,,JAEGER,,1956,6,26
252 | INGRID,,KOERTIG,,1960,5,6
253 | SABINE,,SCHULZ,,1996,5,15
254 | STEFANIE,,FISCHER,,1943,11,25
255 | ANNA,,SCHMIDT,,1976,3,1
256 | STEFANIE,,WEBER,,1964,11,24
257 | GERDA,,SCHWARZ,,1975,12,14
258 | SABINE,,HARTMANN,,1939,6,16
259 | GISELA,,BRAUN,,1949,12,22
260 | BRIGITTE,,JAEGER,,1982,12,15
261 | INGRID,,FRIEDRICH,,1949,6,15
262 | RENATE,,VOGT,,1956,9,17
263 | NICOLE,,WEBER,,1947,7,2
264 | HEIKE,,THOMAS,,1982,3,27
265 | MARIANNFE,,MOELLER,,1961,9,17
266 | KARIN,,HORN,,2002,6,4
267 | ANGELA,,STEIN,,2002,8,30
268 | GABRIELE,GISELA,MEIER,,1961,4,10
269 | RENATE,,KRAUSE,,1945,12,11
270 | MARION,,HOFMANN,,1964,5,12
271 | UTE,,BRAUN,,1975,3,3
272 | MONIKA,,WEISS,,1994,8,19
273 | ANGELIKA,,BERGER,,1994,10,12
274 | HILDEGARD,,POHL,,1985,7,11
275 | HELGA,,WOLF,,1980,2,17
276 | URSULA,,BECK,,1956,7,26
277 | ERIKA,EDITH,BECKER,,1970,7,12
278 | SABINE,,MAIER,,1950,4,19
279 | HERTHA,,MOELLER,,1988,10,12
280 | STEFANIE,,LANGE,,1978,11,10
281 | ERIKA,,FRIEDRICH,,1928,8,19
282 | GISELA,,KUHN,,1967,7,20
283 | ANNA,,LANGE,,1998,3,29
284 | RENATE,,ENGEL,,1975,2,19
285 | ERIKA,,WEBER,,1995,2,1
286 | MARIA,,SCHROEDER,,1955,1,11
287 | HELGA,,SAUER,,1946,8,27
288 | HILDEGARD,,MEYER,,1965,10,3
289 | CHRISTINE,,PETERS,,1993,2,5
290 | HELGA,ELFRIEDE,BERGER,,1989,1,18
291 | SABINE,,VOGT,,1968,4,8
292 | ANDREA,,SCHWARZ,,1949,6,17
293 | KARIN,,MARTIN,,1954,10,22
294 | HANNELORE,,WEBER,,1953,3,31
295 | HANNELORE,,BAUER,,1952,3,23
296 | HEIKE,,HARTMANN,,1948,12,27
297 | ANDREA,,WEBER,,1945,5,29
298 | SONJA,,FISCHER,,1989,7,17
299 | ERIKA,,SCHMITZ,,1936,12,10
300 | SABINE,ELKE,BRANDT,,1941,5,2
301 | MARIA,,WOLF,,1971,11,2
302 | ANKE,,KOCH,,1963,5,3
303 | BRIGITTE,,SCHUSTER,,1933,2,25
304 | ILSE,,SIMON,,1972,9,1
305 | CLAUDIA,,GUENTHER,,1934,5,27
306 | ANJA,,KLEIN,,1967,1,27
307 | ILSE,,SCHMIDT,,1924,12,26
308 | BRITTA,,VOGT,,1941,8,1
309 | KARIN,,MUELLER,,1947,8,29
310 | MONIKA,,SCHNEIDER,,1937,6,2
311 | BIRGIT,,KOCH,,1970,11,24
312 | STEFANIE,,WEISS,,1971,9,11
313 | URSULA,BIRGIT,MUELLRR,,1940,6,15
314 | RENATE,,SCHUTE,,1940,12,29
315 | ANNA,WALTRAUD,FISCHER,,1958,11,27
316 | URSULA,,FISCHER,,1995,5,21
317 | ANDREA,,FISCHER,,1956,2,14
318 | ANJA,,BRAUN,,1997,9,20
319 | HEIKE,,BAUER,,2008,7,2
320 | MONIKA,,FRANKE,,1970,1,6
321 | ANKE,,WAGNER,,1934,8,27
322 | ANNA,,LANGK,,1998,3,29
323 | GABRIELE,,BECKER,,1944,1,31
324 | GISELA,,BECKER,,1990,1,22
325 | PETRA,,MEIER,,1969,8,15
326 | GERTRUD,,WOLF,,1948,1,12
327 | CHRISTINA,,FRIEDRICH,,1968,10,1
328 | NICOLE,,SOMMER,,1929,7,29
329 | BAERBEL,,MUELLER,,1935,2,10
330 | MARIANNE,,FISCHER,,1941,12,8
331 | INGRID,,KRAJSE,,1985,9,3
332 | GERDA,,WERNER,,1982,9,25
333 | SILKE,,KOEHLER,,1967,2,14
334 | INGEBORG,,SCHMIDT,,1965,9,30
335 | ANDREA,,SCHMIDT,,1966,2,21
336 | JUTTA,,ROTH,SCHMITT,1995,2,4
337 | ELKE,,MUELLER,,1985,12,14
338 | GISELA,,MEYER,,1939,6,3
339 | HANNELORE,,KOERTIG,,1935,3,11
340 | SUSANNE,,WEBER,,1997,11,25
341 | BAERBEL,,WOLF,,1938,3,20
342 | GERTRUD,,MEYER,,1963,9,18
343 | HANNELORE,,MUELLER,,1934,7,31
344 | EDITH,,KRAUSE,,1937,2,28
345 | ANTJE,,LUDWIG,,1935,4,18
346 | URSULA,,FISCHER,,1950,9,1
347 | SABINE,,MUELLER,,1968,11,26
348 | URSULA,,RICHTER,,1947,3,30
349 | JUTTA,,KAISER,,1971,1,26
350 | GISELA,,SCHROEDER,,1929,2,4
351 | HELGA,,SCHNEIDER,,2000,4,5
352 | MONIKA,,SCHULTE,,1980,5,30
353 | INGE,,SEIDEL,,1949,9,4
354 | MARION,,NEUMANN,,1982,1,18
355 | INGEU,,SEIDEL,,1949,8,4
356 | BRIGITTE,EDITH,PETERS,,1956,8,21
357 | GERTRUD,,BAUMANN,,1926,5,26
358 | HELGA,ANNA,LANGE,,1965,9,7
359 | HELGA,,BRANDT,,1990,5,22
360 | BRIGITTE,,WAGNER,SCHULZE,1978,12,11
361 | GUDRUN,,MUELLER,,1957,10,2
362 | IRMGARD,,NEUMANN,,1940,12,9
363 | ELKE,,KOCH,,1935,2,5
364 | ANJA,,BECKER,,1947,5,25
365 | SABINE,,MEYER,,1989,5,22
366 | MONIKA,,RICHTER,,1936,1,31
367 | SABINE,,MEYER,,2006,3,17
368 | RENATE,,HOFFMANN,,1930,5,3
369 | ANGELIKA,,SIMON,,1990,6,2
370 | MONIKA,,MUELLER,,2000,8,26
371 | SABINE,,LANG,,1962,1,30
372 | ANGELIKA,,SCHROEDER,,1967,3,15
373 | INGRID,,HOFFMANN,,2005,9,18
374 | STEFANIE,,WEBER,,1972,9,7
375 | ANDREA,,FUCHS,,1959,11,12
376 | ANNA,BARBARA,FUCHS,,1991,8,27
377 | SABAINE,,OTTO,,1940,7,23
378 | MANUELA,,WINTER,,1960,8,30
379 | ERIKA,,WEBER,,1992,2,29
380 | ELKE,,SAUER,,1954,7,4
381 | ANGELIKA,NICOLE,FISCHER,,1989,10,15
382 | SABINE,,GRAF,,1980,9,5
383 | MARIA,,SCHROEDER,,1955,1,12
384 | JULIA,,HARTMANN,,1996,4,29
385 | ANGELA,,STEIN,,2062,8,30
386 | ERIKA,SABINE,NEUMANN,,1999,5,6
387 | PETRA,,FISCHER,,1979,5,22
388 | ANDREA,,WEBER,,1945,5,20
389 | URSULA,,HOFFMANN,,1929,5,12
390 | URSULA,,BERGER,,1970,10,23
391 | GABRIELE,,BECKER,,1990,3,27
392 | HELGA,,KOCH,,1957,9,2
393 | MONIKA,,KOEHLER,,1933,5,20
394 | ELISABETH,,SCHMIDT,,1960,12,1
395 | GISOELA,,BECK,,2003,4,16
396 | ANDREA,,KELLER,,1931,6,24
397 | BIRGIT,,BERGMANN,,2002,8,31
398 | MARION,,SCHMITZ,,1977,5,13
399 | CHRISTINE,,PETERS,,1993,2,6
400 | INGEBORG,,SEIDEL,,1960,1,4
401 | GABRIELE,,SAUER,,1972,6,1
402 | CHRISTA,,SCHWARZ,,1965,7,13
403 | HEIKE,,JUNG,,1932,10,12
404 | GISELA,,BECK,,2003,4,16
405 | PETRA,,GRAF,,1948,6,13
406 | MARGARETE,,FISCHER,,1971,8,12
407 | RENATE,,SCHULTE,,1940,12,29
408 | ANDREA,,SCHMIDT,,1945,2,20
409 | GISELA,ANGELIKA,WOLF,,1992,5,1
410 | ANDREA,,WEBER,,1961,5,19
411 | ANDREA,,FISCHER,,1931,9,7
412 | SILVIA,,WERNER,,1995,8,21
413 | KARIN,,FUCHS,,1961,5,7
414 | GERTRUD,,BAUMANN,,1926,5,20
415 | MARIA,,DIETRICH,,1979,2,6
416 | MARTINA,,LEHMANN,,1935,7,14
417 | KARIN,,BAUER,,1993,6,20
418 | MONIKA,KARIN,BRANDT,,1940,2,18
419 | HEIKE,,OTTO,FISCHER,1944,1,2
420 | MARIA,,DIETTRICH,,1979,2,6
421 | KARIN,,JUNG,,2007,4,9
422 | INGRID,,SCHAEFER,,1956,10,22
423 | GERTRUD,,SEIDEL,,1941,6,11
424 | SABINE,,SCHMIDT,,1984,9,9
425 | BIRGIT,,MUELLER,,1977,8,19
426 | SONJA,,SCHMIDT,,1937,6,5
427 | GISELA,,POHL,,1949,10,9
428 | FRIEDA,,MEIER,,1951,6,2
429 | ANNA,,ALBRECHT,,1964,10,22
430 | INGRID,,STEIN,,1950,3,8
431 | EDITH,,OTTO,,1951,5,14
432 | MONIYKA,,SCHNEIDER,,1937,6,2
433 | SIGRID,,HAHN,,1967,12,19
434 | ELKE,SILKE,BAUER,,1994,5,29
435 | KARIN,,BAUER,,1961,4,9
436 | PETRA,,KRAUSE,,1969,1,17
437 | KARINW,,HORN,,2002,6,4
438 | FRIEDA,,WEBER,,1978,1,18
439 | ANNA,,JAEGER,,1960,10,14
440 | SANDRA,,MEYER,,1964,10,11
441 | KATHRIN,,KOCH,,2005,12,1
442 | ELISABETH,,WEBER,,1965,9,3
443 | HANNELORE,,ALBRECHT,,1963,12,4
444 | SILKE,,MUELLER,,1962,6,14
445 | ANJA,URSULA,WEBER,,1995,6,26
446 | SUSANNE,,BECKER,,1956,1,19
447 | MARIA,,SCHAEFER,,1954,3,25
448 | SABINE,,OTTO,,1940,7,23
449 | CHRISTA,,KRUEGER,,1929,5,2
450 | SABINE,,HARTMANN,,1943,6,16
451 | KATHRIN,,VOGT,,1951,1,3
452 | GERDA,,SCHMITZ,,1964,8,8
453 | MANUELA,,ROTH,,1935,4,27
454 | HELGA,,GROSS,,1939,5,24
455 | JUTTA,,LEHMANN,SCHULZ,1974,11,7
456 | MARIANNE,,MOELLER,,1961,9,17
457 | URSULA,BIRGIT,MUELLER,,1940,6,15
458 | MARTINA,,WOLF,,1967,3,9
459 | RUTH,,BOEHM,,1956,4,12
460 | ASTRID,,MUELLER,,1951,1,18
461 | PETRA,,SCHMIDT,,1983,7,28
462 | CHRISTAH,,SCHWARZ,,1965,7,13
463 | EDITH,,SCHROEDER,,1924,9,27
464 | SONJAD,,FISCHER,,1989,7,17
465 | MARTINA,,GROSS,,1992,2,14
466 | HELGA,ELFRIEDE,BERGER,,1989,1,28
467 | ULRIKE,NICOLE,BECKRR,,1982,8,4
468 | URSULA,,WEBER,,1987,7,22
469 | PETRA,,KLEIN,,1987,3,20
470 | NADINE,,NEUMANN,,1957,2,20
471 | GABRIELE,,SCHNEIDER,,1925,6,26
472 | ULRIKE,NICOLE,BECKER,,1982,8,4
473 | ANNA,GUDRUN,ALBRECHT,,1948,10,30
474 | KARIN,,BRAUN,,1974,5,27
475 | ERNA,,WEBER,,1970,3,28
476 | EDITH,,WAGNER,,1966,12,26
477 | SABINE,,ENGEL,,1956,8,25
478 | MONIKA,,MUELLER,,2000,5,26
479 | JUTTA,,WEBER,KRUEGER,2007,9,28
480 | SUSANNE,,RICHTER,,1955,11,27
481 | SUSANNE,,KLEIN,,1969,3,15
482 | MARION,,MUELLER,,1936,12,26
483 | MARGARETE,,FISCHER,,2007,9,10
484 | RENATE,,GUENTHER,,1927,3,18
485 | HELGA,,SCHULZ,,1951,8,31
486 | GERDA,,MUELLER,,1988,7,19
487 | CHRISTINA,,SCHAEFER,,1949,9,16
488 | JULIA,,BUSCH,,1944,9,12
489 | GABRIELE,,MEYER,,2008,12,16
490 | SUSANNE,,KLEIN,,1960,3,15
491 | INGRID,,KRAUSE,,1985,9,3
492 | SILKE,,BRAUN,,1973,8,2
493 | HANNELORE,,BECKER,,1999,6,29
494 | ILSE,,NEUMANN,,1953,5,14
495 | BRITTA,,KOEHLER,,2001,1,12
496 | GABRIHELE,,BECKER,,1990,3,27
497 | SABINE,,SCHNEIDER,,1953,5,20
498 | MARIA,,SCHNEIDER,,1981,8,8
499 | INGE,,SCHREIBER,,1967,12,13
500 | KARIN,,GUENTHER,,1941,8,19
501 |
--------------------------------------------------------------------------------
/RLdata/RLdata500dupes.csv:
--------------------------------------------------------------------------------
1 | "MICHAEL,,MEYER,,1988,1,31","MICHAEL,,MYER,,1988,1,31"
2 | "HORST,,MEIER,,1972,6,6","HORST,,MEIER,,1977,6,6"
3 | "HEINZ,,BOEHM,,1938,12,20","HEINZ,,BOEHMR,,1938,12,20"
4 | "STEFAN,,BRAUN,,1997,12,30","STEFAN,,BRAUN,,1947,12,30"
5 | "MATTHIAS,,HAAS,,1955,7,8","MATTHIAS,,HAAS,,1955,8,8"
6 | "GERD,,BAUER,,1968,7,27","GERD,,BAUERH,,1968,7,27"
7 | "ROLF,,NEUMANN,,1967,3,29","ROLBF,,NEUMANN,,1967,3,29"
8 | "KARL,,KLEIBN,,2002,6,29","KARL,,KLEIN,,2002,6,20"
9 | "GERHARD,,FRIEDRICH,,1957,2,10","GERHARD,,FRIEDRICH,,1987,2,10"
10 | "HANS,,SCHULZE,,1972,11,28","HANS,,SCHULZE,,1972,11,27"
11 | "FRANK,,BERGKANN,,1998,11,8","FRANK,,BERGMANN,,1998,11,8"
12 | "GERHARD,,ERNST,,1980,12,16","GERHARD,,ERNSR,,1980,12,16"
13 | "PETEVR,,FUCHS,,1972,9,12","PETER,,FUCHS,,1972,9,12"
14 | "THORSTEN,,MARTIN,,1995,11,15","THORSKTEN,,MARTIN,,1995,11,15"
15 | "HARTMUT,,HOFFMANN,,1929,12,29","HARTMHUT,,HOFFMSNN,,1929,12,29"
16 | "CHRISTIAN,,GROSS,,1959,4,7","CHRISTIAN,,GROSS,,2008,4,7"
17 | "DIETER,,SCHNEIDER,,1968,8,21","DIETER,,SCHNNIDER,,1968,8,21"
18 | "STEFAN,,MUELLER,,1957,6,1","STEFAN,,MUELLER,,1957,6,7"
19 | "FRANK,,MUELLDR,,1978,5,20","FRANK,,MUELLER,,1978,5,20"
20 | "ANDRE,,MUELLER,,1976,2,25","ANDRE,,MUELLER,,1976,1,25"
21 | "CHRISTIAN,,MUELLER,,1974,8,9","CHRISTIAN,,MUELLEPR,,1974,8,9"
22 | "JOHANNES,,SCHULZ,,1974,1,17","JOHANNNES,,SCHULZ,,1974,1,17"
23 | "HARALD,,WEBER,,1977,6,2","HARALD,,WEBER,,1977,6,1"
24 | "WERNER,,KOERTIG,,1965,11,28","WERNIER,,KOERTIG,,1965,11,28"
25 | "PETER,,BECKER,,1960,9,5","PETERS,,BECKER,,1960,9,5"
26 | "HELGA,ELFRIEDE,BERGER,,1989,1,28","HELGA,ELFRIEDE,BERGER,,1989,1,18"
27 | "KARIN,,HORN,,2002,6,4","KARINW,,HORN,,2002,6,4"
28 | "ANDREA,,WEBER,,1945,5,20","ANDREA,,WEBER,,1945,5,29"
29 | "ANGELA,,STEIN,,2002,8,30","ANGELA,,STEIN,,2062,8,30"
30 | "URSULA,BIRGIT,MUELLER,,1940,6,15","URSULA,BIRGIT,MUELLRR,,1940,6,15"
31 | "MARIANNFE,,MOELLER,,1961,9,17","MARIANNE,,MOELLER,,1961,9,17"
32 | "GERTRUD,,BAUMANN,,1926,5,20","GERTRUD,,BAUMANN,,1926,5,26"
33 | "ANNA,,LANGE,,1998,3,29","ANNA,,LANGK,,1998,3,29"
34 | "MONIKA,,SCHNEIDER,,1937,6,2","MONIYKA,,SCHNEIDER,,1937,6,2"
35 | "SUSANNE,,KLEIN,,1969,3,15","SUSANNE,,KLEIN,,1960,3,15"
36 | "MARIA,,DIETRICH,,1979,2,6","MARIA,,DIETTRICH,,1979,2,6"
37 | "SABAINE,,OTTO,,1940,7,23","SABINE,,OTTO,,1940,7,23"
38 | "GISOELA,,BECK,,2003,4,16","GISELA,,BECK,,2003,4,16"
39 | "MONIKA,,MUELLER,,2000,8,26","MONIKA,,MUELLER,,2000,5,26"
40 | "INGRID,,KRAJSE,,1985,9,3","INGRID,,KRAUSE,,1985,9,3"
41 | "SABINE,,HARTMANN,,1939,6,16","SABINE,,HARTMANN,,1943,6,16"
42 | "ULRIKE,NICOLE,BECKER,,1982,8,4","ULRIKE,NICOLE,BECKRR,,1982,8,4"
43 | "MARIA,,SCHROEDER,,1955,1,11","MARIA,,SCHROEDER,,1955,1,12"
44 | "SONJA,,FISCHER,,1989,7,17","SONJAD,,FISCHER,,1989,7,17"
45 | "INGEU,,SEIDEL,,1949,8,4","INGE,,SEIDEL,,1949,9,4"
46 | "GABRIHELE,,BECKER,,1990,3,27","GABRIELE,,BECKER,,1990,3,27"
47 | "ERIKA,,WEBER,,1995,2,1","ERIKA,,WEBER,,1992,2,29"
48 | "RENATE,,SCHUTE,,1940,12,29","RENATE,,SCHULTE,,1940,12,29"
49 | "CHRISTINE,,PETERS,,1993,2,6","CHRISTINE,,PETERS,,1993,2,5"
50 | "CHRISTAH,,SCHWARZ,,1965,7,13","CHRISTA,,SCHWARZ,,1965,7,13"
51 |
--------------------------------------------------------------------------------
/mergic/__init__.py:
--------------------------------------------------------------------------------
1 | from .mergic import __version__
2 | from .mergic import Blender
3 | from .mergic import script
4 |
--------------------------------------------------------------------------------
/mergic/mergic.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import argparse
4 | import sys
5 | import json
6 | import csv
7 | import pickle
8 | from difflib import SequenceMatcher
9 | from itertools import combinations
10 | from collections import Counter
11 | from collections import OrderedDict
12 |
13 | __version__ = '0.0.7'
14 |
15 | # Naming convention:
16 | # A leading underscore means the function takes "self"
17 | # A trailing underscore means the function takes parser "args"
18 |
19 |
20 | def pretty_json(thing):
21 | """Prettify a Python data structure as formatted JSON."""
22 | return json.dumps(thing,
23 | ensure_ascii=False,
24 | indent=4,
25 | separators=(',', ': ')).encode('utf-8')
26 |
27 |
28 | def check(partition):
29 | """Confirm the passed dict is a partition.
30 |
31 | Parameters
32 | ----------
33 | partition : dict
34 | A partition dictionary where the values are lists. Items appear
35 | exactly once through all the value lists (they are "assigned to"
36 | their key value.)
37 |
38 | Returns
39 | -------
40 | int
41 | The number of items partitioned by the partition.
42 |
43 | Raises
44 | ------
45 | ValueError
46 | If a value appears more than once in one value list
47 | or a value appears in more than one value list.
48 |
49 | """
50 | all_items = set()
51 | for values in partition.values():
52 | value_set = set(values)
53 | if len(values) != len(value_set):
54 | raise ValueError('Duplication in {}'.format(values))
55 | already_seen = list(all_items & value_set)
56 | if len(already_seen) != 0:
57 | raise ValueError('{} in more than one group'.format(already_seen))
58 | all_items.update(values)
59 | return len(all_items)
60 |
61 |
62 | def check_(args):
63 | """Check a partition loaded from a file at the command line."""
64 | data = json.loads(args.partition.read())
65 | n = check(data)
66 | print "{} items in {} groups".format(n, len(data))
67 |
68 |
69 | def link_items(group_of, links):
70 | """Put items that are linked into the same group.
71 |
72 | Parameters
73 | ----------
74 | group_of : dict
75 | Keys are items being partitioned and values are tuples representing
76 | the group that the key is currently assigned to. Usually starts as
77 | every item pointing to a tuple containing only the item itself.
78 | links : list
79 | Contains tuples (pairs) representing items to link.
80 |
81 | """
82 | for one, other in links:
83 | if group_of[one] is group_of[other]:
84 | continue
85 | else:
86 | union = group_of[one] + group_of[other]
87 | for thing in union:
88 | group_of[thing] = union
89 |
90 |
91 | def diff(first, second):
92 | """Generate the differences from a first to a second partition.
93 |
94 | Parameters
95 | ----------
96 | first : dict
97 | second : dict
98 | Partition dictionaries where the values are lists. In each,
99 | items appear exactly once through all the value lists (they
100 | are "assigned to" their key value.)
101 |
102 | Returns
103 | -------
104 | dict
105 | A "patch" partition, for the set of values that are assigned
106 | differently in the second partition than the first. It can be
107 | applied to the first partition to generate the second.
108 |
109 | Raises
110 | ------
111 | ValueError
112 | If a value in the first partition is not assigned anywhere in
113 | the second partition or if the second partition assigns a
114 | value not found in the first partition.
115 |
116 | """
117 | mixed_from = set()
118 | mixed_to = set()
119 | patch = dict()
120 | for key, values in second.items():
121 | if set(first.get(key, [])) == set(values):
122 | del(first[key])
123 | else:
124 | patch[key] = values
125 | mixed_to.update(values)
126 | to_find = mixed_to - mixed_from
127 | for key_from, values_from in first.items():
128 | values_from = set(values_from)
129 | if to_find & values_from:
130 | mixed_from.update(values_from)
131 | del(first[key_from])
132 | not_found = to_find - mixed_from
133 | if not_found:
134 | raise ValueError(not_found)
135 | if mixed_from != mixed_to:
136 | not_assigned = mixed_from - mixed_to
137 | raise ValueError(not_assigned)
138 | return patch
139 |
140 |
141 | def diff_(args):
142 | """Check and diff two partitions loaded from files at the command line."""
143 | first = json.loads(args.first.read())
144 | check(first)
145 | second = json.loads(args.second.read())
146 | check(second)
147 | patch = diff(first, second)
148 | print pretty_json(patch)
149 |
150 |
151 | def equal(first, second):
152 | """Check a first and second partition for equality.
153 |
154 | Parameters
155 | ----------
156 | first : dict
157 | second : dict
158 | Partition dictionaries where the values are lists. In each,
159 | items appear exactly once through all the value lists (they
160 | are "assigned to" their key value.)
161 |
162 | Returns
163 | -------
164 | boolean
165 | True if the difference is empty, otherwise False.
166 |
167 | """
168 | try:
169 | patch = diff(first, second)
170 | if patch == {}:
171 | return True
172 | except ValueError:
173 | pass
174 | return False
175 |
176 |
177 | def apply_diff(partition, patch):
178 | """Apply a patch to a partition (in place).
179 |
180 | Parameters
181 | ----------
182 | partition : dict
183 | A partition dictionary where the values are lists. Items appear
184 | exactly once through all the value lists (they are "assigned to"
185 | their key value.)
186 |
187 | patch : dict
188 | A "patch" partition, for the set of values that should be
189 | assigned differently from how they are in the original
190 | partition.
191 |
192 | Returns
193 | -------
194 | None
195 | The `partition` passed is modified in place.
196 |
197 | """
198 | mixed_from = set()
199 | mixed_to = set()
200 | for key, values in patch.items():
201 | if partition.get(key) == values:
202 | # this shouldn't happen, but still...
203 | del(partition[key])
204 | else:
205 | mixed_to.update(values)
206 | to_find = mixed_to - mixed_from
207 | for key_from, values_from in partition.items():
208 | values_from = set(values_from)
209 | if to_find & values_from:
210 | mixed_from.update(values_from)
211 | del(partition[key_from])
212 | not_found = to_find - mixed_from
213 | if not_found:
214 | raise ValueError(not_found)
215 | if mixed_from != mixed_to:
216 | not_assigned = mixed_from - mixed_to
217 | raise ValueError(not_assigned)
218 | partition.update(patch)
219 |
220 |
221 | def apply_diff_(args):
222 | """Apply a patch to a partition, at the command line."""
223 | partition = json.loads(args.partition.read())
224 | check(partition)
225 | patch = json.loads(args.patch.read())
226 | apply_diff(partition, patch)
227 | print pretty_json(partition)
228 |
229 |
230 | def table(partition):
231 | """Generate 'merge table' rows from a partition.
232 |
233 | Parameters
234 | ----------
235 | partition : dict
236 | A partition dictionary where the values are lists. Items appear
237 | exactly once through all the value lists (they are "assigned to"
238 | their key value.)
239 |
240 | Yields
241 | ------
242 | tuple
243 | Pairs of original and new names, as specified in the partition.
244 |
245 | """
246 | for key, values in partition.items():
247 | for value in values:
248 | yield (value, key)
249 |
250 |
251 | def table_(args):
252 | """Print out a two-column 'merge table' at the command line."""
253 | partition = json.loads(args.partition.read())
254 | check(partition)
255 | writer = csv.writer(sys.stdout)
256 | writer.writerow(["original", "mergic"])
257 | for row in table(partition):
258 | row = [str(element).encode('utf-8') for element in row]
259 | writer.writerow(row)
260 |
261 |
262 | def _calc_(self, args):
263 | """Calculate possible groupings and print out a summary."""
264 | try:
265 | with open('.mergic_cache', 'rb') as f:
266 | cache = pickle.load(f)
267 | (self.links_at, self.cutoffs, self.ordered_items) = cache
268 | items = self.ordered_items
269 | except IOError:
270 | items = [item.strip() for item in args.infile.readlines()]
271 | # build distance "matrix"
272 | links_at = {}
273 | for one, other in combinations(items, 2):
274 | links_at.setdefault(self.distance(one, other),
275 | []).append((one, other))
276 | self.links_at = links_at
277 | self.cutoffs = sorted(links_at.keys())
278 | links_at = self.links_at
279 | cutoffs = self.cutoffs
280 | group_for_item = {item: (item,) for item in items}
281 | if args.command == 'calc':
282 | print "num groups, max group, num pairs, cutoff"
283 | print "----------------------------------------"
284 | data = (len(group_for_item), 1, 0, cutoffs[0] - 1)
285 | print "{0: >10}, {1: >9}, {2: >9}, {3}".format(*data)
286 | for cutoff in cutoffs:
287 | link_items(group_for_item, links_at[cutoff])
288 | all_groups = set(group_for_item.values())
289 | c = Counter(len(x) for x in all_groups)
290 | if args.command == 'calc':
291 | data = (sum(c.values()),
292 | max(c.keys()),
293 | sum(len(x)*(len(x)-1)/2 for x in all_groups),
294 | cutoff)
295 | print "{0: >10}, {1: >9}, {2: >9}, {3}".format(*data)
296 | if sum(c.values()) == 1:
297 | break
298 | self.ordered_items = group_for_item.values()[0]
299 | with open('.mergic_cache', 'wb') as f:
300 | pickle.dump((self.links_at, self.cutoffs, self.ordered_items),
301 | f, protocol=2)
302 |
303 |
304 | def _make_(self, args):
305 | """Generate and print out a partition at a cutoff."""
306 | if self.links_at is None:
307 | self.calc(args)
308 | links_at = self.links_at
309 | # NOT DRY (copied from above)
310 | group_for_item = {item: (item,) for item in self.ordered_items}
311 | for cutoff in [x for x in self.cutoffs if x <= args.cutoff]:
312 | link_items(group_for_item, links_at[cutoff])
313 | all_groups = list(set(group_for_item.values()))
314 | all_groups.sort(key=lambda x: (0-len(x), self.ordered_items.index(x[0])))
315 | result = OrderedDict()
316 | for item in all_groups:
317 | result[self.key_method(item)] = list(item)
318 | print pretty_json(result)
319 |
320 |
321 | def _script(self):
322 | """Parse command-line arguments and expose functionality."""
323 | parser = argparse.ArgumentParser()
324 |
325 | parser.add_argument('-V', '--version',
326 | action='version',
327 | version='%(prog)s ' + __version__)
328 |
329 | subparsers = parser.add_subparsers(dest='command')
330 |
331 | p_calc = subparsers.add_parser('calc',
332 | help='calculate all partitions of data')
333 | p_calc.add_argument('infile',
334 | nargs='?',
335 | help='lines of text to calculate groups for',
336 | type=argparse.FileType('r'),
337 | default=sys.stdin)
338 | p_calc.set_defaults(func=self.calc)
339 |
340 | p_make = subparsers.add_parser('make',
341 | help='make a JSON partition from data')
342 | p_make.add_argument('infile',
343 | nargs='?',
344 | help='lines of text to make a partition for',
345 | type=argparse.FileType('r'),
346 | default=sys.stdin)
347 | p_make.add_argument('cutoff',
348 | help="cutoff for partition",
349 | type=float)
350 | p_make.set_defaults(func=self.make)
351 |
352 | p_check = subparsers.add_parser('check',
353 | help='check validity of JSON partition')
354 | p_check.add_argument('partition',
355 | nargs='?',
356 | help='a JSON partition file',
357 | type=argparse.FileType('r'),
358 | default=sys.stdin)
359 | p_check.set_defaults(func=check_)
360 |
361 | p_diff = subparsers.add_parser('diff',
362 | help='diff two JSON partitions')
363 | p_diff.add_argument('first',
364 | help='a JSON partition file',
365 | type=argparse.FileType('r'))
366 | p_diff.add_argument('second',
367 | help='a JSON partition file',
368 | type=argparse.FileType('r'))
369 | p_diff.set_defaults(func=diff_)
370 |
371 | p_apply = subparsers.add_parser('apply',
372 | help='apply a patch to a JSON partition')
373 | p_apply.add_argument('partition',
374 | help='a JSON partition file',
375 | type=argparse.FileType('r'))
376 | p_apply.add_argument('patch',
377 | help='a JSON partition patch file',
378 | type=argparse.FileType('r'))
379 | p_apply.set_defaults(func=apply_diff_)
380 |
381 | p_table_help = 'make a merge table from a JSON partition'
382 | p_table = subparsers.add_parser('table', help=p_table_help)
383 | p_table.add_argument('partition',
384 | nargs='?',
385 | help='a JSON partition file',
386 | type=argparse.FileType('r'),
387 | default=sys.stdin)
388 | p_table.set_defaults(func=table_)
389 |
390 | args = parser.parse_args()
391 | args.func(args)
392 |
393 |
394 | class Blender(object):
395 | """An encapsulation of mergic behaviors for deduplication.
396 |
397 | Maintains state (see attributes and __init__ parameters) for
398 | processing data for entity resolution.
399 |
400 | Attributes
401 | ----------
402 | links_at : dict
403 | Numeric keys representing distances point to lists containing
404 | length two tuples where each tuple is a pair of elements
405 | separated by the corresponding distance.
406 |
407 | ordered_items : list
408 | All the original items in the order induced by grouping them
409 | agglomeratively. Used for ordering other groupings.
410 |
411 | cutoffs : list
412 | A sorted list of cutoffs (keys from `links_at`), exposed
413 | separately for convenience.
414 |
415 | """
416 |
417 | def __init__(self, distance='stock', key_method='longest'):
418 | """Create a new mergic Blender.
419 |
420 | Parameters
421 | ----------
422 | distance : function or 'stock' (default='stock')
423 | A function of two variables which returns a distance.
424 | Larger return values indicate greater distance.
425 | The default ('stock') becomes a string distance using
426 | only the base Python SequenceMatcher.
427 |
428 | key_method : function, 'longest', or 'append' (default='longest')
429 | A function of a list that returns a string to use as the
430 | default key for a group.
431 | The default ('longest') returns the longest element in the
432 | list, with ties broken by Python's stable sort.
433 | The 'append' method concatenates all the elements of the
434 | list, in sorted order.
435 |
436 | """
437 | if distance == 'stock':
438 | distance = lambda a, b: 1 - SequenceMatcher(None, a, b).ratio()
439 | self.distance = distance
440 |
441 | if key_method == 'longest':
442 | key_method = lambda x: max(sorted(x), key=len)
443 | elif key_method == 'append':
444 | key_method = lambda x: "|".join(sorted(x))
445 | self.key_method = key_method
446 |
447 | self.links_at = None
448 | self.ordered_items = None
449 | self.cutoffs = None
450 |
451 | calc = _calc_
452 | make = _make_
453 | script = _script
454 |
455 |
456 | def script():
457 | """Run a default mergic Blender at the command line."""
458 | blender = Blender()
459 | blender.script()
460 |
461 | if __name__ == '__main__':
462 | script()
463 |
--------------------------------------------------------------------------------
/mergic/test.py:
--------------------------------------------------------------------------------
1 | import mergic
2 | import unittest
3 |
4 |
5 | class TestPrettyJson(unittest.TestCase):
6 |
7 | def test_prettifies_as_expected(self):
8 | expected = '{\n "1": [\n 1,\n 2\n ]\n}'
9 | self.assertEqual(mergic.pretty_json({1: [1, 2]}), expected)
10 |
11 |
12 | class TestCheck(unittest.TestCase):
13 |
14 | def test_raises_on_duplicate_in_value_list(self):
15 | with self.assertRaises(ValueError):
16 | mergic.check({1: [1, 1]})
17 |
18 | def test_raises_on_duplicates_across_keys(self):
19 | with self.assertRaises(ValueError):
20 | mergic.check({1: [1], 2: [1]})
21 |
22 | def test_returns_number_of_values(self):
23 | partition = {1: [1], 2: [2, 3], 3: [4]}
24 | self.assertEqual(mergic.check(partition), 4)
25 |
26 |
27 | class TestLinkItems(unittest.TestCase):
28 |
29 | def test_doesnt_change_if_already_together(self):
30 | group = (1, 2)
31 | group_of = {1: group, 2: group}
32 | mergic.link_items(group_of, [(1, 2)])
33 | self.assertIs(group_of[1], group_of[2])
34 |
35 | def test_joins_to_same_thing(self):
36 | group_of = {1: (1,), 2: (2,)}
37 | mergic.link_items(group_of, [(1, 2)])
38 | self.assertIs(group_of[1], group_of[2])
39 |
40 | def test_joins_to_correct_tuple(self):
41 | group_of = {1: (1,), 2: (2,)}
42 | mergic.link_items(group_of, [(1, 2)])
43 | self.assertEqual(set(group_of[1]), set((1, 2)))
44 |
45 |
46 | class TestDiff(unittest.TestCase):
47 |
48 | def test_no_diff_when_same(self):
49 | self.assertEqual(mergic.diff({1: [1]}, {1: [1]}), {})
50 |
51 | def test_order_doesnt_matter(self):
52 | self.assertEqual(mergic.diff({1: [1, 2]}, {1: [2, 1]}), {})
53 |
54 | def test_raises_when_first_doesnt_assign(self):
55 | with self.assertRaises(ValueError):
56 | mergic.diff({1: [1]}, {1: [1, 2]})
57 |
58 | def test_raises_when_second_doesnt_assign(self):
59 | with self.assertRaises(ValueError):
60 | mergic.diff({1: [1, 2]}, {1: [1]})
61 |
62 | def test_renaming_key_picked_up(self):
63 | self.assertEqual(mergic.diff({1: [1]}, {2: [1]}), {2: [1]})
64 |
65 | def test_splitting_value_picked_up(self):
66 | self.assertEqual(mergic.diff({1: [1, 2], 3: [3]},
67 | {1: [1], 2: [2], 3: [3]}),
68 | {1: [1], 2: [2]})
69 |
70 |
71 | class TestEqual(unittest.TestCase):
72 |
73 | def test_equal_if_empty(self):
74 | self.assertTrue(mergic.equal({}, {}))
75 |
76 | def test_not_equal_if_one_not_empty(self):
77 | self.assertFalse(mergic.equal({}, {1: [1]}))
78 |
79 | def test_raises_on_string_nonsense(self):
80 | with self.assertRaises(AttributeError):
81 | mergic.equal('non', 'sense')
82 |
83 | def test_order_doesnt_matter_for_equality(self):
84 | self.assertTrue(mergic.equal({1: [1, 2]}, {1: [2, 1]}))
85 |
86 | def test_not_equal_if_key_different(self):
87 | self.assertFalse(mergic.equal({1: [1]}, {2: [1]}))
88 |
89 | def test_not_equal_if_value_different(self):
90 | self.assertFalse(mergic.equal({1: [1]}, {1: [2]}))
91 |
92 | def test_not_equal_if_value_moves(self):
93 | self.assertFalse(mergic.equal({1: [1, 2], 2: [3]},
94 | {1: [1], 2: [2, 3]}))
95 |
96 | def test_slightly_interesting_equality(self):
97 | self.assertTrue(mergic.equal({1: [1, 2, 3], 2: ['a']},
98 | {2: ['a'], 1: [3, 2, 1]}))
99 |
100 |
101 | class TestTable(unittest.TestCase):
102 |
103 | def test_nothing_for_empty(self):
104 | self.assertEqual(len(list(mergic.table({}))), 0)
105 |
106 | def test_right_number_of_rows(self):
107 | p = {1: [2, 3], 'b': [4, 5, 6]}
108 | self.assertEqual(len(list(mergic.table(p))), 5)
109 |
110 | def test_correct_rows_appear(self):
111 | p = {1: [2, 3], 'b': [4, 5, 6]}
112 | rowset = set([(2, 1), (3, 1), (4, 'b'), (5, 'b'), (6, 'b')])
113 | self.assertEqual(set(mergic.table(p)), rowset)
114 |
115 |
116 | if __name__ == '__main__':
117 | unittest.main()
118 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | from setuptools import setup
2 | from mergic import __version__
3 |
4 |
5 | description = 'workflow support for reproducible deduplication and merging'
6 |
7 | with open('README.rst') as file:
8 | long_description = file.read()
9 |
10 | url = 'https://github.com/ajschumacher/mergic'
11 |
12 | setup(name='mergic',
13 | packages=['mergic'],
14 | description=description,
15 | long_description=long_description,
16 | license='MIT',
17 | author='Aaron Schumacher',
18 | author_email='ajschumacher@gmail.com',
19 | url=url,
20 | download_url=url + '/tarball/' + __version__,
21 | version=__version__,
22 | entry_points={'console_scripts': ['mergic = mergic:script']},
23 | classifiers=["Programming Language :: Python",
24 | "Programming Language :: Python :: 2.7",
25 | "License :: OSI Approved :: MIT License",
26 | "Development Status :: 2 - Pre-Alpha"])
27 |
--------------------------------------------------------------------------------
/tennis/.mergic_cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajschumacher/mergic/a369807f4638c0e67926bc06527b9b99b139beeb/tennis/.mergic_cache
--------------------------------------------------------------------------------
/tennis/README.md:
--------------------------------------------------------------------------------
1 | # `mergic` with a custom distance function
2 |
3 |
4 | Download the [Tennis Major Tournament Match Statistics Data Set](https://archive.ics.uci.edu/ml/datasets/Tennis+Major+Tournament+Match+Statistics) from the [UC Irvine Machine Learning Repository](https://archive.ics.uci.edu/ml/) into an empty directory:
5 |
6 | ```bash
7 | $ wget https://archive.ics.uci.edu/ml/machine-learning-databases/00300/Tennis-Major-Tournaments-Match-Statistics.zip
8 | ```
9 |
10 | This file should be stable, but it's also included [here](Tennis-Major-Tournaments-Match-Statistics.zip) and/or you can verify that its `md5` is `e9238389e4de42ecf2daf425532ce230`.
11 |
12 |
13 | Unpack eight CSV files from the `Tennis-Major-Tournaments-Match-Statistics.zip`:
14 |
15 | ```bash
16 | $ unzip Tennis-Major-Tournaments-Match-Statistics.zip
17 | ```
18 |
19 |
20 | You should see that the first two columns of each file contain player names, though the column names are not consistent. For example:
21 |
22 | ```bash
23 | $ head -2 AusOpen-women-2013.csv | cut -c 1-40
24 | ## Player1,Player2,Round,Result,FNL1,FNL2,F
25 | ## Serena Williams,Ashleigh Barty,1,1,2,0,5
26 |
27 | $ head -2 USOpen-women-2013.csv | cut -c 1-40
28 | ## Player 1,Player 2,ROUND,Result,FNL.1,FNL
29 | ## S Williams,V Azarenka,7,1,2,1,57,44,43,2
30 | ```
31 |
32 |
33 | Make a `names.txt` with all the names that appear:
34 |
35 | ```bash
36 | $ for filename in *2013.csv
37 | do
38 | for field in 1 2
39 | do
40 | tail +2 $filename | cut -d, -f$field >> names.txt
41 | done
42 | done
43 | ```
44 |
45 |
46 | Now you have a file with 1,886 lines, each one of 669 unique strings, as you can verify:
47 |
48 | ```bash
49 | $ wc -l names.txt
50 | ## 1886
51 |
52 | $ sort names.txt | uniq | wc -l
53 | ## 669
54 | ```
55 |
56 | There are too many unique strings—sometimes more than one string for the same player. As a result, a count of the most common names will not accurately tell us who played the most in these 2013 tennis competitions.
57 |
58 |
59 | ```bash
60 | $ sort names.txt | uniq -c | sort -nr | head
61 | ## 21 Rafael Nadal
62 | ## 17 Stanislas Wawrinka
63 | ## 17 Novak Djokovic
64 | ## 17 David Ferrer
65 | ## 15 Roger Federer
66 | ## 14 Tommy Robredo
67 | ## 13 Richard Gasquet
68 | ## 11 Victoria Azarenka
69 | ## 11 Tomas Berdych
70 | ## 11 Serena Williams
71 | ```
72 |
73 | The list above is not the answer we’re looking for. We want to be correct.
74 |
75 |
76 | In the tennis data, names appear sometimes with full first names and sometimes with only first initials. To get good comparisons, we should:
77 |
78 | * Transform all the data to the same format, as nearly as possible.
79 | * Use a good distance on the transformed data.
80 |
81 | We can do both of these things in our custom script, [tennis_mergic.py](tennis_mergic.py). It only [requires](requirements.txt) the `mergic` and `python-Levenshtein` packages.
82 |
83 | ```python
84 | #!/usr/bin/env python
85 |
86 | import re
87 | import Levenshtein
88 | import mergic
89 |
90 |
91 | def first_initial_last(name):
92 | initial = re.match("^[A-Z]", name).group()
93 | last = re.search("(?<=[ .])[A-Z].+$", name).group()
94 | return "{}. {}".format(initial, last)
95 |
96 |
97 | def distance(x, y):
98 | x = first_initial_last(x)
99 | y = first_initial_last(y)
100 | return Levenshtein.distance(x, y)
101 |
102 |
103 | mergic.Blender(distance).script()
104 | ```
105 |
106 |
107 | Now [tennis_mergic.py](tennis_mergic.py) can be used just like the standard `mergic` script.
108 |
109 | ```bash
110 | $ ./tennis_mergic.py calc names.txt
111 | ## num groups, max group, num pairs, cutoff
112 | ## ----------------------------------------
113 | ## 669, 1, 0, -1
114 | ## 358, 5, 384, 0
115 | ## 348, 6, 414, 1
116 | ## 332, 6, 470, 2
117 | ## 262, 85, 5117, 3
118 | ## 165, 324, 52611, 4
119 | ## 86, 496, 122899, 5
120 | ## 46, 584, 170287, 6
121 | ## 24, 624, 194407, 7
122 | ## 16, 641, 205138, 8
123 | ## 10, 650, 210940, 9
124 | ## 4, 663, 219459, 10
125 | ## 2, 668, 222778, 11
126 | ## 1, 669, 223446, 12
127 | ```
128 |
129 | There is a clear best cutoff here, as the size of the max group jumps from 6 items to 85 and the number of within-group comparisons jumps from 470 to 5,117. So we create a partition where the Levenshtein distance between names in our standard first initial and last name format is no more than two, and put the result in a file called `groups.json`:
130 |
131 | ```bash
132 | $ ./tennis_mergic.py make names.txt 2 > groups.json
133 | ```
134 |
135 | As expected, the proposed grouping has combined things over-zealously in some places:
136 |
137 | ```bash
138 | $ head -5 groups.json
139 | ## {
140 | ## "Yen-Hsun Lu": [
141 | ## "Di Wu",
142 | ## "Yen-Hsun Lu",
143 | ## "Y-H.Lu",
144 | ```
145 |
146 |
147 | Manual editing can produce a corrected version of the original grouping, which could be saved as `edited.json`:
148 |
149 | ```bash
150 | $ head -8 edited.json
151 | ## {
152 | ## "Yen-Hsun Lu": [
153 | ## "Yen-Hsun Lu",
154 | ## "Y-H.Lu"
155 | ## ],
156 | ## "Di Wu": [
157 | ## "Di Wu"
158 | ## ],
159 | ```
160 |
161 | Parts of the review process would be difficult or impossible for a computer to do accurately.
162 |
163 | * There are the Plíšková twins, Karolína and Kristýna. When we see that `K Pliskova` appears, we have to go back and see that this occurred in the `USOpen-women-2013.csv` file, and only Karolína played in the [2013 US Open](http://en.wikipedia.org/wiki/2013_US_Open_%E2%80%93_Women%27s_Singles).
164 | * In a similar but less interesting way, `B.Becker` turns out to refer to Benjamin, not Brian.
165 | * An `A Wozniak` appears with `C Wozniack` and `C Wozniacki`. The first initial does turn out to differentiate the Canadian from the Dane.
166 | * The name `A.Kuznetsov` refers to *both* Andrey *and* Alex in `Wimbledon-men-2013.csv`. This can't be resolved by `mergic`. One way to resolve the issues is to edit `Wimbledon-men-2013.csv` so that `A.Kuznetsov,I.Sijsling` becomes `Alex Kuznetsov,I.Sijsling`, based on checking [records from that competition](http://en.wikipedia.org/wiki/2013_Wimbledon_Championships_%E2%80%93_Men%27s_Singles).
167 | * `Juan Martin Del Potro` is unfortunately too different from `J.Del Potro` in the current formulation to be grouped automatically, but a human reviewer can correct this. Similarly for `Anna Schmiedlova` and `Anna Karolina Schmiedlova`.
168 |
169 |
170 | After editing, you can check that the new grouping is still valid. At this stage we aren't using anything custom any more, so the default `mergic` is fine:
171 |
172 | ```bash
173 | $ mergic check edited.json
174 | ## 669 items in 354 groups
175 | ```
176 |
177 | The `mergic` diffing tools make it easy to make comparisons that would otherwise be difficult, letting us focus on and save only changes that are human reviewers make rather than whole files.
178 |
179 |
180 | ```bash
181 | $ mergic diff groups.json edited.json > diff.json
182 | ```
183 |
184 | Now `diff.json` only has the entries that represent changes from the original `groups.json`.
185 |
186 | The edited version can be reconstructed from the original and the diff with `mergic apply`:
187 |
188 | ```bash
189 | $ mergic apply groups.json diff.json > rebuilt.json
190 | ```
191 |
192 | The order of `rebuilt.json` may not be identical to the original `edited.json`, but the diff will be empty, meaning the file is equivalent:
193 |
194 | ```bash
195 | $ mergic diff edited.json rebuilt.json
196 | ## {}
197 | ```
198 |
199 | Finally, to generate a CSV merge table that you'll be able to use with any other tool:
200 |
201 | ```bash
202 | $ mergic table edited.json > merge.csv
203 | ```
204 |
205 | Now the file `merge.csv` has two columns, `original` and `mergic`, where `original` contains all the values that appeared in the original data and `mergic` contains the deduplicated keys. You can join this on to your original data and go to town.
206 |
207 | Here's how we might do that to quickly get a list of who played the most in these 2013 tennis events:
208 |
209 | ```bash
210 | $ join -t, <(sort names.txt) <(sort merge.csv) | cut -d, -f2 | sort | uniq -c | sort -nr | head
211 | ## 24 Novak Djokovic
212 | ## 22 Rafael Nadal
213 | ## 21 Serena Williams
214 | ## 21 David Ferrer
215 | ## 20 Na Li
216 | ## 19 Victoria Azarenka
217 | ## 19 Agnieszka Radwanska
218 | ## 18 Stanislas Wawrinka
219 | ## 17 Tommy Robredo
220 | ## 17 Sloane Stephens
221 | ```
222 |
223 | Note that this is not the same as the result we got before resolving these name issues:
224 |
225 | ```bash
226 | $ sort names.txt | uniq -c | sort -nr | head
227 | ## 21 Rafael Nadal
228 | ## 17 Stanislas Wawrinka
229 | ## 17 Novak Djokovic
230 | ## 17 David Ferrer
231 | ## 15 Roger Federer
232 | ## 14 Tommy Robredo
233 | ## 13 Richard Gasquet
234 | ## 11 Victoria Azarenka
235 | ## 11 Tomas Berdych
236 | ## 11 Serena Williams
237 | ```
238 |
239 | As it happens, using a cutoff of 0 and doing no hand editing will still give the correct top ten. In general the desired result and desired level of certainty in its correctness will inform the level of effort that is justified.
240 |
--------------------------------------------------------------------------------
/tennis/Tennis-Major-Tournaments-Match-Statistics.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajschumacher/mergic/a369807f4638c0e67926bc06527b9b99b139beeb/tennis/Tennis-Major-Tournaments-Match-Statistics.zip
--------------------------------------------------------------------------------
/tennis/diff.json:
--------------------------------------------------------------------------------
1 | {
2 | "S.Murray": [
3 | "S.Murray"
4 | ],
5 | "Stephane Robert": [
6 | "Stephane Robert",
7 | "S.Robert"
8 | ],
9 | "Jie Zheng": [
10 | "J.Zheng",
11 | "J Zheng",
12 | "Jie Zheng"
13 | ],
14 | "Kristýna Plíšková": [
15 | "Kr.Pliskova",
16 | "Kristyna Pliskova"
17 | ],
18 | "Alejandro Gonzalez": [
19 | "Alejandro Gonzalez"
20 | ],
21 | "Laura Robson": [
22 | "L Robson",
23 | "Laura Robson",
24 | "L.Robson"
25 | ],
26 | "Shuai Peng": [
27 | "S.Peng",
28 | "S Peng",
29 | "Shuai Peng"
30 | ],
31 | "Robin Haase": [
32 | "Robin Haase",
33 | "R.Haase"
34 | ],
35 | "Shuai Zhang": [
36 | "Shuai Zhang"
37 | ],
38 | "Lukas Rosol": [
39 | "Lukas Rosol",
40 | "L.Rosol"
41 | ],
42 | "David Ferrer": [
43 | "David Ferrer",
44 | "D.Ferrer"
45 | ],
46 | "Shahar Peer": [
47 | "Shahar Peer"
48 | ],
49 | "Florian Mayer": [
50 | "Florian Mayer",
51 | "F.Mayer"
52 | ],
53 | "Michael Berrer": [
54 | "Michael Berrer"
55 | ],
56 | "Maximo Gonzalez": [
57 | "Maximo Gonzalez"
58 | ],
59 | "Petra Martic": [
60 | "P.Martic",
61 | "Petra Martic"
62 | ],
63 | "Pablo Carreno-Busta": [
64 | "Pablo Carreno-Busta",
65 | "Pablo Carreno Busta"
66 | ],
67 | "Svetlana Kuznetsova": [
68 | "S Kuznetsova",
69 | "Svetlana Kuznetsova"
70 | ],
71 | "Shelby Rogers": [
72 | "Shelby Rogers"
73 | ],
74 | "Andy Murray": [
75 | "A.Murray",
76 | "Andy Murray"
77 | ],
78 | "Yung-Jan Chan": [
79 | "Yung-Jan Chan"
80 | ],
81 | "Tommy Haas": [
82 | "T.Haas",
83 | "Tommy Haas"
84 | ],
85 | "Urszula Radwanska": [
86 | "U.Radwanska",
87 | "U Radwanska",
88 | "Urszula Radwanska"
89 | ],
90 | "Irena Pavlovic": [
91 | "Irena Pavlovic"
92 | ],
93 | "Na Li": [
94 | "N.Li",
95 | "N Li",
96 | "Na Li"
97 | ],
98 | "Rhyne Williams": [
99 | "Rhyne Williams"
100 | ],
101 | "Benjamin Baker": [
102 | "Benjamin Becker",
103 | "B.Becker"
104 | ],
105 | "Ying-Ying Duan": [
106 | "Y Duan",
107 | "Ying-Ying Duan"
108 | ],
109 | "Juan Martin Del Potro": [
110 | "Juan Martin Del Potro",
111 | "J.Del Potro"
112 | ],
113 | "Andrej Martin": [
114 | "Andrej Martin"
115 | ],
116 | "Brian Baker": [
117 | "Brian Baker"
118 | ],
119 | "Andrey Kuznetsov": [
120 | "A.Kuznetsov",
121 | "Andrey Kuznetsov"
122 | ],
123 | "Jimmy Wang": [
124 | "Jimmy Wang",
125 | "Y-T.Wang"
126 | ],
127 | "Serena Williams": [
128 | "S Williams",
129 | "S.Williams",
130 | "Serena Williams"
131 | ],
132 | "Alex Kuznetsov": [
133 | "Alex Kuznetsov"
134 | ],
135 | "Di Wu": [
136 | "Di Wu"
137 | ],
138 | "Anna Karolina Schmiedlova": [
139 | "Anna Karolina Schmiedlova",
140 | "Anna Schmiedlova",
141 | "A.Schmiedlova"
142 | ],
143 | "Aleksandra Wozniacki": [
144 | "A Wozniak"
145 | ],
146 | "Venus Williams": [
147 | "V Williams",
148 | "Venus Williams"
149 | ],
150 | "Yen-Hsun Lu": [
151 | "Yen-Hsun Lu",
152 | "Y-H.Lu"
153 | ],
154 | "Agnieszka Radwanska": [
155 | "A.Radwanska",
156 | "Agnieszka Radwanska"
157 | ],
158 | "Leonardo Mayer": [
159 | "L.Mayer",
160 | "Leonardo Mayer"
161 | ],
162 | "Ze Zhang": [
163 | "Ze Zhang"
164 | ],
165 | "Caroline Wozniacki": [
166 | "Caroline Wozniacki",
167 | "C Wozniacki",
168 | "C.Wozniacki",
169 | "C Wozniack"
170 | ],
171 | "J.Ward": [
172 | "J.Ward"
173 | ],
174 | "Karolína Plíšková": [
175 | "K Pliskova",
176 | "Karolina Pliskova",
177 | "Ka.Pliskova"
178 | ],
179 | "Thiemo De Bakker": [
180 | "Thiemo De Bakker",
181 | "T.De Bakker",
182 | "Thiemo de Bakker"
183 | ],
184 | "Ivo Karlovic": [
185 | "Ivo Karlovic"
186 | ]
187 | }
188 |
--------------------------------------------------------------------------------
/tennis/edited.json:
--------------------------------------------------------------------------------
1 | {
2 | "Yen-Hsun Lu": [
3 | "Yen-Hsun Lu",
4 | "Y-H.Lu"
5 | ],
6 | "Di Wu": [
7 | "Di Wu"
8 | ],
9 | "Serena Williams": [
10 | "S Williams",
11 | "S.Williams",
12 | "Serena Williams"
13 | ],
14 | "Venus Williams": [
15 | "V Williams",
16 | "Venus Williams"
17 | ],
18 | "Rhyne Williams": [
19 | "Rhyne Williams"
20 | ],
21 | "Na Li": [
22 | "N.Li",
23 | "N Li",
24 | "Na Li"
25 | ],
26 | "Caroline Wozniacki": [
27 | "Caroline Wozniacki",
28 | "C Wozniacki",
29 | "C.Wozniacki",
30 | "C Wozniack"
31 | ],
32 | "Aleksandra Wozniacki": [
33 | "A Wozniak"
34 | ],
35 | "Karolína Plíšková": [
36 | "K Pliskova",
37 | "Karolina Pliskova",
38 | "Ka.Pliskova"
39 | ],
40 | "Kristýna Plíšková": [
41 | "Kr.Pliskova",
42 | "Kristyna Pliskova"
43 | ],
44 | "Shuai Zhang": [
45 | "Shuai Zhang"
46 | ],
47 | "Jie Zheng": [
48 | "J.Zheng",
49 | "J Zheng",
50 | "Jie Zheng"
51 | ],
52 | "Ze Zhang": [
53 | "Ze Zhang"
54 | ],
55 | "Laura Robson": [
56 | "L Robson",
57 | "Laura Robson",
58 | "L.Robson"
59 | ],
60 | "Lukas Rosol": [
61 | "Lukas Rosol",
62 | "L.Rosol"
63 | ],
64 | "Agnieszka Radwanska": [
65 | "A.Radwanska",
66 | "Agnieszka Radwanska"
67 | ],
68 | "Urszula Radwanska": [
69 | "U.Radwanska",
70 | "U Radwanska",
71 | "Urszula Radwanska"
72 | ],
73 | "Svetlana Kuznetsova": [
74 | "S Kuznetsova",
75 | "Svetlana Kuznetsova"
76 | ],
77 | "Andrey Kuznetsov": [
78 | "A.Kuznetsov",
79 | "Andrey Kuznetsov"
80 | ],
81 | "Alex Kuznetsov": [
82 | "Alex Kuznetsov"
83 | ],
84 | "Leonardo Mayer": [
85 | "L.Mayer",
86 | "Leonardo Mayer"
87 | ],
88 | "Florian Mayer": [
89 | "Florian Mayer",
90 | "F.Mayer"
91 | ],
92 | "Thiemo De Bakker": [
93 | "Thiemo De Bakker",
94 | "T.De Bakker",
95 | "Thiemo de Bakker"
96 | ],
97 | "Brian Baker": [
98 | "Brian Baker"
99 | ],
100 | "Benjamin Baker": [
101 | "Benjamin Becker",
102 | "B.Becker"
103 | ],
104 | "Robin Haase": [
105 | "Robin Haase",
106 | "R.Haase"
107 | ],
108 | "Tommy Haas": [
109 | "T.Haas",
110 | "Tommy Haas"
111 | ],
112 | "Shahar Peer": [
113 | "Shahar Peer"
114 | ],
115 | "Shuai Peng": [
116 | "S.Peng",
117 | "S Peng",
118 | "Shuai Peng"
119 | ],
120 | "Anabel Medina Garrigues": [
121 | "A Medina Garrigues",
122 | "A. Medina Garrigues",
123 | "A.Medina Garrigues",
124 | "Anabel Medina Garrigues"
125 | ],
126 | "Anastasia Pavlyuchenkova": [
127 | "Anastasia Pavlyuchenkova",
128 | "A.Pavlyuchenkova",
129 | "A Pavlyuchenkova"
130 | ],
131 | "Yvonne Meusburger": [
132 | "Y.Meusburger",
133 | "Yvonne Meusburger",
134 | "Y Meusburger"
135 | ],
136 | "Galina Voskoboeva": [
137 | "G.Voskoboeva",
138 | "G Voskoboeva",
139 | "Galina Voskoboeva"
140 | ],
141 | "Kimiko Date-Krumm": [
142 | "K Date-Krumm",
143 | "Kimiko Date-Krumm",
144 | "K.Date-Krumm"
145 | ],
146 | "Elina Svitolina": [
147 | "Elina Svitolina",
148 | "E Svitolina",
149 | "E.Svitolina"
150 | ],
151 | "Flavia Pennetta": [
152 | "F.Pennetta",
153 | "Flavia Pennetta",
154 | "F Pennetta"
155 | ],
156 | "Kristina Mladenovic": [
157 | "Kristina Mladenovic",
158 | "K.Mladenovic",
159 | "K Mladenovic"
160 | ],
161 | "Victoria Azarenka": [
162 | "Victoria Azarenka",
163 | "V.Azarenka",
164 | "V Azarenka"
165 | ],
166 | "Lucie Hradecka": [
167 | "Lucie Hradecka",
168 | "L.Hradecka",
169 | "L Hradecka"
170 | ],
171 | "Ajla Tomljanovic": [
172 | "A.Tomljanovic",
173 | "A Tomljanovic",
174 | "Ajla Tomljanovic"
175 | ],
176 | "Sorana Cirstea": [
177 | "S.Cirstea",
178 | "S Cirstea",
179 | "Sorana Cirstea"
180 | ],
181 | "Sara Errani": [
182 | "S.Errani",
183 | "Sara Errani",
184 | "S Errani"
185 | ],
186 | "Alize Cornet": [
187 | "A.Cornet",
188 | "A Cornet",
189 | "Alize Cornet"
190 | ],
191 | "Mona Barthel": [
192 | "M.Barthel",
193 | "M Barthel",
194 | "Mona Barthel"
195 | ],
196 | "Mandy Minella": [
197 | "M Minella",
198 | "M.Minella",
199 | "Mandy Minella"
200 | ],
201 | "Andreas Beck": [
202 | "A.Beck",
203 | "Annika Beck",
204 | "Andreas Beck"
205 | ],
206 | "Angelique Kerber": [
207 | "A Kerber",
208 | "A.Kerber",
209 | "Angelique Kerber"
210 | ],
211 | "Michael Berrer": [
212 | "Michael Berrer"
213 | ],
214 | "David Ferrer": [
215 | "David Ferrer",
216 | "D.Ferrer"
217 | ],
218 | "Caroline Garcia": [
219 | "Caroline Garcia",
220 | "C Garcia",
221 | "C.Garcia"
222 | ],
223 | "Andrej Martin": [
224 | "Andrej Martin"
225 | ],
226 | "Petra Martic": [
227 | "P.Martic",
228 | "Petra Martic"
229 | ],
230 | "Lauren Davis": [
231 | "Lauren Davis",
232 | "L Davis",
233 | "L.Davis"
234 | ],
235 | "Madison Keys": [
236 | "Madison Keys",
237 | "M.Keys",
238 | "M Keys"
239 | ],
240 | "Misaki Doi": [
241 | "Misaki Doi",
242 | "M Doi",
243 | "M.Doi"
244 | ],
245 | "Jimmy Wang": [
246 | "Jimmy Wang",
247 | "Y-T.Wang"
248 | ],
249 | "J.Ward": [
250 | "J.Ward"
251 | ],
252 | "Ying-Ying Duan": [
253 | "Y Duan",
254 | "Ying-Ying Duan"
255 | ],
256 | "Yung-Jan Chan": [
257 | "Yung-Jan Chan"
258 | ],
259 | "Alison Riske": [
260 | "A.Riske",
261 | "A Riske",
262 | "Alison Riske"
263 | ],
264 | "Heather Watson": [
265 | "H.Watson",
266 | "H Watson",
267 | "Heather Watson"
268 | ],
269 | "Stephane Robert": [
270 | "Stephane Robert",
271 | "S.Robert"
272 | ],
273 | "Shelby Rogers": [
274 | "Shelby Rogers"
275 | ],
276 | "Simona Halep": [
277 | "Simona Halep",
278 | "S.Halep",
279 | "S Halep"
280 | ],
281 | "Petra Kvitova": [
282 | "P Kvitova",
283 | "Petra Kvitova",
284 | "P.Kvitova"
285 | ],
286 | "Andy Murray": [
287 | "A.Murray",
288 | "Andy Murray"
289 | ],
290 | "S.Murray": [
291 | "S.Murray"
292 | ],
293 | "Roberta Vinci": [
294 | "R Vinci",
295 | "Roberta Vinci",
296 | "R.Vinci"
297 | ],
298 | "Jamie Hampton": [
299 | "J.Hampton",
300 | "Jamie Hampton",
301 | "J Hampton"
302 | ],
303 | "Christina McHale": [
304 | "C.McHale",
305 | "Christina McHale",
306 | "C McHale"
307 | ],
308 | "Karin Knapp": [
309 | "Karin Knapp",
310 | "K Knapp",
311 | "K.Knapp"
312 | ],
313 | "Kaia Kanepi": [
314 | "K.Kanepi",
315 | "Kaia Kanepi",
316 | "K Kanepi"
317 | ],
318 | "Jelena Jankovic": [
319 | "J.Jankovic",
320 | "J Jankovic",
321 | "Jelena Jankovic"
322 | ],
323 | "Andrea Petkovic": [
324 | "A Petkovic",
325 | "Andrea Petkovic",
326 | "A.Petkovic"
327 | ],
328 | "Ana Ivanovic": [
329 | "A Ivanovic",
330 | "Ana Ivanovic",
331 | "A.Ivanovic"
332 | ],
333 | "Camila Giorgi": [
334 | "C Giorgi",
335 | "Camila Giorgi",
336 | "C.Giorgi"
337 | ],
338 | "Sloane Stephens": [
339 | "S.Stephens",
340 | "S Stephens",
341 | "Sloane Stephens"
342 | ],
343 | "Julia Goerges": [
344 | "Julia Goerges",
345 | "J.Goerges",
346 | "J Goerges"
347 | ],
348 | "Kirsten Flipkens": [
349 | "K Flipkens",
350 | "Kirsten Flipkens",
351 | "K.Flipkens"
352 | ],
353 | "Mallory Burdette": [
354 | "Mallory Burdette",
355 | "M Burdette",
356 | "M.Burdette"
357 | ],
358 | "Ekaterina Makarova": [
359 | "Ekaterina Makarova",
360 | "E Makarova",
361 | "E.Makarova"
362 | ],
363 | "Samantha Stosur": [
364 | "S Stosur",
365 | "S.Stosur",
366 | "Samantha Stosur"
367 | ],
368 | "Sabine Lisicki": [
369 | "Sabine Lisicki",
370 | "S Lisicki",
371 | "S.Lisicki"
372 | ],
373 | "Yaroslava Shvedova": [
374 | "Y Shvedova",
375 | "Y.Shvedova",
376 | "Yaroslava Shvedova"
377 | ],
378 | "Maria Kirilenko": [
379 | "M.Kirilenko",
380 | "Maria Kirilenko",
381 | "M Kirilenko"
382 | ],
383 | "Varvara Lepchenko": [
384 | "V.Lepchenko",
385 | "Varvara Lepchenko",
386 | "V Lepchenko"
387 | ],
388 | "Daniela Hantuchova": [
389 | "D.Hantuchova",
390 | "Daniela Hantuchova",
391 | "D Hantuchova"
392 | ],
393 | "Olga Govortsova": [
394 | "O Govortsova",
395 | "O.Govortsova",
396 | "Olga Govortsova"
397 | ],
398 | "Chanelle Scheepers": [
399 | "C Scheepers",
400 | "Chanelle Scheepers",
401 | "C.Scheepers"
402 | ],
403 | "Sofia Arvidsson": [
404 | "S.Arvidsson",
405 | "Sofia Arvidsson",
406 | "S Arvidsson"
407 | ],
408 | "Francesca Schiavone": [
409 | "F Schiavone",
410 | "Francesca Schiavone",
411 | "F.Schiavone"
412 | ],
413 | "Eugenie Bouchard": [
414 | "Eugenie Bouchard",
415 | "E.Bouchard",
416 | "E Bouchard"
417 | ],
418 | "Bojana Jovanovski": [
419 | "B.Jovanovski",
420 | "B Jovanovski",
421 | "Bojana Jovanovski"
422 | ],
423 | "Anna Tatishvili": [
424 | "A.Tatishvili",
425 | "A Tatishvili",
426 | "Anna Tatishvili"
427 | ],
428 | "Coco Vandeweghe": [
429 | "C Vandeweghe",
430 | "Coco Vandeweghe",
431 | "C.Vandeweghe"
432 | ],
433 | "Lara Arruabarrena": [
434 | "L Arruabarrena",
435 | "Lara Arruabarrena",
436 | "L.Arruabarrena"
437 | ],
438 | "Lourdes Dominguez Lino": [
439 | "L.Dominguez Lino",
440 | "L Dominguez Lino",
441 | "Lourdes Dominguez Lino"
442 | ],
443 | "Carla Suarez Navarro": [
444 | "C Suarez Navarro",
445 | "Carla Suarez Navarro",
446 | "C.Suarez Navarro"
447 | ],
448 | "Silvia Soler-Espinosa": [
449 | "Silvia Soler-Espinosa",
450 | "S.Soler-Espinosa"
451 | ],
452 | "Pablo Carreno-Busta": [
453 | "Pablo Carreno-Busta",
454 | "Pablo Carreno Busta"
455 | ],
456 | "Andreas Haider-Maurer": [
457 | "A.Haider-Maurer",
458 | "Andreas Haider-Maurer"
459 | ],
460 | "Daniel Gimeno-Traver": [
461 | "Daniel Gimeno-Traver",
462 | "D.Gimeno-Traver"
463 | ],
464 | "Bethanie Mattek-Sands": [
465 | "B.Mattek-Sands",
466 | "Bethanie Mattek-Sands"
467 | ],
468 | "Mariana Duque-Marino": [
469 | "Mariana Duque-Marino",
470 | "M.Duque-Marino"
471 | ],
472 | "Mirjana Lucic-Baroni": [
473 | "Mirjana Lucic-Baroni",
474 | "M.Lucic-Baroni"
475 | ],
476 | "Guillermo Garcia-Lopez": [
477 | "G.Garcia-Lopez",
478 | "Guillermo Garcia-Lopez"
479 | ],
480 | "Maria-Teresa Torro-Flor": [
481 | "M.Torro-Flor",
482 | "Maria-Teresa Torro-Flor"
483 | ],
484 | "Alex Bogomolov Jr.": [
485 | "A.Bogomolov Jr.",
486 | "Alex Bogomolov Jr."
487 | ],
488 | "Dinah Pfizenmaier": [
489 | "D Pfizenmaier",
490 | "Dinah Pfizenmaier"
491 | ],
492 | "Nina Bratchikova": [
493 | "Nina Bratchikova",
494 | "N.Bratchikova"
495 | ],
496 | "Marcos Baghdatis": [
497 | "Marcos Baghdatis",
498 | "M.Baghdatis"
499 | ],
500 | "Kenny De Schepper": [
501 | "Kenny De Schepper",
502 | "K.De Schepper"
503 | ],
504 | "Paula Ormaechea": [
505 | "Paula Ormaechea",
506 | "P Ormaechea"
507 | ],
508 | "Kevin Anderson": [
509 | "Kevin Anderson",
510 | "K.Anderson"
511 | ],
512 | "Igor Sijsling": [
513 | "I.Sijsling",
514 | "Igor Sijsling"
515 | ],
516 | "Grigor Dimitrov": [
517 | "Grigor Dimitrov",
518 | "G.Dimitrov"
519 | ],
520 | "Fernando Verdasco": [
521 | "Fernando Verdasco",
522 | "F.Verdasco"
523 | ],
524 | "Olivia Rogowska": [
525 | "Olivia Rogowska",
526 | "O Rogowska"
527 | ],
528 | "Julien Benneteau": [
529 | "Julien Benneteau",
530 | "J.Benneteau"
531 | ],
532 | "Adrian Mannarino": [
533 | "A.Mannarino",
534 | "Adrian Mannarino"
535 | ],
536 | "Klara Zakopalova": [
537 | "Klara Zakopalova",
538 | "K.Zakopalova"
539 | ],
540 | "Lesia Tsurenko": [
541 | "L.Tsurenko",
542 | "Lesia Tsurenko"
543 | ],
544 | "Julia Glushko": [
545 | "Julia Glushko",
546 | "J Glushko"
547 | ],
548 | "Virginie Razzano": [
549 | "V.Razzano",
550 | "Virginie Razzano"
551 | ],
552 | "Petra Cetkovska": [
553 | "P.Cetkovska",
554 | "Petra Cetkovska"
555 | ],
556 | "Dominika Cibulkova": [
557 | "Dominika Cibulkova",
558 | "D.Cibulkova"
559 | ],
560 | "Santiago Giraldo": [
561 | "S.Giraldo",
562 | "Santiago Giraldo"
563 | ],
564 | "Martin Klizan": [
565 | "M.Klizan",
566 | "Martin Klizan"
567 | ],
568 | "Juan Monaco": [
569 | "J.Monaco",
570 | "Juan Monaco"
571 | ],
572 | "Ricardas Berankis": [
573 | "Ricardas Berankis",
574 | "R.Berankis"
575 | ],
576 | "Romina Oprandi": [
577 | "R.Oprandi",
578 | "Romina Oprandi"
579 | ],
580 | "Paul-Henri Mathieu": [
581 | "P-H.Mathieu",
582 | "Paul-Henri Mathieu"
583 | ],
584 | "David Goffin": [
585 | "David Goffin",
586 | "D.Goffin"
587 | ],
588 | "Marion Bartoli": [
589 | "Marion Bartoli",
590 | "M.Bartoli"
591 | ],
592 | "Johanna Larsson": [
593 | "Johanna Larsson",
594 | "J.Larsson"
595 | ],
596 | "Stefanie Voegele": [
597 | "S.Voegele",
598 | "Stefanie Voegele"
599 | ],
600 | "Jan-Lennard Struff": [
601 | "J.Struff",
602 | "Jan-Lennard Struff"
603 | ],
604 | "Adrian Ungur": [
605 | "A.Ungur",
606 | "Adrian Ungur"
607 | ],
608 | "Paolo Lorenzi": [
609 | "P.Lorenzi",
610 | "Paolo Lorenzi"
611 | ],
612 | "Donna Vekic": [
613 | "Donna Vekic",
614 | "D.Vekic"
615 | ],
616 | "Blaz Kavcic": [
617 | "Blaz Kavcic",
618 | "B.Kavcic"
619 | ],
620 | "Kiki Bertens": [
621 | "K.Bertens",
622 | "Kiki Bertens"
623 | ],
624 | "Aljaz Bedene": [
625 | "Aljaz Bedene",
626 | "A.Bedene"
627 | ],
628 | "Jurgen Zopp": [
629 | "J.Zopp",
630 | "Jurgen Zopp"
631 | ],
632 | "Go Soeda": [
633 | "G.Soeda",
634 | "Go Soeda"
635 | ],
636 | "Denis Kudla": [
637 | "D.Kudla",
638 | "Denis Kudla"
639 | ],
640 | "Grega Zemlja": [
641 | "Grega Zemlja",
642 | "G.Zemlja"
643 | ],
644 | "Alejandro Falla": [
645 | "Alejandro Falla",
646 | "A.Falla"
647 | ],
648 | "Guido Pella": [
649 | "G.Pella",
650 | "Guido Pella"
651 | ],
652 | "Jo-Wilfried Tsonga": [
653 | "Jo-Wilfried Tsonga",
654 | "J-W.Tsonga"
655 | ],
656 | "Roger Federer": [
657 | "Roger Federer",
658 | "R.Federer"
659 | ],
660 | "Tobias Kamke": [
661 | "T.Kamke",
662 | "Tobias Kamke"
663 | ],
664 | "Irina-Camelia Begu": [
665 | "I.Begu",
666 | "Irina-Camelia Begu"
667 | ],
668 | "James Blake": [
669 | "James Blake",
670 | "J.Blake"
671 | ],
672 | "Ashleigh Barty": [
673 | "Ashleigh Barty",
674 | "A Barty"
675 | ],
676 | "Tatjana Maria": [
677 | "Tatjana Maria",
678 | "T.Maria"
679 | ],
680 | "Ayumi Morita": [
681 | "A.Morita",
682 | "Ayumi Morita"
683 | ],
684 | "Rafael Nadal": [
685 | "R.Nadal",
686 | "Rafael Nadal"
687 | ],
688 | "Kurumi Nara": [
689 | "Kurumi Nara",
690 | "K Nara"
691 | ],
692 | "Steve Darcis": [
693 | "Steve Darcis",
694 | "S.Darcis"
695 | ],
696 | "Jeremy Chardy": [
697 | "Jeremy Chardy",
698 | "J.Chardy"
699 | ],
700 | "Gilles Simon": [
701 | "G.Simon",
702 | "Gilles Simon"
703 | ],
704 | "Matthew Ebden": [
705 | "M.Ebden",
706 | "Matthew Ebden"
707 | ],
708 | "Albert Ramos": [
709 | "Albert Ramos",
710 | "A.Ramos"
711 | ],
712 | "Rajeev Ram": [
713 | "R.Ram",
714 | "Rajeev Ram"
715 | ],
716 | "Guillaume Rufin": [
717 | "Guillaume Rufin",
718 | "G.Rufin"
719 | ],
720 | "Monica Puig": [
721 | "M.Puig",
722 | "Monica Puig"
723 | ],
724 | "Melanie Oudin": [
725 | "Melanie Oudin",
726 | "M.Oudin"
727 | ],
728 | "Vania King": [
729 | "V.King",
730 | "Vania King"
731 | ],
732 | "Ivan Dodig": [
733 | "Ivan Dodig",
734 | "I.Dodig"
735 | ],
736 | "Arantxa Rus": [
737 | "Arantxa Rus",
738 | "A.Rus"
739 | ],
740 | "Timea Babos": [
741 | "Timea Babos",
742 | "T.Babos"
743 | ],
744 | "Andreas Seppi": [
745 | "Andreas Seppi",
746 | "A.Seppi"
747 | ],
748 | "Bernard Tomic": [
749 | "Bernard Tomic",
750 | "B.Tomic"
751 | ],
752 | "Lukasz Kubot": [
753 | "L.Kubot",
754 | "Lukasz Kubot"
755 | ],
756 | "Mathilde Johansson": [
757 | "M.Johansson",
758 | "Mathilde Johansson"
759 | ],
760 | "Steve Johnson": [
761 | "S.Johnson",
762 | "Steve Johnson"
763 | ],
764 | "Jan Hajek": [
765 | "Jan Hajek",
766 | "J.Hajek"
767 | ],
768 | "Su-Wei Hsieh": [
769 | "Su-Wei Hsieh",
770 | "S-W.Hsieh"
771 | ],
772 | "Jurgen Melzer": [
773 | "Jurgen Melzer",
774 | "J.Melzer"
775 | ],
776 | "Feliciano Lopez": [
777 | "F.Lopez",
778 | "Feliciano Lopez"
779 | ],
780 | "John Isner": [
781 | "John Isner",
782 | "J.Isner"
783 | ],
784 | "Nicolas Mahut": [
785 | "N.Mahut",
786 | "Nicolas Mahut"
787 | ],
788 | "Jesse Levine": [
789 | "J.Levine",
790 | "Jesse Levine"
791 | ],
792 | "Olga Puchkova": [
793 | "Olga Puchkova",
794 | "O.Puchkova"
795 | ],
796 | "Marin Cilic": [
797 | "M.Cilic",
798 | "Marin Cilic"
799 | ],
800 | "Sam Querrey": [
801 | "Sam Querrey",
802 | "S.Querrey"
803 | ],
804 | "Martin Alund": [
805 | "M.Alund",
806 | "Martin Alund"
807 | ],
808 | "Benoit Paire": [
809 | "Benoit Paire",
810 | "B.Paire"
811 | ],
812 | "Julian Reister": [
813 | "J.Reister",
814 | "Julian Reister"
815 | ],
816 | "Ryan Harrison": [
817 | "R.Harrison",
818 | "Ryan Harrison"
819 | ],
820 | "Lukas Lacko": [
821 | "L.Lacko",
822 | "Lukas Lacko"
823 | ],
824 | "Tamira Paszek": [
825 | "Tamira Paszek",
826 | "T.Paszek"
827 | ],
828 | "Milos Raonic": [
829 | "Milos Raonic",
830 | "M.Raonic"
831 | ],
832 | "M Koehler": [
833 | "M Koehler",
834 | "M.Koehler"
835 | ],
836 | "Jerzy Janowicz": [
837 | "J.Janowicz",
838 | "Jerzy Janowicz"
839 | ],
840 | "Novak Djokovic": [
841 | "N.Djokovic",
842 | "Novak Djokovic"
843 | ],
844 | "Marina Erakovic": [
845 | "M.Erakovic",
846 | "Marina Erakovic"
847 | ],
848 | "Irena Pavlovic": [
849 | "Irena Pavlovic"
850 | ],
851 | "Ivo Karlovic": [
852 | "Ivo Karlovic"
853 | ],
854 | "Nadia Petrova": [
855 | "N.Petrova",
856 | "Nadia Petrova"
857 | ],
858 | "Daniel Brands": [
859 | "D.Brands",
860 | "Daniel Brands"
861 | ],
862 | "Tommy Robredo": [
863 | "Tommy Robredo",
864 | "T.Robredo"
865 | ],
866 | "Jarkko Nieminen": [
867 | "J.Nieminen",
868 | "Jarkko Nieminen"
869 | ],
870 | "Mikhail Youzhny": [
871 | "Mikhail Youzhny",
872 | "M.Youzhny"
873 | ],
874 | "Tomas Berdych": [
875 | "T.Berdych",
876 | "Tomas Berdych"
877 | ],
878 | "Carlos Berlocq": [
879 | "Carlos Berlocq",
880 | "C.Berlocq"
881 | ],
882 | "Evgeny Donskoy": [
883 | "Evgeny Donskoy",
884 | "E.Donskoy"
885 | ],
886 | "Vesna Dolonc": [
887 | "V.Dolonc",
888 | "Vesna Dolonc"
889 | ],
890 | "Michael Llodra": [
891 | "M.Llodra",
892 | "Michael Llodra"
893 | ],
894 | "Tsvetana Pironkova": [
895 | "T.Pironkova",
896 | "Tsvetana Pironkova"
897 | ],
898 | "Jana Cepelova": [
899 | "Jana Cepelova",
900 | "J.Cepelova"
901 | ],
902 | "Alexandra Cadantu": [
903 | "Alexandra Cadantu",
904 | "A.Cadantu"
905 | ],
906 | "Elena Vesnina": [
907 | "Elena Vesnina",
908 | "E.Vesnina"
909 | ],
910 | "Lleyton Hewitt": [
911 | "Lleyton Hewitt",
912 | "L.Hewitt"
913 | ],
914 | "Xavier Malisse": [
915 | "Xavier Malisse",
916 | "X.Malisse"
917 | ],
918 | "Maria Sharapova": [
919 | "M.Sharapova",
920 | "Maria Sharapova"
921 | ],
922 | "Lucie Safarova": [
923 | "Lucie Safarova",
924 | "L.Safarova"
925 | ],
926 | "Stanislas Wawrinka": [
927 | "Stanislas Wawrinka",
928 | "S.Wawrinka"
929 | ],
930 | "Ernests Gulbis": [
931 | "Ernests Gulbis",
932 | "E.Gulbis"
933 | ],
934 | "Simone Bolelli": [
935 | "S.Bolelli",
936 | "Simone Bolelli"
937 | ],
938 | "Pablo Andujar": [
939 | "P.Andujar",
940 | "Pablo Andujar"
941 | ],
942 | "Fabio Fognini": [
943 | "F.Fognini",
944 | "Fabio Fognini"
945 | ],
946 | "Radek Stepanek": [
947 | "R.Stepanek",
948 | "Radek Stepanek"
949 | ],
950 | "Michael Russell": [
951 | "M.Russell",
952 | "Michael Russell"
953 | ],
954 | "Viktor Troicki": [
955 | "V.Troicki",
956 | "Viktor Troicki"
957 | ],
958 | "Victor Hanescu": [
959 | "Victor Hanescu",
960 | "V.Hanescu"
961 | ],
962 | "Magdalena Rybarikova": [
963 | "M.Rybarikova",
964 | "Magdalena Rybarikova"
965 | ],
966 | "Marc Gicquel": [
967 | "Marc Gicquel",
968 | "M.Gicquel"
969 | ],
970 | "Richard Gasquet": [
971 | "R.Gasquet",
972 | "Richard Gasquet"
973 | ],
974 | "Albert Montanes": [
975 | "A.Montanes",
976 | "Albert Montanes"
977 | ],
978 | "Alejandro Gonzalez": [
979 | "Alejandro Gonzalez"
980 | ],
981 | "Maximo Gonzalez": [
982 | "Maximo Gonzalez"
983 | ],
984 | "Denis Istomin": [
985 | "Denis Istomin",
986 | "D.Istomin"
987 | ],
988 | "Wayne Odesnik": [
989 | "W.Odesnik",
990 | "Wayne Odesnik"
991 | ],
992 | "Marinko Matosevic": [
993 | "M.Matosevic",
994 | "Marinko Matosevic"
995 | ],
996 | "Nicolas Almagro": [
997 | "Nicolas Almagro",
998 | "N.Almagro"
999 | ],
1000 | "Horacio Zeballos": [
1001 | "H.Zeballos",
1002 | "Horacio Zeballos"
1003 | ],
1004 | "Yanina Wickmayer": [
1005 | "Yanina Wickmayer",
1006 | "Y.Wickmayer"
1007 | ],
1008 | "Monica Niculescu": [
1009 | "Monica Niculescu",
1010 | "M.Niculescu"
1011 | ],
1012 | "Elena Baltacha": [
1013 | "Elena Baltacha",
1014 | "E.Baltacha"
1015 | ],
1016 | "Garbine Muguruza": [
1017 | "Garbine Muguruza",
1018 | "G.Muguruza"
1019 | ],
1020 | "Sergiy Stakhovsky": [
1021 | "S.Stakhovsky",
1022 | "Sergiy Stakhovsky"
1023 | ],
1024 | "Yulia Putintseva": [
1025 | "Y.Putintseva",
1026 | "Yulia Putintseva"
1027 | ],
1028 | "Pauline Parmentier": [
1029 | "Pauline Parmentier",
1030 | "P.Parmentier"
1031 | ],
1032 | "Andrea Hlavackova": [
1033 | "A.Hlavackova",
1034 | "Andrea Hlavackova"
1035 | ],
1036 | "Dmitry Tursunov": [
1037 | "D.Tursunov",
1038 | "Dmitry Tursunov"
1039 | ],
1040 | "Kei Nishikori": [
1041 | "Kei Nishikori",
1042 | "K.Nishikori"
1043 | ],
1044 | "Vasek Pospisil": [
1045 | "V.Pospisil",
1046 | "Vasek Pospisil"
1047 | ],
1048 | "Marcel Granollers": [
1049 | "Marcel Granollers",
1050 | "M.Granollers"
1051 | ],
1052 | "Teymuraz Gabashvili": [
1053 | "T.Gabashvili",
1054 | "Teymuraz Gabashvili"
1055 | ],
1056 | "Janko Tipsarevic": [
1057 | "Janko Tipsarevic",
1058 | "J.Tipsarevic"
1059 | ],
1060 | "James Duckworth": [
1061 | "J.Duckworth",
1062 | "James Duckworth"
1063 | ],
1064 | "Philipp Petzschner": [
1065 | "P.Petzschner",
1066 | "Philipp Petzschner"
1067 | ],
1068 | "Carina Witthoeft": [
1069 | "Carina Witthoeft",
1070 | "C.Witthoeft"
1071 | ],
1072 | "Alexandr Dolgopolov": [
1073 | "A.Dolgopolov",
1074 | "Alexandr Dolgopolov"
1075 | ],
1076 | "Michal Przysiezny": [
1077 | "M.Przysiezny",
1078 | "Michal Przysiezny"
1079 | ],
1080 | "Philipp Kohlschreiber": [
1081 | "P.Kohlschreiber",
1082 | "Philipp Kohlschreiber"
1083 | ],
1084 | "Rogerio Dutra Silva": [
1085 | "Rogerio Dutra Silva",
1086 | "R.Dutra Silva"
1087 | ],
1088 | "Edouard Roger-Vasselin": [
1089 | "Edouard Roger-Vasselin",
1090 | "E.Roger-Vasselin"
1091 | ],
1092 | "Barbora Zahlavova Strycova": [
1093 | "Barbora Zahlavova Strycova",
1094 | "B.Zahlavova Strycova"
1095 | ],
1096 | "Roberto Bautista Agut": [
1097 | "Roberto Bautista Agut",
1098 | "R.Bautista Agut"
1099 | ],
1100 | "Patricia Mayr-Achleitner": [
1101 | "Patricia Mayr-Achleitner"
1102 | ],
1103 | "Hao Chen Tang": [
1104 | "Hao Chen Tang"
1105 | ],
1106 | "Somdev Devvarman": [
1107 | "Somdev Devvarman"
1108 | ],
1109 | "Claire Feuerstein": [
1110 | "Claire Feuerstein"
1111 | ],
1112 | "Collin Altamirano": [
1113 | "Collin Altamirano"
1114 | ],
1115 | "Maria Joao Koehler": [
1116 | "Maria Joao Koehler"
1117 | ],
1118 | "E.Birnerova": [
1119 | "E.Birnerova"
1120 | ],
1121 | "Sandra Zahlavova": [
1122 | "Sandra Zahlavova"
1123 | ],
1124 | "Casey Dellacqua": [
1125 | "Casey Dellacqua"
1126 | ],
1127 | "K.Edmund": [
1128 | "K.Edmund"
1129 | ],
1130 | "G.Elias": [
1131 | "G.Elias"
1132 | ],
1133 | "O.Rochus": [
1134 | "O.Rochus"
1135 | ],
1136 | "Dominic Thiem": [
1137 | "Dominic Thiem"
1138 | ],
1139 | "Tim Smyczek": [
1140 | "Tim Smyczek"
1141 | ],
1142 | "Katerina Siniakova": [
1143 | "Katerina Siniakova"
1144 | ],
1145 | "Belinda Bencic": [
1146 | "Belinda Bencic"
1147 | ],
1148 | "Zuzana Kucova": [
1149 | "Zuzana Kucova"
1150 | ],
1151 | "Blaz Rola": [
1152 | "Blaz Rola"
1153 | ],
1154 | "Dudi Sela": [
1155 | "Dudi Sela"
1156 | ],
1157 | "Pere Riba": [
1158 | "Pere Riba"
1159 | ],
1160 | "Florent Serra": [
1161 | "Florent Serra"
1162 | ],
1163 | "Joao Sousa": [
1164 | "Joao Sousa"
1165 | ],
1166 | "J.Konta": [
1167 | "J.Konta"
1168 | ],
1169 | "Jack Sock": [
1170 | "Jack Sock"
1171 | ],
1172 | "Tadeja Majeric": [
1173 | "Tadeja Majeric"
1174 | ],
1175 | "Katarzyna Piter": [
1176 | "Katarzyna Piter"
1177 | ],
1178 | "M.Reid": [
1179 | "M.Reid"
1180 | ],
1181 | "Grace Min": [
1182 | "Grace Min"
1183 | ],
1184 | "V Duval": [
1185 | "V Duval"
1186 | ],
1187 | "David Guez": [
1188 | "David Guez"
1189 | ],
1190 | "Aravane Rezai": [
1191 | "Aravane Rezai"
1192 | ],
1193 | "Bradley Klahn": [
1194 | "Bradley Klahn"
1195 | ],
1196 | "Gilles Muller": [
1197 | "Gilles Muller"
1198 | ],
1199 | "T.Moore": [
1200 | "T.Moore"
1201 | ],
1202 | "Teliana Pereira": [
1203 | "Teliana Pereira"
1204 | ],
1205 | "Melinda Czink": [
1206 | "Melinda Czink"
1207 | ],
1208 | "Donald Young": [
1209 | "Donald Young"
1210 | ],
1211 | "Ana Konjuh": [
1212 | "Ana Konjuh"
1213 | ],
1214 | "Jiri Vesely": [
1215 | "Jiri Vesely"
1216 | ],
1217 | "Zarina Diyas": [
1218 | "Zarina Diyas"
1219 | ],
1220 | "Sachia Vickery": [
1221 | "Sachia Vickery"
1222 | ],
1223 | "Frank Dancevic": [
1224 | "Frank Dancevic"
1225 | ],
1226 | "Dusan Lajovic": [
1227 | "Dusan Lajovic"
1228 | ],
1229 | "M.Camerin": [
1230 | "M.Camerin"
1231 | ],
1232 | "Daniel Evans": [
1233 | "Daniel Evans"
1234 | ],
1235 | "Jordan Thompson": [
1236 | "Jordan Thompson"
1237 | ],
1238 | "D.Brown": [
1239 | "D.Brown"
1240 | ],
1241 | "Samuel Groth": [
1242 | "Samuel Groth"
1243 | ],
1244 | "Maxime Teixeira": [
1245 | "Maxime Teixeira"
1246 | ],
1247 | "Storm Sanders": [
1248 | "Storm Sanders"
1249 | ],
1250 | "Pablo Cuevas": [
1251 | "Pablo Cuevas"
1252 | ],
1253 | "Vincent Millot": [
1254 | "Vincent Millot"
1255 | ],
1256 | "A.Glatch": [
1257 | "A.Glatch"
1258 | ],
1259 | "B.Reynolds": [
1260 | "B.Reynolds"
1261 | ],
1262 | "Thomas Fabbiano": [
1263 | "Thomas Fabbiano"
1264 | ],
1265 | "Polona Hercog": [
1266 | "Polona Hercog"
1267 | ],
1268 | "Lucas Pouille": [
1269 | "Lucas Pouille"
1270 | ],
1271 | "B.Knittel": [
1272 | "B.Knittel"
1273 | ],
1274 | "Luksika Kumkhum": [
1275 | "Luksika Kumkhum"
1276 | ],
1277 | "Gael Monfils": [
1278 | "Gael Monfils"
1279 | ],
1280 | "Irina Falconi": [
1281 | "Irina Falconi"
1282 | ],
1283 | "Andrey Golubev": [
1284 | "Andrey Golubev"
1285 | ],
1286 | "Filippo Volandri": [
1287 | "Filippo Volandri"
1288 | ],
1289 | "M.Krajicek": [
1290 | "M.Krajicek"
1291 | ],
1292 | "Thomaz Bellucci": [
1293 | "Thomaz Bellucci"
1294 | ],
1295 | "Federico Delbonis": [
1296 | "Federico Delbonis"
1297 | ],
1298 | "I.Andreev": [
1299 | "I.Andreev"
1300 | ],
1301 | "Damir Dzumhur": [
1302 | "Damir Dzumhur"
1303 | ],
1304 | "Nick Kyrgios": [
1305 | "Nick Kyrgios"
1306 | ],
1307 | "A Dulgheru": [
1308 | "A Dulgheru"
1309 | ],
1310 | "Nikolay Davydenko": [
1311 | "Nikolay Davydenko"
1312 | ],
1313 | "Illya Marchenko": [
1314 | "Illya Marchenko"
1315 | ],
1316 | "Nadiya Kichenok": [
1317 | "Nadiya Kichenok"
1318 | ],
1319 | "Mikhail Kukushkin": [
1320 | "Mikhail Kukushkin"
1321 | ],
1322 | "Vera Zvonareva": [
1323 | "Vera Zvonareva"
1324 | ],
1325 | "Jarmila Gajdosova": [
1326 | "Jarmila Gajdosova"
1327 | ],
1328 | "Albano Olivetti": [
1329 | "Albano Olivetti"
1330 | ],
1331 | "V Dushevina": [
1332 | "V Dushevina"
1333 | ],
1334 | "Aleksandr Nedovyesov": [
1335 | "Aleksandr Nedovyesov"
1336 | ],
1337 | "Alla Kudryavtseva": [
1338 | "Alla Kudryavtseva"
1339 | ],
1340 | "Thanasi Kokkinakis": [
1341 | "Thanasi Kokkinakis"
1342 | ],
1343 | "Peter Gojowczyk": [
1344 | "Peter Gojowczyk"
1345 | ],
1346 | "Yuliya Beygelzimer": [
1347 | "Yuliya Beygelzimer"
1348 | ],
1349 | "A.Keothavong": [
1350 | "A.Keothavong"
1351 | ],
1352 | "Juan Martin Del Potro": [
1353 | "Juan Martin Del Potro",
1354 | "J.Del Potro"
1355 | ],
1356 | "Jesse Huta Galung": [
1357 | "Jesse Huta Galung"
1358 | ],
1359 | "Alison Van Uytvanck": [
1360 | "Alison Van Uytvanck"
1361 | ],
1362 | "Stephanie Foretz Gacon": [
1363 | "Stephanie Foretz Gacon"
1364 | ],
1365 | "Anna Karolina Schmiedlova": [
1366 | "Anna Karolina Schmiedlova",
1367 | "Anna Schmiedlova",
1368 | "A.Schmiedlova"
1369 | ],
1370 | "E.Cabeza Candela": [
1371 | "E.Cabeza Candela"
1372 | ],
1373 | "M.Larcher De Brito": [
1374 | "M.Larcher De Brito"
1375 | ],
1376 | "Daniel Munoz-De La Nava": [
1377 | "Daniel Munoz-De La Nava"
1378 | ]
1379 | }
1380 |
--------------------------------------------------------------------------------
/tennis/groups.json:
--------------------------------------------------------------------------------
1 | {
2 | "Yen-Hsun Lu": [
3 | "Di Wu",
4 | "Yen-Hsun Lu",
5 | "Y-H.Lu",
6 | "Na Li",
7 | "N Li",
8 | "N.Li"
9 | ],
10 | "Serena Williams": [
11 | "Rhyne Williams",
12 | "Serena Williams",
13 | "S Williams",
14 | "S.Williams",
15 | "Venus Williams",
16 | "V Williams"
17 | ],
18 | "Agnieszka Radwanska": [
19 | "Agnieszka Radwanska",
20 | "A.Radwanska",
21 | "Urszula Radwanska",
22 | "U Radwanska",
23 | "U.Radwanska"
24 | ],
25 | "Shuai Zhang": [
26 | "Ze Zhang",
27 | "Shuai Zhang",
28 | "Jie Zheng",
29 | "J Zheng",
30 | "J.Zheng"
31 | ],
32 | "Laura Robson": [
33 | "Lukas Rosol",
34 | "L.Rosol",
35 | "Laura Robson",
36 | "L Robson",
37 | "L.Robson"
38 | ],
39 | "Karolina Pliskova": [
40 | "Karolina Pliskova",
41 | "Kristyna Pliskova",
42 | "K Pliskova",
43 | "Kr.Pliskova",
44 | "Ka.Pliskova"
45 | ],
46 | "Caroline Wozniacki": [
47 | "Caroline Wozniacki",
48 | "C Wozniacki",
49 | "C.Wozniacki",
50 | "C Wozniack",
51 | "A Wozniak"
52 | ],
53 | "Svetlana Kuznetsova": [
54 | "Svetlana Kuznetsova",
55 | "S Kuznetsova",
56 | "Andrey Kuznetsov",
57 | "Alex Kuznetsov",
58 | "A.Kuznetsov"
59 | ],
60 | "Leonardo Mayer": [
61 | "Leonardo Mayer",
62 | "L.Mayer",
63 | "Florian Mayer",
64 | "F.Mayer"
65 | ],
66 | "Thiemo de Bakker": [
67 | "Thiemo de Bakker",
68 | "Benjamin Becker",
69 | "B.Becker",
70 | "Brian Baker"
71 | ],
72 | "Shahar Peer": [
73 | "Shahar Peer",
74 | "Shuai Peng",
75 | "S Peng",
76 | "S.Peng"
77 | ],
78 | "Robin Haase": [
79 | "Robin Haase",
80 | "R.Haase",
81 | "Tommy Haas",
82 | "T.Haas"
83 | ],
84 | "Anabel Medina Garrigues": [
85 | "Anabel Medina Garrigues",
86 | "A. Medina Garrigues",
87 | "A Medina Garrigues",
88 | "A.Medina Garrigues"
89 | ],
90 | "Lourdes Dominguez Lino": [
91 | "Lourdes Dominguez Lino",
92 | "L Dominguez Lino",
93 | "L.Dominguez Lino"
94 | ],
95 | "Carla Suarez Navarro": [
96 | "Carla Suarez Navarro",
97 | "C Suarez Navarro",
98 | "C.Suarez Navarro"
99 | ],
100 | "Lara Arruabarrena": [
101 | "Lara Arruabarrena",
102 | "L Arruabarrena",
103 | "L.Arruabarrena"
104 | ],
105 | "Anastasia Pavlyuchenkova": [
106 | "Anastasia Pavlyuchenkova",
107 | "A Pavlyuchenkova",
108 | "A.Pavlyuchenkova"
109 | ],
110 | "Bojana Jovanovski": [
111 | "Bojana Jovanovski",
112 | "B Jovanovski",
113 | "B.Jovanovski"
114 | ],
115 | "Olga Govortsova": [
116 | "Olga Govortsova",
117 | "O Govortsova",
118 | "O.Govortsova"
119 | ],
120 | "Elina Svitolina": [
121 | "Elina Svitolina",
122 | "E Svitolina",
123 | "E.Svitolina"
124 | ],
125 | "Kristina Mladenovic": [
126 | "Kristina Mladenovic",
127 | "K Mladenovic",
128 | "K.Mladenovic"
129 | ],
130 | "Flavia Pennetta": [
131 | "Flavia Pennetta",
132 | "F Pennetta",
133 | "F.Pennetta"
134 | ],
135 | "Ekaterina Makarova": [
136 | "Ekaterina Makarova",
137 | "E Makarova",
138 | "E.Makarova"
139 | ],
140 | "Victoria Azarenka": [
141 | "Victoria Azarenka",
142 | "V Azarenka",
143 | "V.Azarenka"
144 | ],
145 | "Petra Kvitova": [
146 | "Petra Kvitova",
147 | "P Kvitova",
148 | "P.Kvitova"
149 | ],
150 | "Mandy Minella": [
151 | "Mandy Minella",
152 | "M Minella",
153 | "M.Minella"
154 | ],
155 | "Christina McHale": [
156 | "Christina McHale",
157 | "C McHale",
158 | "C.McHale"
159 | ],
160 | "Roberta Vinci": [
161 | "Roberta Vinci",
162 | "R Vinci",
163 | "R.Vinci"
164 | ],
165 | "Heather Watson": [
166 | "Heather Watson",
167 | "H Watson",
168 | "H.Watson"
169 | ],
170 | "Stephane Robert": [
171 | "Stephane Robert",
172 | "S.Robert",
173 | "Shelby Rogers"
174 | ],
175 | "Michael Berrer": [
176 | "Michael Berrer",
177 | "David Ferrer",
178 | "D.Ferrer"
179 | ],
180 | "Angelique Kerber": [
181 | "Angelique Kerber",
182 | "A Kerber",
183 | "A.Kerber"
184 | ],
185 | "Andreas Beck": [
186 | "Annika Beck",
187 | "Andreas Beck",
188 | "A.Beck"
189 | ],
190 | "Madison Keys": [
191 | "Madison Keys",
192 | "M Keys",
193 | "M.Keys"
194 | ],
195 | "Andrej Martin": [
196 | "Petra Martic",
197 | "P.Martic",
198 | "Andrej Martin"
199 | ],
200 | "Lauren Davis": [
201 | "Lauren Davis",
202 | "L Davis",
203 | "L.Davis"
204 | ],
205 | "Caroline Garcia": [
206 | "Caroline Garcia",
207 | "C Garcia",
208 | "C.Garcia"
209 | ],
210 | "Alison Riske": [
211 | "Alison Riske",
212 | "A Riske",
213 | "A.Riske"
214 | ],
215 | "Jimmy Wang": [
216 | "Jimmy Wang",
217 | "Y-T.Wang",
218 | "J.Ward"
219 | ],
220 | "Ying-Ying Duan": [
221 | "Ying-Ying Duan",
222 | "Y Duan",
223 | "Yung-Jan Chan"
224 | ],
225 | "Misaki Doi": [
226 | "Misaki Doi",
227 | "M Doi",
228 | "M.Doi"
229 | ],
230 | "Simona Halep": [
231 | "Simona Halep",
232 | "S Halep",
233 | "S.Halep"
234 | ],
235 | "Andy Murray": [
236 | "Andy Murray",
237 | "A.Murray",
238 | "S.Murray"
239 | ],
240 | "Mona Barthel": [
241 | "Mona Barthel",
242 | "M Barthel",
243 | "M.Barthel"
244 | ],
245 | "Kaia Kanepi": [
246 | "Kaia Kanepi",
247 | "K Kanepi",
248 | "K.Kanepi"
249 | ],
250 | "Karin Knapp": [
251 | "Karin Knapp",
252 | "K Knapp",
253 | "K.Knapp"
254 | ],
255 | "Jelena Jankovic": [
256 | "Jelena Jankovic",
257 | "J Jankovic",
258 | "J.Jankovic"
259 | ],
260 | "Ana Ivanovic": [
261 | "Ana Ivanovic",
262 | "A Ivanovic",
263 | "A.Ivanovic"
264 | ],
265 | "Andrea Petkovic": [
266 | "Andrea Petkovic",
267 | "A Petkovic",
268 | "A.Petkovic"
269 | ],
270 | "Alize Cornet": [
271 | "Alize Cornet",
272 | "A Cornet",
273 | "A.Cornet"
274 | ],
275 | "Camila Giorgi": [
276 | "Camila Giorgi",
277 | "C Giorgi",
278 | "C.Giorgi"
279 | ],
280 | "Sara Errani": [
281 | "Sara Errani",
282 | "S Errani",
283 | "S.Errani"
284 | ],
285 | "Jamie Hampton": [
286 | "Jamie Hampton",
287 | "J Hampton",
288 | "J.Hampton"
289 | ],
290 | "Lucie Hradecka": [
291 | "Lucie Hradecka",
292 | "L Hradecka",
293 | "L.Hradecka"
294 | ],
295 | "Sabine Lisicki": [
296 | "Sabine Lisicki",
297 | "S Lisicki",
298 | "S.Lisicki"
299 | ],
300 | "Sorana Cirstea": [
301 | "Sorana Cirstea",
302 | "S Cirstea",
303 | "S.Cirstea"
304 | ],
305 | "Samantha Stosur": [
306 | "Samantha Stosur",
307 | "S Stosur",
308 | "S.Stosur"
309 | ],
310 | "Julia Goerges": [
311 | "Julia Goerges",
312 | "J Goerges",
313 | "J.Goerges"
314 | ],
315 | "Mallory Burdette": [
316 | "Mallory Burdette",
317 | "M Burdette",
318 | "M.Burdette"
319 | ],
320 | "Yaroslava Shvedova": [
321 | "Yaroslava Shvedova",
322 | "Y Shvedova",
323 | "Y.Shvedova"
324 | ],
325 | "Sloane Stephens": [
326 | "Sloane Stephens",
327 | "S Stephens",
328 | "S.Stephens"
329 | ],
330 | "Kirsten Flipkens": [
331 | "Kirsten Flipkens",
332 | "K Flipkens",
333 | "K.Flipkens"
334 | ],
335 | "Ajla Tomljanovic": [
336 | "Ajla Tomljanovic",
337 | "A Tomljanovic",
338 | "A.Tomljanovic"
339 | ],
340 | "Varvara Lepchenko": [
341 | "Varvara Lepchenko",
342 | "V Lepchenko",
343 | "V.Lepchenko"
344 | ],
345 | "Maria Kirilenko": [
346 | "Maria Kirilenko",
347 | "M Kirilenko",
348 | "M.Kirilenko"
349 | ],
350 | "Sofia Arvidsson": [
351 | "Sofia Arvidsson",
352 | "S Arvidsson",
353 | "S.Arvidsson"
354 | ],
355 | "Eugenie Bouchard": [
356 | "Eugenie Bouchard",
357 | "E Bouchard",
358 | "E.Bouchard"
359 | ],
360 | "Anna Tatishvili": [
361 | "Anna Tatishvili",
362 | "A Tatishvili",
363 | "A.Tatishvili"
364 | ],
365 | "Francesca Schiavone": [
366 | "Francesca Schiavone",
367 | "F Schiavone",
368 | "F.Schiavone"
369 | ],
370 | "Chanelle Scheepers": [
371 | "Chanelle Scheepers",
372 | "C Scheepers",
373 | "C.Scheepers"
374 | ],
375 | "Daniela Hantuchova": [
376 | "Daniela Hantuchova",
377 | "D Hantuchova",
378 | "D.Hantuchova"
379 | ],
380 | "Yvonne Meusburger": [
381 | "Yvonne Meusburger",
382 | "Y Meusburger",
383 | "Y.Meusburger"
384 | ],
385 | "Galina Voskoboeva": [
386 | "Galina Voskoboeva",
387 | "G Voskoboeva",
388 | "G.Voskoboeva"
389 | ],
390 | "Kimiko Date-Krumm": [
391 | "Kimiko Date-Krumm",
392 | "K Date-Krumm",
393 | "K.Date-Krumm"
394 | ],
395 | "Coco Vandeweghe": [
396 | "Coco Vandeweghe",
397 | "C Vandeweghe",
398 | "C.Vandeweghe"
399 | ],
400 | "Barbora Zahlavova Strycova": [
401 | "Barbora Zahlavova Strycova",
402 | "B.Zahlavova Strycova"
403 | ],
404 | "Roberto Bautista Agut": [
405 | "Roberto Bautista Agut",
406 | "R.Bautista Agut"
407 | ],
408 | "Edouard Roger-Vasselin": [
409 | "Edouard Roger-Vasselin",
410 | "E.Roger-Vasselin"
411 | ],
412 | "Pablo Carreno Busta": [
413 | "Pablo Carreno Busta",
414 | "Pablo Carreno-Busta"
415 | ],
416 | "Daniel Gimeno-Traver": [
417 | "Daniel Gimeno-Traver",
418 | "D.Gimeno-Traver"
419 | ],
420 | "Michal Przysiezny": [
421 | "Michal Przysiezny",
422 | "M.Przysiezny"
423 | ],
424 | "Guillermo Garcia-Lopez": [
425 | "Guillermo Garcia-Lopez",
426 | "G.Garcia-Lopez"
427 | ],
428 | "Nina Bratchikova": [
429 | "Nina Bratchikova",
430 | "N.Bratchikova"
431 | ],
432 | "Yulia Putintseva": [
433 | "Yulia Putintseva",
434 | "Y.Putintseva"
435 | ],
436 | "Paula Ormaechea": [
437 | "Paula Ormaechea",
438 | "P Ormaechea"
439 | ],
440 | "Pauline Parmentier": [
441 | "Pauline Parmentier",
442 | "P.Parmentier"
443 | ],
444 | "Dinah Pfizenmaier": [
445 | "Dinah Pfizenmaier",
446 | "D Pfizenmaier"
447 | ],
448 | "Kei Nishikori": [
449 | "Kei Nishikori",
450 | "K.Nishikori"
451 | ],
452 | "Marcel Granollers": [
453 | "Marcel Granollers",
454 | "M.Granollers"
455 | ],
456 | "Sergiy Stakhovsky": [
457 | "Sergiy Stakhovsky",
458 | "S.Stakhovsky"
459 | ],
460 | "Dmitry Tursunov": [
461 | "Dmitry Tursunov",
462 | "D.Tursunov"
463 | ],
464 | "Marcos Baghdatis": [
465 | "Marcos Baghdatis",
466 | "M.Baghdatis"
467 | ],
468 | "Anna Schmiedlova": [
469 | "Anna Schmiedlova",
470 | "A.Schmiedlova"
471 | ],
472 | "Magdalena Rybarikova": [
473 | "Magdalena Rybarikova",
474 | "M.Rybarikova"
475 | ],
476 | "Igor Sijsling": [
477 | "Igor Sijsling",
478 | "I.Sijsling"
479 | ],
480 | "Olivia Rogowska": [
481 | "Olivia Rogowska",
482 | "O Rogowska"
483 | ],
484 | "Lesia Tsurenko": [
485 | "Lesia Tsurenko",
486 | "L.Tsurenko"
487 | ],
488 | "Julien Benneteau": [
489 | "Julien Benneteau",
490 | "J.Benneteau"
491 | ],
492 | "Lucie Safarova": [
493 | "Lucie Safarova",
494 | "L.Safarova"
495 | ],
496 | "Maria Sharapova": [
497 | "Maria Sharapova",
498 | "M.Sharapova"
499 | ],
500 | "Klara Zakopalova": [
501 | "Klara Zakopalova",
502 | "K.Zakopalova"
503 | ],
504 | "Tsvetana Pironkova": [
505 | "Tsvetana Pironkova",
506 | "T.Pironkova"
507 | ],
508 | "Wayne Odesnik": [
509 | "Wayne Odesnik",
510 | "W.Odesnik"
511 | ],
512 | "Michael Russell": [
513 | "Michael Russell",
514 | "M.Russell"
515 | ],
516 | "Grigor Dimitrov": [
517 | "Grigor Dimitrov",
518 | "G.Dimitrov"
519 | ],
520 | "Pablo Andujar": [
521 | "Pablo Andujar",
522 | "P.Andujar"
523 | ],
524 | "Adrian Mannarino": [
525 | "Adrian Mannarino",
526 | "A.Mannarino"
527 | ],
528 | "Kevin Anderson": [
529 | "Kevin Anderson",
530 | "K.Anderson"
531 | ],
532 | "Carlos Berlocq": [
533 | "Carlos Berlocq",
534 | "C.Berlocq"
535 | ],
536 | "Tomas Berdych": [
537 | "Tomas Berdych",
538 | "T.Berdych"
539 | ],
540 | "Stanislas Wawrinka": [
541 | "Stanislas Wawrinka",
542 | "S.Wawrinka"
543 | ],
544 | "Fabio Fognini": [
545 | "Fabio Fognini",
546 | "F.Fognini"
547 | ],
548 | "Elena Vesnina": [
549 | "Elena Vesnina",
550 | "E.Vesnina"
551 | ],
552 | "Santiago Giraldo": [
553 | "Santiago Giraldo",
554 | "S.Giraldo"
555 | ],
556 | "Adrian Ungur": [
557 | "Adrian Ungur",
558 | "A.Ungur"
559 | ],
560 | "Stefanie Voegele": [
561 | "Stefanie Voegele",
562 | "S.Voegele"
563 | ],
564 | "Julian Reister": [
565 | "Julian Reister",
566 | "J.Reister"
567 | ],
568 | "Jan-Lennard Struff": [
569 | "Jan-Lennard Struff",
570 | "J.Struff"
571 | ],
572 | "Lukasz Kubot": [
573 | "Lukasz Kubot",
574 | "L.Kubot"
575 | ],
576 | "Novak Djokovic": [
577 | "Novak Djokovic",
578 | "N.Djokovic"
579 | ],
580 | "Benoit Paire": [
581 | "Benoit Paire",
582 | "B.Paire"
583 | ],
584 | "Tommy Robredo": [
585 | "Tommy Robredo",
586 | "T.Robredo"
587 | ],
588 | "Marin Cilic": [
589 | "Marin Cilic",
590 | "M.Cilic"
591 | ],
592 | "Milos Raonic": [
593 | "Milos Raonic",
594 | "M.Raonic"
595 | ],
596 | "Bernard Tomic": [
597 | "Bernard Tomic",
598 | "B.Tomic"
599 | ],
600 | "Ricardas Berankis": [
601 | "Ricardas Berankis",
602 | "R.Berankis"
603 | ],
604 | "Daniel Brands": [
605 | "Daniel Brands",
606 | "D.Brands"
607 | ],
608 | "Romina Oprandi": [
609 | "Romina Oprandi",
610 | "R.Oprandi"
611 | ],
612 | "Mikhail Youzhny": [
613 | "Mikhail Youzhny",
614 | "M.Youzhny"
615 | ],
616 | "Juan Monaco": [
617 | "Juan Monaco",
618 | "J.Monaco"
619 | ],
620 | "Lukas Lacko": [
621 | "Lukas Lacko",
622 | "L.Lacko"
623 | ],
624 | "Thiemo De Bakker": [
625 | "Thiemo De Bakker",
626 | "T.De Bakker"
627 | ],
628 | "James Blake": [
629 | "James Blake",
630 | "J.Blake"
631 | ],
632 | "Grega Zemlja": [
633 | "Grega Zemlja",
634 | "G.Zemlja"
635 | ],
636 | "Tobias Kamke": [
637 | "Tobias Kamke",
638 | "T.Kamke"
639 | ],
640 | "Roger Federer": [
641 | "Roger Federer",
642 | "R.Federer"
643 | ],
644 | "Jurgen Zopp": [
645 | "Jurgen Zopp",
646 | "J.Zopp"
647 | ],
648 | "Alejandro Falla": [
649 | "Alejandro Falla",
650 | "A.Falla"
651 | ],
652 | "Denis Kudla": [
653 | "Denis Kudla",
654 | "D.Kudla"
655 | ],
656 | "Go Soeda": [
657 | "Go Soeda",
658 | "G.Soeda"
659 | ],
660 | "Guido Pella": [
661 | "Guido Pella",
662 | "G.Pella"
663 | ],
664 | "Jo-Wilfried Tsonga": [
665 | "Jo-Wilfried Tsonga",
666 | "J-W.Tsonga"
667 | ],
668 | "Irina-Camelia Begu": [
669 | "Irina-Camelia Begu",
670 | "I.Begu"
671 | ],
672 | "Guillaume Rufin": [
673 | "Guillaume Rufin",
674 | "G.Rufin"
675 | ],
676 | "Ayumi Morita": [
677 | "Ayumi Morita",
678 | "A.Morita"
679 | ],
680 | "Ashleigh Barty": [
681 | "Ashleigh Barty",
682 | "A Barty"
683 | ],
684 | "Rafael Nadal": [
685 | "Rafael Nadal",
686 | "R.Nadal"
687 | ],
688 | "Kurumi Nara": [
689 | "Kurumi Nara",
690 | "K Nara"
691 | ],
692 | "Steve Darcis": [
693 | "Steve Darcis",
694 | "S.Darcis"
695 | ],
696 | "Tatjana Maria": [
697 | "Tatjana Maria",
698 | "T.Maria"
699 | ],
700 | "Monica Puig": [
701 | "Monica Puig",
702 | "M.Puig"
703 | ],
704 | "Jeremy Chardy": [
705 | "Jeremy Chardy",
706 | "J.Chardy"
707 | ],
708 | "Vania King": [
709 | "Vania King",
710 | "V.King"
711 | ],
712 | "Albert Ramos": [
713 | "Albert Ramos",
714 | "A.Ramos"
715 | ],
716 | "Timea Babos": [
717 | "Timea Babos",
718 | "T.Babos"
719 | ],
720 | "Arantxa Rus": [
721 | "Arantxa Rus",
722 | "A.Rus"
723 | ],
724 | "Rajeev Ram": [
725 | "Rajeev Ram",
726 | "R.Ram"
727 | ],
728 | "Ivan Dodig": [
729 | "Ivan Dodig",
730 | "I.Dodig"
731 | ],
732 | "Gilles Simon": [
733 | "Gilles Simon",
734 | "G.Simon"
735 | ],
736 | "Matthew Ebden": [
737 | "Matthew Ebden",
738 | "M.Ebden"
739 | ],
740 | "Melanie Oudin": [
741 | "Melanie Oudin",
742 | "M.Oudin"
743 | ],
744 | "Nicolas Mahut": [
745 | "Nicolas Mahut",
746 | "N.Mahut"
747 | ],
748 | "Su-Wei Hsieh": [
749 | "Su-Wei Hsieh",
750 | "S-W.Hsieh"
751 | ],
752 | "Jan Hajek": [
753 | "Jan Hajek",
754 | "J.Hajek"
755 | ],
756 | "John Isner": [
757 | "John Isner",
758 | "J.Isner"
759 | ],
760 | "Jurgen Melzer": [
761 | "Jurgen Melzer",
762 | "J.Melzer"
763 | ],
764 | "Andreas Seppi": [
765 | "Andreas Seppi",
766 | "A.Seppi"
767 | ],
768 | "Donna Vekic": [
769 | "Donna Vekic",
770 | "D.Vekic"
771 | ],
772 | "Feliciano Lopez": [
773 | "Feliciano Lopez",
774 | "F.Lopez"
775 | ],
776 | "Steve Johnson": [
777 | "Steve Johnson",
778 | "S.Johnson"
779 | ],
780 | "Mathilde Johansson": [
781 | "Mathilde Johansson",
782 | "M.Johansson"
783 | ],
784 | "Tamira Paszek": [
785 | "Tamira Paszek",
786 | "T.Paszek"
787 | ],
788 | "Martin Klizan": [
789 | "Martin Klizan",
790 | "M.Klizan"
791 | ],
792 | "Sam Querrey": [
793 | "Sam Querrey",
794 | "S.Querrey"
795 | ],
796 | "Kiki Bertens": [
797 | "Kiki Bertens",
798 | "K.Bertens"
799 | ],
800 | "Marion Bartoli": [
801 | "Marion Bartoli",
802 | "M.Bartoli"
803 | ],
804 | "M Koehler": [
805 | "M Koehler",
806 | "M.Koehler"
807 | ],
808 | "Irena Pavlovic": [
809 | "Ivo Karlovic",
810 | "Irena Pavlovic"
811 | ],
812 | "Jerzy Janowicz": [
813 | "Jerzy Janowicz",
814 | "J.Janowicz"
815 | ],
816 | "Blaz Kavcic": [
817 | "Blaz Kavcic",
818 | "B.Kavcic"
819 | ],
820 | "Marina Erakovic": [
821 | "Marina Erakovic",
822 | "M.Erakovic"
823 | ],
824 | "Aljaz Bedene": [
825 | "Aljaz Bedene",
826 | "A.Bedene"
827 | ],
828 | "Martin Alund": [
829 | "Martin Alund",
830 | "M.Alund"
831 | ],
832 | "Jarkko Nieminen": [
833 | "Jarkko Nieminen",
834 | "J.Nieminen"
835 | ],
836 | "Jesse Levine": [
837 | "Jesse Levine",
838 | "J.Levine"
839 | ],
840 | "Paolo Lorenzi": [
841 | "Paolo Lorenzi",
842 | "P.Lorenzi"
843 | ],
844 | "Ryan Harrison": [
845 | "Ryan Harrison",
846 | "R.Harrison"
847 | ],
848 | "Johanna Larsson": [
849 | "Johanna Larsson",
850 | "J.Larsson"
851 | ],
852 | "Nadia Petrova": [
853 | "Nadia Petrova",
854 | "N.Petrova"
855 | ],
856 | "Paul-Henri Mathieu": [
857 | "Paul-Henri Mathieu",
858 | "P-H.Mathieu"
859 | ],
860 | "David Goffin": [
861 | "David Goffin",
862 | "D.Goffin"
863 | ],
864 | "Olga Puchkova": [
865 | "Olga Puchkova",
866 | "O.Puchkova"
867 | ],
868 | "Viktor Troicki": [
869 | "Viktor Troicki",
870 | "V.Troicki"
871 | ],
872 | "Alejandro Gonzalez": [
873 | "Alejandro Gonzalez",
874 | "Maximo Gonzalez"
875 | ],
876 | "Albert Montanes": [
877 | "Albert Montanes",
878 | "A.Montanes"
879 | ],
880 | "Evgeny Donskoy": [
881 | "Evgeny Donskoy",
882 | "E.Donskoy"
883 | ],
884 | "Ernests Gulbis": [
885 | "Ernests Gulbis",
886 | "E.Gulbis"
887 | ],
888 | "Richard Gasquet": [
889 | "Richard Gasquet",
890 | "R.Gasquet"
891 | ],
892 | "Marc Gicquel": [
893 | "Marc Gicquel",
894 | "M.Gicquel"
895 | ],
896 | "Victor Hanescu": [
897 | "Victor Hanescu",
898 | "V.Hanescu"
899 | ],
900 | "Fernando Verdasco": [
901 | "Fernando Verdasco",
902 | "F.Verdasco"
903 | ],
904 | "Vesna Dolonc": [
905 | "Vesna Dolonc",
906 | "V.Dolonc"
907 | ],
908 | "Michael Llodra": [
909 | "Michael Llodra",
910 | "M.Llodra"
911 | ],
912 | "Virginie Razzano": [
913 | "Virginie Razzano",
914 | "V.Razzano"
915 | ],
916 | "Simone Bolelli": [
917 | "Simone Bolelli",
918 | "S.Bolelli"
919 | ],
920 | "Xavier Malisse": [
921 | "Xavier Malisse",
922 | "X.Malisse"
923 | ],
924 | "Marinko Matosevic": [
925 | "Marinko Matosevic",
926 | "M.Matosevic"
927 | ],
928 | "Denis Istomin": [
929 | "Denis Istomin",
930 | "D.Istomin"
931 | ],
932 | "Alexandra Cadantu": [
933 | "Alexandra Cadantu",
934 | "A.Cadantu"
935 | ],
936 | "Lleyton Hewitt": [
937 | "Lleyton Hewitt",
938 | "L.Hewitt"
939 | ],
940 | "Julia Glushko": [
941 | "Julia Glushko",
942 | "J Glushko"
943 | ],
944 | "Jana Cepelova": [
945 | "Jana Cepelova",
946 | "J.Cepelova"
947 | ],
948 | "Dominika Cibulkova": [
949 | "Dominika Cibulkova",
950 | "D.Cibulkova"
951 | ],
952 | "Radek Stepanek": [
953 | "Radek Stepanek",
954 | "R.Stepanek"
955 | ],
956 | "Petra Cetkovska": [
957 | "Petra Cetkovska",
958 | "P.Cetkovska"
959 | ],
960 | "Nicolas Almagro": [
961 | "Nicolas Almagro",
962 | "N.Almagro"
963 | ],
964 | "Yanina Wickmayer": [
965 | "Yanina Wickmayer",
966 | "Y.Wickmayer"
967 | ],
968 | "Horacio Zeballos": [
969 | "Horacio Zeballos",
970 | "H.Zeballos"
971 | ],
972 | "Vasek Pospisil": [
973 | "Vasek Pospisil",
974 | "V.Pospisil"
975 | ],
976 | "Elena Baltacha": [
977 | "Elena Baltacha",
978 | "E.Baltacha"
979 | ],
980 | "Monica Niculescu": [
981 | "Monica Niculescu",
982 | "M.Niculescu"
983 | ],
984 | "Garbine Muguruza": [
985 | "Garbine Muguruza",
986 | "G.Muguruza"
987 | ],
988 | "Teymuraz Gabashvili": [
989 | "Teymuraz Gabashvili",
990 | "T.Gabashvili"
991 | ],
992 | "Andrea Hlavackova": [
993 | "Andrea Hlavackova",
994 | "A.Hlavackova"
995 | ],
996 | "Kenny De Schepper": [
997 | "Kenny De Schepper",
998 | "K.De Schepper"
999 | ],
1000 | "James Duckworth": [
1001 | "James Duckworth",
1002 | "J.Duckworth"
1003 | ],
1004 | "Janko Tipsarevic": [
1005 | "Janko Tipsarevic",
1006 | "J.Tipsarevic"
1007 | ],
1008 | "Maria-Teresa Torro-Flor": [
1009 | "Maria-Teresa Torro-Flor",
1010 | "M.Torro-Flor"
1011 | ],
1012 | "Carina Witthoeft": [
1013 | "Carina Witthoeft",
1014 | "C.Witthoeft"
1015 | ],
1016 | "Alex Bogomolov Jr.": [
1017 | "Alex Bogomolov Jr.",
1018 | "A.Bogomolov Jr."
1019 | ],
1020 | "Alexandr Dolgopolov": [
1021 | "Alexandr Dolgopolov",
1022 | "A.Dolgopolov"
1023 | ],
1024 | "Philipp Petzschner": [
1025 | "Philipp Petzschner",
1026 | "P.Petzschner"
1027 | ],
1028 | "Rogerio Dutra Silva": [
1029 | "Rogerio Dutra Silva",
1030 | "R.Dutra Silva"
1031 | ],
1032 | "Mirjana Lucic-Baroni": [
1033 | "Mirjana Lucic-Baroni",
1034 | "M.Lucic-Baroni"
1035 | ],
1036 | "Mariana Duque-Marino": [
1037 | "Mariana Duque-Marino",
1038 | "M.Duque-Marino"
1039 | ],
1040 | "Bethanie Mattek-Sands": [
1041 | "Bethanie Mattek-Sands",
1042 | "B.Mattek-Sands"
1043 | ],
1044 | "Philipp Kohlschreiber": [
1045 | "Philipp Kohlschreiber",
1046 | "P.Kohlschreiber"
1047 | ],
1048 | "Andreas Haider-Maurer": [
1049 | "Andreas Haider-Maurer",
1050 | "A.Haider-Maurer"
1051 | ],
1052 | "Silvia Soler-Espinosa": [
1053 | "Silvia Soler-Espinosa",
1054 | "S.Soler-Espinosa"
1055 | ],
1056 | "Alla Kudryavtseva": [
1057 | "Alla Kudryavtseva"
1058 | ],
1059 | "Juan Martin Del Potro": [
1060 | "Juan Martin Del Potro"
1061 | ],
1062 | "Aleksandr Nedovyesov": [
1063 | "Aleksandr Nedovyesov"
1064 | ],
1065 | "Peter Gojowczyk": [
1066 | "Peter Gojowczyk"
1067 | ],
1068 | "Mikhail Kukushkin": [
1069 | "Mikhail Kukushkin"
1070 | ],
1071 | "Somdev Devvarman": [
1072 | "Somdev Devvarman"
1073 | ],
1074 | "Maria Joao Koehler": [
1075 | "Maria Joao Koehler"
1076 | ],
1077 | "Sandra Zahlavova": [
1078 | "Sandra Zahlavova"
1079 | ],
1080 | "Damir Dzumhur": [
1081 | "Damir Dzumhur"
1082 | ],
1083 | "Nick Kyrgios": [
1084 | "Nick Kyrgios"
1085 | ],
1086 | "Thomaz Bellucci": [
1087 | "Thomaz Bellucci"
1088 | ],
1089 | "Filippo Volandri": [
1090 | "Filippo Volandri"
1091 | ],
1092 | "Irina Falconi": [
1093 | "Irina Falconi"
1094 | ],
1095 | "Pablo Cuevas": [
1096 | "Pablo Cuevas"
1097 | ],
1098 | "Storm Sanders": [
1099 | "Storm Sanders"
1100 | ],
1101 | "Ana Konjuh": [
1102 | "Ana Konjuh"
1103 | ],
1104 | "Jiri Vesely": [
1105 | "Jiri Vesely"
1106 | ],
1107 | "Frank Dancevic": [
1108 | "Frank Dancevic"
1109 | ],
1110 | "Tim Smyczek": [
1111 | "Tim Smyczek"
1112 | ],
1113 | "Vincent Millot": [
1114 | "Vincent Millot"
1115 | ],
1116 | "T.Moore": [
1117 | "T.Moore"
1118 | ],
1119 | "Daniel Evans": [
1120 | "Daniel Evans"
1121 | ],
1122 | "Samuel Groth": [
1123 | "Samuel Groth"
1124 | ],
1125 | "Jack Sock": [
1126 | "Jack Sock"
1127 | ],
1128 | "Joao Sousa": [
1129 | "Joao Sousa"
1130 | ],
1131 | "Dudi Sela": [
1132 | "Dudi Sela"
1133 | ],
1134 | "Blaz Rola": [
1135 | "Blaz Rola"
1136 | ],
1137 | "Florent Serra": [
1138 | "Florent Serra"
1139 | ],
1140 | "Pere Riba": [
1141 | "Pere Riba"
1142 | ],
1143 | "J.Konta": [
1144 | "J.Konta"
1145 | ],
1146 | "Tadeja Majeric": [
1147 | "Tadeja Majeric"
1148 | ],
1149 | "David Guez": [
1150 | "David Guez"
1151 | ],
1152 | "Grace Min": [
1153 | "Grace Min"
1154 | ],
1155 | "Katarzyna Piter": [
1156 | "Katarzyna Piter"
1157 | ],
1158 | "M.Reid": [
1159 | "M.Reid"
1160 | ],
1161 | "V Duval": [
1162 | "V Duval"
1163 | ],
1164 | "Gilles Muller": [
1165 | "Gilles Muller"
1166 | ],
1167 | "Aravane Rezai": [
1168 | "Aravane Rezai"
1169 | ],
1170 | "Dominic Thiem": [
1171 | "Dominic Thiem"
1172 | ],
1173 | "Donald Young": [
1174 | "Donald Young"
1175 | ],
1176 | "D.Brown": [
1177 | "D.Brown"
1178 | ],
1179 | "A.Glatch": [
1180 | "A.Glatch"
1181 | ],
1182 | "Melinda Czink": [
1183 | "Melinda Czink"
1184 | ],
1185 | "Bradley Klahn": [
1186 | "Bradley Klahn"
1187 | ],
1188 | "G.Elias": [
1189 | "G.Elias"
1190 | ],
1191 | "Dusan Lajovic": [
1192 | "Dusan Lajovic"
1193 | ],
1194 | "Belinda Bencic": [
1195 | "Belinda Bencic"
1196 | ],
1197 | "Zuzana Kucova": [
1198 | "Zuzana Kucova"
1199 | ],
1200 | "Zarina Diyas": [
1201 | "Zarina Diyas"
1202 | ],
1203 | "Sachia Vickery": [
1204 | "Sachia Vickery"
1205 | ],
1206 | "Teliana Pereira": [
1207 | "Teliana Pereira"
1208 | ],
1209 | "Maxime Teixeira": [
1210 | "Maxime Teixeira"
1211 | ],
1212 | "M.Camerin": [
1213 | "M.Camerin"
1214 | ],
1215 | "Jordan Thompson": [
1216 | "Jordan Thompson"
1217 | ],
1218 | "K.Edmund": [
1219 | "K.Edmund"
1220 | ],
1221 | "O.Rochus": [
1222 | "O.Rochus"
1223 | ],
1224 | "Katerina Siniakova": [
1225 | "Katerina Siniakova"
1226 | ],
1227 | "Gael Monfils": [
1228 | "Gael Monfils"
1229 | ],
1230 | "Andrey Golubev": [
1231 | "Andrey Golubev"
1232 | ],
1233 | "Casey Dellacqua": [
1234 | "Casey Dellacqua"
1235 | ],
1236 | "Polona Hercog": [
1237 | "Polona Hercog"
1238 | ],
1239 | "I.Andreev": [
1240 | "I.Andreev"
1241 | ],
1242 | "M.Krajicek": [
1243 | "M.Krajicek"
1244 | ],
1245 | "B.Reynolds": [
1246 | "B.Reynolds"
1247 | ],
1248 | "Lucas Pouille": [
1249 | "Lucas Pouille"
1250 | ],
1251 | "B.Knittel": [
1252 | "B.Knittel"
1253 | ],
1254 | "Luksika Kumkhum": [
1255 | "Luksika Kumkhum"
1256 | ],
1257 | "Federico Delbonis": [
1258 | "Federico Delbonis"
1259 | ],
1260 | "E.Birnerova": [
1261 | "E.Birnerova"
1262 | ],
1263 | "Thomas Fabbiano": [
1264 | "Thomas Fabbiano"
1265 | ],
1266 | "A Dulgheru": [
1267 | "A Dulgheru"
1268 | ],
1269 | "Nikolay Davydenko": [
1270 | "Nikolay Davydenko"
1271 | ],
1272 | "Illya Marchenko": [
1273 | "Illya Marchenko"
1274 | ],
1275 | "Nadiya Kichenok": [
1276 | "Nadiya Kichenok"
1277 | ],
1278 | "Albano Olivetti": [
1279 | "Albano Olivetti"
1280 | ],
1281 | "Claire Feuerstein": [
1282 | "Claire Feuerstein"
1283 | ],
1284 | "Hao Chen Tang": [
1285 | "Hao Chen Tang"
1286 | ],
1287 | "J.Del Potro": [
1288 | "J.Del Potro"
1289 | ],
1290 | "V Dushevina": [
1291 | "V Dushevina"
1292 | ],
1293 | "Vera Zvonareva": [
1294 | "Vera Zvonareva"
1295 | ],
1296 | "Jarmila Gajdosova": [
1297 | "Jarmila Gajdosova"
1298 | ],
1299 | "Collin Altamirano": [
1300 | "Collin Altamirano"
1301 | ],
1302 | "Thanasi Kokkinakis": [
1303 | "Thanasi Kokkinakis"
1304 | ],
1305 | "A.Keothavong": [
1306 | "A.Keothavong"
1307 | ],
1308 | "Yuliya Beygelzimer": [
1309 | "Yuliya Beygelzimer"
1310 | ],
1311 | "Jesse Huta Galung": [
1312 | "Jesse Huta Galung"
1313 | ],
1314 | "Alison Van Uytvanck": [
1315 | "Alison Van Uytvanck"
1316 | ],
1317 | "Stephanie Foretz Gacon": [
1318 | "Stephanie Foretz Gacon"
1319 | ],
1320 | "Patricia Mayr-Achleitner": [
1321 | "Patricia Mayr-Achleitner"
1322 | ],
1323 | "Anna Karolina Schmiedlova": [
1324 | "Anna Karolina Schmiedlova"
1325 | ],
1326 | "E.Cabeza Candela": [
1327 | "E.Cabeza Candela"
1328 | ],
1329 | "M.Larcher De Brito": [
1330 | "M.Larcher De Brito"
1331 | ],
1332 | "Daniel Munoz-De La Nava": [
1333 | "Daniel Munoz-De La Nava"
1334 | ]
1335 | }
1336 |
--------------------------------------------------------------------------------
/tennis/merge.csv:
--------------------------------------------------------------------------------
1 | original,mergic
2 | Blaz Rola,Blaz Rola
3 | Dominika Cibulkova,Dominika Cibulkova
4 | D.Cibulkova,Dominika Cibulkova
5 | Florian Mayer,Florian Mayer
6 | F.Mayer,Florian Mayer
7 | Aljaz Bedene,Aljaz Bedene
8 | A.Bedene,Aljaz Bedene
9 | Pablo Carreno-Busta,Pablo Carreno-Busta
10 | Pablo Carreno Busta,Pablo Carreno-Busta
11 | Casey Dellacqua,Casey Dellacqua
12 | Zuzana Kucova,Zuzana Kucova
13 | Julien Benneteau,Julien Benneteau
14 | J.Benneteau,Julien Benneteau
15 | Donna Vekic,Donna Vekic
16 | D.Vekic,Donna Vekic
17 | Collin Altamirano,Collin Altamirano
18 | Tatjana Maria,Tatjana Maria
19 | T.Maria,Tatjana Maria
20 | Belinda Bencic,Belinda Bencic
21 | Silvia Soler-Espinosa,Silvia Soler-Espinosa
22 | S.Soler-Espinosa,Silvia Soler-Espinosa
23 | Claire Feuerstein,Claire Feuerstein
24 | M.Reid,M.Reid
25 | Katarzyna Piter,Katarzyna Piter
26 | Patricia Mayr-Achleitner,Patricia Mayr-Achleitner
27 | Paula Ormaechea,Paula Ormaechea
28 | P Ormaechea,Paula Ormaechea
29 | Maria Joao Koehler,Maria Joao Koehler
30 | Nikolay Davydenko,Nikolay Davydenko
31 | Caroline Wozniacki,Caroline Wozniacki
32 | C Wozniacki,Caroline Wozniacki
33 | C.Wozniacki,Caroline Wozniacki
34 | C Wozniack,Caroline Wozniacki
35 | Anastasia Pavlyuchenkova,Anastasia Pavlyuchenkova
36 | A.Pavlyuchenkova,Anastasia Pavlyuchenkova
37 | A Pavlyuchenkova,Anastasia Pavlyuchenkova
38 | Evgeny Donskoy,Evgeny Donskoy
39 | E.Donskoy,Evgeny Donskoy
40 | Nina Bratchikova,Nina Bratchikova
41 | N.Bratchikova,Nina Bratchikova
42 | Nadiya Kichenok,Nadiya Kichenok
43 | Mariana Duque-Marino,Mariana Duque-Marino
44 | M.Duque-Marino,Mariana Duque-Marino
45 | Julia Glushko,Julia Glushko
46 | J Glushko,Julia Glushko
47 | J.Janowicz,Jerzy Janowicz
48 | Jerzy Janowicz,Jerzy Janowicz
49 | Victoria Azarenka,Victoria Azarenka
50 | V.Azarenka,Victoria Azarenka
51 | V Azarenka,Victoria Azarenka
52 | Klara Zakopalova,Klara Zakopalova
53 | K.Zakopalova,Klara Zakopalova
54 | C Suarez Navarro,Carla Suarez Navarro
55 | Carla Suarez Navarro,Carla Suarez Navarro
56 | C.Suarez Navarro,Carla Suarez Navarro
57 | Lucie Hradecka,Lucie Hradecka
58 | L.Hradecka,Lucie Hradecka
59 | L Hradecka,Lucie Hradecka
60 | Kristina Mladenovic,Kristina Mladenovic
61 | K.Mladenovic,Kristina Mladenovic
62 | K Mladenovic,Kristina Mladenovic
63 | Johanna Larsson,Johanna Larsson
64 | J.Larsson,Johanna Larsson
65 | Simona Halep,Simona Halep
66 | S.Halep,Simona Halep
67 | S Halep,Simona Halep
68 | Kenny De Schepper,Kenny De Schepper
69 | K.De Schepper,Kenny De Schepper
70 | Alejandro Falla,Alejandro Falla
71 | A.Falla,Alejandro Falla
72 | Alla Kudryavtseva,Alla Kudryavtseva
73 | Sandra Zahlavova,Sandra Zahlavova
74 | Katerina Siniakova,Katerina Siniakova
75 | Xavier Malisse,Xavier Malisse
76 | X.Malisse,Xavier Malisse
77 | K Date-Krumm,Kimiko Date-Krumm
78 | Kimiko Date-Krumm,Kimiko Date-Krumm
79 | K.Date-Krumm,Kimiko Date-Krumm
80 | T.Kamke,Tobias Kamke
81 | Tobias Kamke,Tobias Kamke
82 | K.Bertens,Kiki Bertens
83 | Kiki Bertens,Kiki Bertens
84 | Shahar Peer,Shahar Peer
85 | David Goffin,David Goffin
86 | D.Goffin,David Goffin
87 | Misaki Doi,Misaki Doi
88 | M Doi,Misaki Doi
89 | M.Doi,Misaki Doi
90 | Tim Smyczek,Tim Smyczek
91 | P.Cetkovska,Petra Cetkovska
92 | Petra Cetkovska,Petra Cetkovska
93 | Julia Goerges,Julia Goerges
94 | J.Goerges,Julia Goerges
95 | J Goerges,Julia Goerges
96 | Jurgen Melzer,Jurgen Melzer
97 | J.Melzer,Jurgen Melzer
98 | Brian Baker,Brian Baker
99 | Monica Niculescu,Monica Niculescu
100 | M.Niculescu,Monica Niculescu
101 | Jan Hajek,Jan Hajek
102 | J.Hajek,Jan Hajek
103 | Anna Karolina Schmiedlova,Anna Karolina Schmiedlova
104 | Anna Schmiedlova,Anna Karolina Schmiedlova
105 | A.Schmiedlova,Anna Karolina Schmiedlova
106 | N.Djokovic,Novak Djokovic
107 | Novak Djokovic,Novak Djokovic
108 | M.Kirilenko,Maria Kirilenko
109 | Maria Kirilenko,Maria Kirilenko
110 | M Kirilenko,Maria Kirilenko
111 | Ekaterina Makarova,Ekaterina Makarova
112 | E Makarova,Ekaterina Makarova
113 | E.Makarova,Ekaterina Makarova
114 | Lauren Davis,Lauren Davis
115 | L Davis,Lauren Davis
116 | L.Davis,Lauren Davis
117 | A.Glatch,A.Glatch
118 | Olivia Rogowska,Olivia Rogowska
119 | O Rogowska,Olivia Rogowska
120 | Elena Vesnina,Elena Vesnina
121 | E.Vesnina,Elena Vesnina
122 | A.Bogomolov Jr.,Alex Bogomolov Jr.
123 | Alex Bogomolov Jr.,Alex Bogomolov Jr.
124 | Elena Baltacha,Elena Baltacha
125 | E.Baltacha,Elena Baltacha
126 | Frank Dancevic,Frank Dancevic
127 | Eugenie Bouchard,Eugenie Bouchard
128 | E.Bouchard,Eugenie Bouchard
129 | E Bouchard,Eugenie Bouchard
130 | Roger Federer,Roger Federer
131 | R.Federer,Roger Federer
132 | Daniel Munoz-De La Nava,Daniel Munoz-De La Nava
133 | M.Barthel,Mona Barthel
134 | M Barthel,Mona Barthel
135 | Mona Barthel,Mona Barthel
136 | Rhyne Williams,Rhyne Williams
137 | Thiemo De Bakker,Thiemo De Bakker
138 | T.De Bakker,Thiemo De Bakker
139 | Thiemo de Bakker,Thiemo De Bakker
140 | B.Knittel,B.Knittel
141 | Fernando Verdasco,Fernando Verdasco
142 | F.Verdasco,Fernando Verdasco
143 | Tadeja Majeric,Tadeja Majeric
144 | Yen-Hsun Lu,Yen-Hsun Lu
145 | Y-H.Lu,Yen-Hsun Lu
146 | Karin Knapp,Karin Knapp
147 | K Knapp,Karin Knapp
148 | K.Knapp,Karin Knapp
149 | A Petkovic,Andrea Petkovic
150 | Andrea Petkovic,Andrea Petkovic
151 | A.Petkovic,Andrea Petkovic
152 | Guillaume Rufin,Guillaume Rufin
153 | G.Rufin,Guillaume Rufin
154 | Victor Hanescu,Victor Hanescu
155 | V.Hanescu,Victor Hanescu
156 | Grigor Dimitrov,Grigor Dimitrov
157 | G.Dimitrov,Grigor Dimitrov
158 | S.Arvidsson,Sofia Arvidsson
159 | Sofia Arvidsson,Sofia Arvidsson
160 | S Arvidsson,Sofia Arvidsson
161 | Caroline Garcia,Caroline Garcia
162 | C Garcia,Caroline Garcia
163 | C.Garcia,Caroline Garcia
164 | John Isner,John Isner
165 | J.Isner,John Isner
166 | Rogerio Dutra Silva,Rogerio Dutra Silva
167 | R.Dutra Silva,Rogerio Dutra Silva
168 | Ricardas Berankis,Ricardas Berankis
169 | R.Berankis,Ricardas Berankis
170 | Somdev Devvarman,Somdev Devvarman
171 | T.Moore,T.Moore
172 | F.Pennetta,Flavia Pennetta
173 | Flavia Pennetta,Flavia Pennetta
174 | F Pennetta,Flavia Pennetta
175 | Edouard Roger-Vasselin,Edouard Roger-Vasselin
176 | E.Roger-Vasselin,Edouard Roger-Vasselin
177 | O.Rochus,O.Rochus
178 | Marcos Baghdatis,Marcos Baghdatis
179 | M.Baghdatis,Marcos Baghdatis
180 | Grega Zemlja,Grega Zemlja
181 | G.Zemlja,Grega Zemlja
182 | Marc Gicquel,Marc Gicquel
183 | M.Gicquel,Marc Gicquel
184 | J.Konta,J.Konta
185 | J.Struff,Jan-Lennard Struff
186 | Jan-Lennard Struff,Jan-Lennard Struff
187 | A Ivanovic,Ana Ivanovic
188 | Ana Ivanovic,Ana Ivanovic
189 | A.Ivanovic,Ana Ivanovic
190 | Lucie Safarova,Lucie Safarova
191 | L.Safarova,Lucie Safarova
192 | Nicolas Almagro,Nicolas Almagro
193 | N.Almagro,Nicolas Almagro
194 | Ashleigh Barty,Ashleigh Barty
195 | A Barty,Ashleigh Barty
196 | Hao Chen Tang,Hao Chen Tang
197 | R Vinci,Roberta Vinci
198 | Roberta Vinci,Roberta Vinci
199 | R.Vinci,Roberta Vinci
200 | Elina Svitolina,Elina Svitolina
201 | E Svitolina,Elina Svitolina
202 | E.Svitolina,Elina Svitolina
203 | T.Berdych,Tomas Berdych
204 | Tomas Berdych,Tomas Berdych
205 | Y.Meusburger,Yvonne Meusburger
206 | Yvonne Meusburger,Yvonne Meusburger
207 | Y Meusburger,Yvonne Meusburger
208 | L Robson,Laura Robson
209 | Laura Robson,Laura Robson
210 | L.Robson,Laura Robson
211 | P.Kohlschreiber,Philipp Kohlschreiber
212 | Philipp Kohlschreiber,Philipp Kohlschreiber
213 | Stanislas Wawrinka,Stanislas Wawrinka
214 | S.Wawrinka,Stanislas Wawrinka
215 | Maximo Gonzalez,Maximo Gonzalez
216 | Sam Querrey,Sam Querrey
217 | S.Querrey,Sam Querrey
218 | Lleyton Hewitt,Lleyton Hewitt
219 | L.Hewitt,Lleyton Hewitt
220 | Ernests Gulbis,Ernests Gulbis
221 | E.Gulbis,Ernests Gulbis
222 | Albert Ramos,Albert Ramos
223 | A.Ramos,Albert Ramos
224 | Melinda Czink,Melinda Czink
225 | Madison Keys,Madison Keys
226 | M.Keys,Madison Keys
227 | M Keys,Madison Keys
228 | Dudi Sela,Dudi Sela
229 | F Schiavone,Francesca Schiavone
230 | Francesca Schiavone,Francesca Schiavone
231 | F.Schiavone,Francesca Schiavone
232 | J.Hampton,Jamie Hampton
233 | Jamie Hampton,Jamie Hampton
234 | J Hampton,Jamie Hampton
235 | Ivan Dodig,Ivan Dodig
236 | I.Dodig,Ivan Dodig
237 | Lucas Pouille,Lucas Pouille
238 | Janko Tipsarevic,Janko Tipsarevic
239 | J.Tipsarevic,Janko Tipsarevic
240 | L.Tsurenko,Lesia Tsurenko
241 | Lesia Tsurenko,Lesia Tsurenko
242 | Jo-Wilfried Tsonga,Jo-Wilfried Tsonga
243 | J-W.Tsonga,Jo-Wilfried Tsonga
244 | Mallory Burdette,Mallory Burdette
245 | M Burdette,Mallory Burdette
246 | M.Burdette,Mallory Burdette
247 | Daniel Gimeno-Traver,Daniel Gimeno-Traver
248 | D.Gimeno-Traver,Daniel Gimeno-Traver
249 | L Arruabarrena,Lara Arruabarrena
250 | Lara Arruabarrena,Lara Arruabarrena
251 | L.Arruabarrena,Lara Arruabarrena
252 | Polona Hercog,Polona Hercog
253 | P.Andujar,Pablo Andujar
254 | Pablo Andujar,Pablo Andujar
255 | S.Giraldo,Santiago Giraldo
256 | Santiago Giraldo,Santiago Giraldo
257 | J.Duckworth,James Duckworth
258 | James Duckworth,James Duckworth
259 | S.Bolelli,Simone Bolelli
260 | Simone Bolelli,Simone Bolelli
261 | Jana Cepelova,Jana Cepelova
262 | J.Cepelova,Jana Cepelova
263 | A.Haider-Maurer,Andreas Haider-Maurer
264 | Andreas Haider-Maurer,Andreas Haider-Maurer
265 | Tamira Paszek,Tamira Paszek
266 | T.Paszek,Tamira Paszek
267 | Sachia Vickery,Sachia Vickery
268 | Donald Young,Donald Young
269 | Tommy Robredo,Tommy Robredo
270 | T.Robredo,Tommy Robredo
271 | V.Dolonc,Vesna Dolonc
272 | Vesna Dolonc,Vesna Dolonc
273 | I.Sijsling,Igor Sijsling
274 | Igor Sijsling,Igor Sijsling
275 | Kevin Anderson,Kevin Anderson
276 | K.Anderson,Kevin Anderson
277 | D.Brown,D.Brown
278 | Jimmy Wang,Jimmy Wang
279 | Y-T.Wang,Jimmy Wang
280 | C Vandeweghe,Coco Vandeweghe
281 | Coco Vandeweghe,Coco Vandeweghe
282 | C.Vandeweghe,Coco Vandeweghe
283 | K.Edmund,K.Edmund
284 | I.Begu,Irina-Camelia Begu
285 | Irina-Camelia Begu,Irina-Camelia Begu
286 | J.Zheng,Jie Zheng
287 | J Zheng,Jie Zheng
288 | Jie Zheng,Jie Zheng
289 | Gael Monfils,Gael Monfils
290 | Thomas Fabbiano,Thomas Fabbiano
291 | Teliana Pereira,Teliana Pereira
292 | W.Odesnik,Wayne Odesnik
293 | Wayne Odesnik,Wayne Odesnik
294 | S.Cirstea,Sorana Cirstea
295 | S Cirstea,Sorana Cirstea
296 | Sorana Cirstea,Sorana Cirstea
297 | Blaz Kavcic,Blaz Kavcic
298 | B.Kavcic,Blaz Kavcic
299 | F.Fognini,Fabio Fognini
300 | Fabio Fognini,Fabio Fognini
301 | S.Stakhovsky,Sergiy Stakhovsky
302 | Sergiy Stakhovsky,Sergiy Stakhovsky
303 | A.Mannarino,Adrian Mannarino
304 | Adrian Mannarino,Adrian Mannarino
305 | C.McHale,Christina McHale
306 | Christina McHale,Christina McHale
307 | C McHale,Christina McHale
308 | Bernard Tomic,Bernard Tomic
309 | B.Tomic,Bernard Tomic
310 | V.King,Vania King
311 | Vania King,Vania King
312 | Su-Wei Hsieh,Su-Wei Hsieh
313 | S-W.Hsieh,Su-Wei Hsieh
314 | M.Klizan,Martin Klizan
315 | Martin Klizan,Martin Klizan
316 | A Kerber,Angelique Kerber
317 | A.Kerber,Angelique Kerber
318 | Angelique Kerber,Angelique Kerber
319 | L.Mayer,Leonardo Mayer
320 | Leonardo Mayer,Leonardo Mayer
321 | Illya Marchenko,Illya Marchenko
322 | M.Torro-Flor,Maria-Teresa Torro-Flor
323 | Maria-Teresa Torro-Flor,Maria-Teresa Torro-Flor
324 | Melanie Oudin,Melanie Oudin
325 | M.Oudin,Melanie Oudin
326 | V.Lepchenko,Varvara Lepchenko
327 | Varvara Lepchenko,Varvara Lepchenko
328 | V Lepchenko,Varvara Lepchenko
329 | O Govortsova,Olga Govortsova
330 | O.Govortsova,Olga Govortsova
331 | Olga Govortsova,Olga Govortsova
332 | Luksika Kumkhum,Luksika Kumkhum
333 | Alexandra Cadantu,Alexandra Cadantu
334 | A.Cadantu,Alexandra Cadantu
335 | Milos Raonic,Milos Raonic
336 | M.Raonic,Milos Raonic
337 | Jarmila Gajdosova,Jarmila Gajdosova
338 | D.Tursunov,Dmitry Tursunov
339 | Dmitry Tursunov,Dmitry Tursunov
340 | E.Cabeza Candela,E.Cabeza Candela
341 | A.Kuznetsov,Andrey Kuznetsov
342 | Andrey Kuznetsov,Andrey Kuznetsov
343 | S.Voegele,Stefanie Voegele
344 | Stefanie Voegele,Stefanie Voegele
345 | A.Cornet,Alize Cornet
346 | A Cornet,Alize Cornet
347 | Alize Cornet,Alize Cornet
348 | Steve Darcis,Steve Darcis
349 | S.Darcis,Steve Darcis
350 | M.Puig,Monica Puig
351 | Monica Puig,Monica Puig
352 | A.Radwanska,Agnieszka Radwanska
353 | Agnieszka Radwanska,Agnieszka Radwanska
354 | H.Watson,Heather Watson
355 | H Watson,Heather Watson
356 | Heather Watson,Heather Watson
357 | Pauline Parmentier,Pauline Parmentier
358 | P.Parmentier,Pauline Parmentier
359 | N.Petrova,Nadia Petrova
360 | Nadia Petrova,Nadia Petrova
361 | Alex Kuznetsov,Alex Kuznetsov
362 | Joao Sousa,Joao Sousa
363 | Kei Nishikori,Kei Nishikori
364 | K.Nishikori,Kei Nishikori
365 | S.Stephens,Sloane Stephens
366 | S Stephens,Sloane Stephens
367 | Sloane Stephens,Sloane Stephens
368 | Florent Serra,Florent Serra
369 | M.Llodra,Michael Llodra
370 | Michael Llodra,Michael Llodra
371 | Lukas Rosol,Lukas Rosol
372 | L.Rosol,Lukas Rosol
373 | David Ferrer,David Ferrer
374 | D.Ferrer,David Ferrer
375 | R.Harrison,Ryan Harrison
376 | Ryan Harrison,Ryan Harrison
377 | M.Erakovic,Marina Erakovic
378 | Marina Erakovic,Marina Erakovic
379 | Andreas Seppi,Andreas Seppi
380 | A.Seppi,Andreas Seppi
381 | M Koehler,M Koehler
382 | M.Koehler,M Koehler
383 | R.Oprandi,Romina Oprandi
384 | Romina Oprandi,Romina Oprandi
385 | Shelby Rogers,Shelby Rogers
386 | Storm Sanders,Storm Sanders
387 | K.Kanepi,Kaia Kanepi
388 | Kaia Kanepi,Kaia Kanepi
389 | K Kanepi,Kaia Kanepi
390 | Marion Bartoli,Marion Bartoli
391 | M.Bartoli,Marion Bartoli
392 | Sabine Lisicki,Sabine Lisicki
393 | S Lisicki,Sabine Lisicki
394 | S.Lisicki,Sabine Lisicki
395 | S.Errani,Sara Errani
396 | Sara Errani,Sara Errani
397 | S Errani,Sara Errani
398 | Mikhail Kukushkin,Mikhail Kukushkin
399 | R.Gasquet,Richard Gasquet
400 | Richard Gasquet,Richard Gasquet
401 | Ana Konjuh,Ana Konjuh
402 | K Flipkens,Kirsten Flipkens
403 | Kirsten Flipkens,Kirsten Flipkens
404 | K.Flipkens,Kirsten Flipkens
405 | M.Russell,Michael Russell
406 | Michael Russell,Michael Russell
407 | V Duval,V Duval
408 | F.Lopez,Feliciano Lopez
409 | Feliciano Lopez,Feliciano Lopez
410 | M.Krajicek,M.Krajicek
411 | Ze Zhang,Ze Zhang
412 | K Pliskova,Karolína Plíšková
413 | Karolina Pliskova,Karolína Plíšková
414 | Ka.Pliskova,Karolína Plíšková
415 | Vera Zvonareva,Vera Zvonareva
416 | James Blake,James Blake
417 | J.Blake,James Blake
418 | J.Monaco,Juan Monaco
419 | Juan Monaco,Juan Monaco
420 | Carina Witthoeft,Carina Witthoeft
421 | C.Witthoeft,Carina Witthoeft
422 | Pere Riba,Pere Riba
423 | Mikhail Youzhny,Mikhail Youzhny
424 | M.Youzhny,Mikhail Youzhny
425 | T.Pironkova,Tsvetana Pironkova
426 | Tsvetana Pironkova,Tsvetana Pironkova
427 | S Kuznetsova,Svetlana Kuznetsova
428 | Svetlana Kuznetsova,Svetlana Kuznetsova
429 | Jeremy Chardy,Jeremy Chardy
430 | J.Chardy,Jeremy Chardy
431 | D.Hantuchova,Daniela Hantuchova
432 | Daniela Hantuchova,Daniela Hantuchova
433 | D Hantuchova,Daniela Hantuchova
434 | G.Voskoboeva,Galina Voskoboeva
435 | G Voskoboeva,Galina Voskoboeva
436 | Galina Voskoboeva,Galina Voskoboeva
437 | S.Johnson,Steve Johnson
438 | Steve Johnson,Steve Johnson
439 | Damir Dzumhur,Damir Dzumhur
440 | Gilles Muller,Gilles Muller
441 | A.Murray,Andy Murray
442 | Andy Murray,Andy Murray
443 | Maxime Teixeira,Maxime Teixeira
444 | N.Li,Na Li
445 | N Li,Na Li
446 | Na Li,Na Li
447 | E.Birnerova,E.Birnerova
448 | Michael Berrer,Michael Berrer
449 | Andrej Martin,Andrej Martin
450 | S Stosur,Samantha Stosur
451 | S.Stosur,Samantha Stosur
452 | Samantha Stosur,Samantha Stosur
453 | J.Levine,Jesse Levine
454 | Jesse Levine,Jesse Levine
455 | Arantxa Rus,Arantxa Rus
456 | A.Rus,Arantxa Rus
457 | Thanasi Kokkinakis,Thanasi Kokkinakis
458 | S.Peng,Shuai Peng
459 | S Peng,Shuai Peng
460 | Shuai Peng,Shuai Peng
461 | Peter Gojowczyk,Peter Gojowczyk
462 | Aravane Rezai,Aravane Rezai
463 | S.Murray,S.Murray
464 | Stephane Robert,Stephane Robert
465 | S.Robert,Stephane Robert
466 | G.Pella,Guido Pella
467 | Guido Pella,Guido Pella
468 | Carlos Berlocq,Carlos Berlocq
469 | C.Berlocq,Carlos Berlocq
470 | Marcel Granollers,Marcel Granollers
471 | M.Granollers,Marcel Granollers
472 | M.Sharapova,Maria Sharapova
473 | Maria Sharapova,Maria Sharapova
474 | P Kvitova,Petra Kvitova
475 | Petra Kvitova,Petra Kvitova
476 | P.Kvitova,Petra Kvitova
477 | A.Keothavong,A.Keothavong
478 | Olga Puchkova,Olga Puchkova
479 | O.Puchkova,Olga Puchkova
480 | D.Brands,Daniel Brands
481 | Daniel Brands,Daniel Brands
482 | Timea Babos,Timea Babos
483 | T.Babos,Timea Babos
484 | Aleksandr Nedovyesov,Aleksandr Nedovyesov
485 | Vincent Millot,Vincent Millot
486 | Samuel Groth,Samuel Groth
487 | C Scheepers,Chanelle Scheepers
488 | Chanelle Scheepers,Chanelle Scheepers
489 | C.Scheepers,Chanelle Scheepers
490 | B.Reynolds,B.Reynolds
491 | Dusan Lajovic,Dusan Lajovic
492 | Di Wu,Di Wu
493 | U.Radwanska,Urszula Radwanska
494 | U Radwanska,Urszula Radwanska
495 | Urszula Radwanska,Urszula Radwanska
496 | Dominic Thiem,Dominic Thiem
497 | D.Kudla,Denis Kudla
498 | Denis Kudla,Denis Kudla
499 | Nick Kyrgios,Nick Kyrgios
500 | Mirjana Lucic-Baroni,Mirjana Lucic-Baroni
501 | M.Lucic-Baroni,Mirjana Lucic-Baroni
502 | J.Zopp,Jurgen Zopp
503 | Jurgen Zopp,Jurgen Zopp
504 | M.Johansson,Mathilde Johansson
505 | Mathilde Johansson,Mathilde Johansson
506 | Daniel Evans,Daniel Evans
507 | D Pfizenmaier,Dinah Pfizenmaier
508 | Dinah Pfizenmaier,Dinah Pfizenmaier
509 | A.Tomljanovic,Ajla Tomljanovic
510 | A Tomljanovic,Ajla Tomljanovic
511 | Ajla Tomljanovic,Ajla Tomljanovic
512 | Benoit Paire,Benoit Paire
513 | B.Paire,Benoit Paire
514 | Barbora Zahlavova Strycova,Barbora Zahlavova Strycova
515 | B.Zahlavova Strycova,Barbora Zahlavova Strycova
516 | P.Martic,Petra Martic
517 | Petra Martic,Petra Martic
518 | Thomaz Bellucci,Thomaz Bellucci
519 | N.Mahut,Nicolas Mahut
520 | Nicolas Mahut,Nicolas Mahut
521 | Federico Delbonis,Federico Delbonis
522 | Alejandro Gonzalez,Alejandro Gonzalez
523 | Yung-Jan Chan,Yung-Jan Chan
524 | R.Ram,Rajeev Ram
525 | Rajeev Ram,Rajeev Ram
526 | Robin Haase,Robin Haase
527 | R.Haase,Robin Haase
528 | G.Simon,Gilles Simon
529 | Gilles Simon,Gilles Simon
530 | Jiri Vesely,Jiri Vesely
531 | Roberto Bautista Agut,Roberto Bautista Agut
532 | R.Bautista Agut,Roberto Bautista Agut
533 | M.Camerin,M.Camerin
534 | Y Shvedova,Yaroslava Shvedova
535 | Y.Shvedova,Yaroslava Shvedova
536 | Yaroslava Shvedova,Yaroslava Shvedova
537 | A.Morita,Ayumi Morita
538 | Ayumi Morita,Ayumi Morita
539 | V Dushevina,V Dushevina
540 | Grace Min,Grace Min
541 | Jack Sock,Jack Sock
542 | G.Soeda,Go Soeda
543 | Go Soeda,Go Soeda
544 | B.Mattek-Sands,Bethanie Mattek-Sands
545 | Bethanie Mattek-Sands,Bethanie Mattek-Sands
546 | V.Razzano,Virginie Razzano
547 | Virginie Razzano,Virginie Razzano
548 | M.Rybarikova,Magdalena Rybarikova
549 | Magdalena Rybarikova,Magdalena Rybarikova
550 | Zarina Diyas,Zarina Diyas
551 | P.Lorenzi,Paolo Lorenzi
552 | Paolo Lorenzi,Paolo Lorenzi
553 | A.Hlavackova,Andrea Hlavackova
554 | Andrea Hlavackova,Andrea Hlavackova
555 | M.Alund,Martin Alund
556 | Martin Alund,Martin Alund
557 | Alison Van Uytvanck,Alison Van Uytvanck
558 | M.Ebden,Matthew Ebden
559 | Matthew Ebden,Matthew Ebden
560 | P-H.Mathieu,Paul-Henri Mathieu
561 | Paul-Henri Mathieu,Paul-Henri Mathieu
562 | A.Tatishvili,Anna Tatishvili
563 | A Tatishvili,Anna Tatishvili
564 | Anna Tatishvili,Anna Tatishvili
565 | Benjamin Becker,Benjamin Baker
566 | B.Becker,Benjamin Baker
567 | Irina Falconi,Irina Falconi
568 | C Giorgi,Camila Giorgi
569 | Camila Giorgi,Camila Giorgi
570 | C.Giorgi,Camila Giorgi
571 | A.Montanes,Albert Montanes
572 | Albert Montanes,Albert Montanes
573 | G.Elias,G.Elias
574 | Jesse Huta Galung,Jesse Huta Galung
575 | Denis Istomin,Denis Istomin
576 | D.Istomin,Denis Istomin
577 | Andrey Golubev,Andrey Golubev
578 | M.Przysiezny,Michal Przysiezny
579 | Michal Przysiezny,Michal Przysiezny
580 | M.Matosevic,Marinko Matosevic
581 | Marinko Matosevic,Marinko Matosevic
582 | Kurumi Nara,Kurumi Nara
583 | K Nara,Kurumi Nara
584 | L.Lacko,Lukas Lacko
585 | Lukas Lacko,Lukas Lacko
586 | Ivo Karlovic,Ivo Karlovic
587 | Shuai Zhang,Shuai Zhang
588 | L.Dominguez Lino,Lourdes Dominguez Lino
589 | L Dominguez Lino,Lourdes Dominguez Lino
590 | Lourdes Dominguez Lino,Lourdes Dominguez Lino
591 | Garbine Muguruza,Garbine Muguruza
592 | G.Muguruza,Garbine Muguruza
593 | T.Haas,Tommy Haas
594 | Tommy Haas,Tommy Haas
595 | R.Nadal,Rafael Nadal
596 | Rafael Nadal,Rafael Nadal
597 | V.Troicki,Viktor Troicki
598 | Viktor Troicki,Viktor Troicki
599 | S Williams,Serena Williams
600 | S.Williams,Serena Williams
601 | Serena Williams,Serena Williams
602 | Y.Putintseva,Yulia Putintseva
603 | Yulia Putintseva,Yulia Putintseva
604 | Y Duan,Ying-Ying Duan
605 | Ying-Ying Duan,Ying-Ying Duan
606 | J.Jankovic,Jelena Jankovic
607 | J Jankovic,Jelena Jankovic
608 | Jelena Jankovic,Jelena Jankovic
609 | Bradley Klahn,Bradley Klahn
610 | Albano Olivetti,Albano Olivetti
611 | P.Petzschner,Philipp Petzschner
612 | Philipp Petzschner,Philipp Petzschner
613 | A Dulgheru,A Dulgheru
614 | A.Beck,Andreas Beck
615 | Annika Beck,Andreas Beck
616 | Andreas Beck,Andreas Beck
617 | J.Reister,Julian Reister
618 | Julian Reister,Julian Reister
619 | R.Stepanek,Radek Stepanek
620 | Radek Stepanek,Radek Stepanek
621 | Yuliya Beygelzimer,Yuliya Beygelzimer
622 | Pablo Cuevas,Pablo Cuevas
623 | T.Gabashvili,Teymuraz Gabashvili
624 | Teymuraz Gabashvili,Teymuraz Gabashvili
625 | A.Riske,Alison Riske
626 | A Riske,Alison Riske
627 | Alison Riske,Alison Riske
628 | I.Andreev,I.Andreev
629 | M Minella,Mandy Minella
630 | M.Minella,Mandy Minella
631 | Mandy Minella,Mandy Minella
632 | David Guez,David Guez
633 | Stephanie Foretz Gacon,Stephanie Foretz Gacon
634 | A Medina Garrigues,Anabel Medina Garrigues
635 | A. Medina Garrigues,Anabel Medina Garrigues
636 | A.Medina Garrigues,Anabel Medina Garrigues
637 | Anabel Medina Garrigues,Anabel Medina Garrigues
638 | A Wozniak,Aleksandra Wozniacki
639 | G.Garcia-Lopez,Guillermo Garcia-Lopez
640 | Guillermo Garcia-Lopez,Guillermo Garcia-Lopez
641 | J.Ward,J.Ward
642 | M.Cilic,Marin Cilic
643 | Marin Cilic,Marin Cilic
644 | Filippo Volandri,Filippo Volandri
645 | Irena Pavlovic,Irena Pavlovic
646 | Kr.Pliskova,Kristýna Plíšková
647 | Kristyna Pliskova,Kristýna Plíšková
648 | A.Ungur,Adrian Ungur
649 | Adrian Ungur,Adrian Ungur
650 | A.Dolgopolov,Alexandr Dolgopolov
651 | Alexandr Dolgopolov,Alexandr Dolgopolov
652 | Juan Martin Del Potro,Juan Martin Del Potro
653 | J.Del Potro,Juan Martin Del Potro
654 | L.Kubot,Lukasz Kubot
655 | Lukasz Kubot,Lukasz Kubot
656 | B.Jovanovski,Bojana Jovanovski
657 | B Jovanovski,Bojana Jovanovski
658 | Bojana Jovanovski,Bojana Jovanovski
659 | H.Zeballos,Horacio Zeballos
660 | Horacio Zeballos,Horacio Zeballos
661 | Jordan Thompson,Jordan Thompson
662 | Yanina Wickmayer,Yanina Wickmayer
663 | Y.Wickmayer,Yanina Wickmayer
664 | V.Pospisil,Vasek Pospisil
665 | Vasek Pospisil,Vasek Pospisil
666 | V Williams,Venus Williams
667 | Venus Williams,Venus Williams
668 | M.Larcher De Brito,M.Larcher De Brito
669 | J.Nieminen,Jarkko Nieminen
670 | Jarkko Nieminen,Jarkko Nieminen
671 |
--------------------------------------------------------------------------------
/tennis/names.txt:
--------------------------------------------------------------------------------
1 | Lukas Lacko
2 | Leonardo Mayer
3 | Marcos Baghdatis
4 | Dmitry Tursunov
5 | Juan Monaco
6 | Santiago Giraldo
7 | Dudi Sela
8 | Fabio Fognini
9 | David Guez
10 | Nikolay Davydenko
11 | Pablo Carreno Busta
12 | Tommy Robredo
13 | Samuel Groth
14 | Nicolas Mahut
15 | Alejandro Falla
16 | Stanislas Wawrinka
17 | Alejandro Gonzalez
18 | Steve Johnson
19 | Ricardas Berankis
20 | Jeremy Chardy
21 | Jordan Thompson
22 | Albert Ramos
23 | Florian Mayer
24 | Mikhail Youzhny
25 | Guillermo Garcia-Lopez
26 | Carlos Berlocq
27 | Dominic Thiem
28 | Kevin Anderson
29 | Ivo Karlovic
30 | Jan Hajek
31 | Di Wu
32 | Tomas Berdych
33 | James Duckworth
34 | Radek Stepanek
35 | Teymuraz Gabashvili
36 | Fernando Verdasco
37 | Daniel Brands
38 | Marin Cilic
39 | Thomaz Bellucci
40 | Jo-Wilfried Tsonga
41 | Martin Klizan
42 | Blaz Rola
43 | Michal Przysiezny
44 | Stephane Robert
45 | Somdev Devvarman
46 | Michael Berrer
47 | Vincent Millot
48 | Andy Murray
49 | Rhyne Williams
50 | Roberto Bautista Agut
51 | Nick Kyrgios
52 | Benoit Paire
53 | Bradley Klahn
54 | Jimmy Wang
55 | Peter Gojowczyk
56 | Milos Raonic
57 | Marinko Matosevic
58 | Dusan Lajovic
59 | Robin Haase
60 | Andreas Seppi
61 | Ryan Harrison
62 | Tobias Kamke
63 | Thanasi Kokkinakis
64 | Rafael Nadal
65 | Leonardo Mayer
66 | Dmitry Tursunov
67 | Sam Querrey
68 | Fabio Fognini
69 | Nikolay Davydenko
70 | Tommy Robredo
71 | Matthew Ebden
72 | Stanislas Wawrinka
73 | Adrian Mannarino
74 | Jeremy Chardy
75 | Pablo Andujar
76 | Mikhail Youzhny
77 | Edouard Roger-Vasselin
78 | Kevin Anderson
79 | Damir Dzumhur
80 | Tomas Berdych
81 | Blaz Kavcic
82 | Fernando Verdasco
83 | Marin Cilic
84 | Jo-Wilfried Tsonga
85 | Blaz Rola
86 | Stephane Robert
87 | Michael Berrer
88 | Andy Murray
89 | Roberto Bautista Agut
90 | Benoit Paire
91 | Yen-Hsun Lu
92 | Milos Raonic
93 | Dusan Lajovic
94 | Andreas Seppi
95 | Jack Sock
96 | Rafael Nadal
97 | Denis Istomin
98 | Fabio Fognini
99 | Tommy Robredo
100 | Jeremy Chardy
101 | Florian Mayer
102 | Kevin Anderson
103 | Tomas Berdych
104 | Teymuraz Gabashvili
105 | Jo-Wilfried Tsonga
106 | Stephane Robert
107 | Andy Murray
108 | Benoit Paire
109 | Milos Raonic
110 | Donald Young
111 | Rafael Nadal
112 | Fabio Fognini
113 | Stanislas Wawrinka
114 | Florian Mayer
115 | Tomas Berdych
116 | Jo-Wilfried Tsonga
117 | Andy Murray
118 | Grigor Dimitrov
119 | Rafael Nadal
120 | Stanislas Wawrinka
121 | Tomas Berdych
122 | Andy Murray
123 | Rafael Nadal
124 | Tomas Berdych
125 | Rafael Nadal
126 | Rafael Nadal
127 | Novak Djokovic
128 | Albert Montanes
129 | Denis Istomin
130 | Michael Russell
131 | Ernests Gulbis
132 | Sam Querrey
133 | Jarkko Nieminen
134 | Alex Bogomolov Jr.
135 | Richard Gasquet
136 | Lukasz Kubot
137 | Julien Benneteau
138 | Lukas Rosol
139 | Vasek Pospisil
140 | Matthew Ebden
141 | Mikhail Kukushkin
142 | Andrey Golubev
143 | David Ferrer
144 | Adrian Mannarino
145 | Alexandr Dolgopolov
146 | Jesse Huta Galung
147 | Jerzy Janowicz
148 | Pablo Andujar
149 | Denis Kudla
150 | Jan-Lennard Struff
151 | Tommy Haas
152 | Edouard Roger-Vasselin
153 | Joao Sousa
154 | Jiri Vesely
155 | Ivan Dodig
156 | Damir Dzumhur
157 | Kenny De Schepper
158 | Aleksandr Nedovyesov
159 | Roger Federer
160 | Blaz Kavcic
161 | Sergiy Stakhovsky
162 | Ze Zhang
163 | Gilles Simon
164 | Marcel Granollers
165 | Julian Reister
166 | Filippo Volandri
167 | John Isner
168 | Federico Delbonis
169 | Horacio Zeballos
170 | Aljaz Bedene
171 | Feliciano Lopez
172 | Michael Llodra
173 | Wayne Odesnik
174 | Go Soeda
175 | Juan Martin Del Potro
176 | Tim Smyczek
177 | Benjamin Becker
178 | Frank Dancevic
179 | Grigor Dimitrov
180 | Yen-Hsun Lu
181 | Victor Hanescu
182 | Daniel Gimeno-Traver
183 | Kei Nishikori
184 | Lucas Pouille
185 | Donald Young
186 | Lleyton Hewitt
187 | Gael Monfils
188 | Jack Sock
189 | Igor Sijsling
190 | Bernard Tomic
191 | Novak Djokovic
192 | Denis Istomin
193 | Ernests Gulbis
194 | Jarkko Nieminen
195 | Richard Gasquet
196 | Julien Benneteau
197 | Vasek Pospisil
198 | Alejandro Falla
199 | David Ferrer
200 | Alexandr Dolgopolov
201 | Jerzy Janowicz
202 | Florian Mayer
203 | Guillermo Garcia-Lopez
204 | Dominic Thiem
205 | Ivan Dodig
206 | Kenny De Schepper
207 | Roger Federer
208 | Teymuraz Gabashvili
209 | Gilles Simon
210 | Thomaz Bellucci
211 | Martin Klizan
212 | Michal Przysiezny
213 | Feliciano Lopez
214 | Vincent Millot
215 | Juan Martin Del Potro
216 | Nick Kyrgios
217 | Grigor Dimitrov
218 | Victor Hanescu
219 | Kei Nishikori
220 | Donald Young
221 | Gael Monfils
222 | Thanasi Kokkinakis
223 | Novak Djokovic
224 | Sam Querrey
225 | Richard Gasquet
226 | David Ferrer
227 | Jerzy Janowicz
228 | Edouard Roger-Vasselin
229 | Damir Dzumhur
230 | Roger Federer
231 | Gilles Simon
232 | Martin Klizan
233 | Feliciano Lopez
234 | Roberto Bautista Agut
235 | Grigor Dimitrov
236 | Kei Nishikori
237 | Gael Monfils
238 | Novak Djokovic
239 | Tommy Robredo
240 | David Ferrer
241 | Kevin Anderson
242 | Roger Federer
243 | Stephane Robert
244 | Roberto Bautista Agut
245 | Kei Nishikori
246 | Novak Djokovic
247 | David Ferrer
248 | Roger Federer
249 | Grigor Dimitrov
250 | Stanislas Wawrinka
251 | Roger Federer
252 | Stanislas Wawrinka
253 | Serena Williams
254 | Vesna Dolonc
255 | Pauline Parmentier
256 | Heather Watson
257 | Samantha Stosur
258 | Tsvetana Pironkova
259 | Annika Beck
260 | Kiki Bertens
261 | Roberta Vinci
262 | Patricia Mayr-Achleitner
263 | Casey Dellacqua
264 | Laura Robson
265 | Eugenie Bouchard
266 | Alison Van Uytvanck
267 | Sachia Vickery
268 | Julia Goerges
269 | Na Li
270 | Belinda Bencic
271 | Donna Vekic
272 | Julia Glushko
273 | Ekaterina Makarova
274 | Anabel Medina Garrigues
275 | Shahar Peer
276 | Mirjana Lucic-Baroni
277 | Angelique Kerber
278 | Caroline Garcia
279 | Dinah Pfizenmaier
280 | Alison Riske
281 | Flavia Pennetta
282 | Monica Puig
283 | Shuai Zhang
284 | Luksika Kumkhum
285 | Jelena Jankovic
286 | Nadiya Kichenok
287 | Kurumi Nara
288 | Andrea Petkovic
289 | Sorana Cirstea
290 | Zarina Diyas
291 | Lesia Tsurenko
292 | Katarzyna Piter
293 | Carla Suarez Navarro
294 | Galina Voskoboeva
295 | Kristina Mladenovic
296 | Francesca Schiavone
297 | Alize Cornet
298 | Camila Giorgi
299 | Paula Ormaechea
300 | Bethanie Mattek-Sands
301 | Agnieszka Radwanska
302 | Olga Govortsova
303 | Carina Witthoeft
304 | Teliana Pereira
305 | Kaia Kanepi
306 | Timea Babos
307 | Christina McHale
308 | Lourdes Dominguez Lino
309 | Sloane Stephens
310 | Tadeja Majeric
311 | Olivia Rogowska
312 | Elina Svitolina
313 | Bojana Jovanovski
314 | Chanelle Scheepers
315 | Su-Wei Hsieh
316 | Johanna Larsson
317 | Serena Williams
318 | Karolina Pliskova
319 | Samantha Stosur
320 | Annika Beck
321 | Jie Zheng
322 | Casey Dellacqua
323 | Eugenie Bouchard
324 | Lauren Davis
325 | Na Li
326 | Lucie Hradecka
327 | Ekaterina Makarova
328 | Monica Niculescu
329 | Angelique Kerber
330 | Yanina Wickmayer
331 | Flavia Pennetta
332 | Mona Barthel
333 | Jelena Jankovic
334 | Kurumi Nara
335 | Marina Erakovic
336 | Varvara Lepchenko
337 | Carla Suarez Navarro
338 | Stefanie Voegele
339 | Alize Cornet
340 | Karin Knapp
341 | Agnieszka Radwanska
342 | Mandy Minella
343 | Garbine Muguruza
344 | Christina McHale
345 | Sloane Stephens
346 | Olivia Rogowska
347 | Bojana Jovanovski
348 | Barbora Zahlavova Strycova
349 | Serena Williams
350 | Samantha Stosur
351 | Jie Zheng
352 | Eugenie Bouchard
353 | Na Li
354 | Ekaterina Makarova
355 | Angelique Kerber
356 | Flavia Pennetta
357 | Jelena Jankovic
358 | Zarina Diyas
359 | Carla Suarez Navarro
360 | Alize Cornet
361 | Agnieszka Radwanska
362 | Garbine Muguruza
363 | Sloane Stephens
364 | Yvonne Meusburger
365 | Serena Williams
366 | Casey Dellacqua
367 | Na Li
368 | Angelique Kerber
369 | Jelena Jankovic
370 | Dominika Cibulkova
371 | Agnieszka Radwanska
372 | Sloane Stephens
373 | Ana Ivanovic
374 | Na Li
375 | Simona Halep
376 | Agnieszka Radwanska
377 | Eugenie Bouchard
378 | Dominika Cibulkova
379 | Na Li
380 | Ashleigh Barty
381 | Lara Arruabarrena
382 | Karolina Pliskova
383 | Daniela Hantuchova
384 | Klara Zakopalova
385 | Silvia Soler-Espinosa
386 | Petra Martic
387 | Ana Ivanovic
388 | Jie Zheng
389 | Madison Keys
390 | Vera Zvonareva
391 | Kirsten Flipkens
392 | Hao Chen Tang
393 | Virginie Razzano
394 | Lauren Davis
395 | Sara Errani
396 | Ana Konjuh
397 | Kimiko Date-Krumm
398 | Lucie Hradecka
399 | Lucie Safarova
400 | Venus Williams
401 | Irina Falconi
402 | Monica Niculescu
403 | Sabine Lisicki
404 | Jarmila Gajdosova
405 | Alla Kudryavtseva
406 | Yanina Wickmayer
407 | Elena Vesnina
408 | Alexandra Cadantu
409 | Anna Tatishvili
410 | Mona Barthel
411 | Petra Kvitova
412 | Misaki Doi
413 | Ayumi Morita
414 | Shuai Peng
415 | Magdalena Rybarikova
416 | Marina Erakovic
417 | Katerina Siniakova
418 | Varvara Lepchenko
419 | Simona Halep
420 | Vania King
421 | Irina-Camelia Begu
422 | Stefanie Voegele
423 | Dominika Cibulkova
424 | Polona Hercog
425 | Storm Sanders
426 | Karin Knapp
427 | Maria Sharapova
428 | Yulia Putintseva
429 | Ying-Ying Duan
430 | Mandy Minella
431 | Anastasia Pavlyuchenkova
432 | Garbine Muguruza
433 | Anna Schmiedlova
434 | Yung-Jan Chan
435 | Caroline Wozniacki
436 | Yaroslava Shvedova
437 | Ajla Tomljanovic
438 | Mariana Duque-Marino
439 | Svetlana Kuznetsova
440 | Jana Cepelova
441 | Yvonne Meusburger
442 | Barbora Zahlavova Strycova
443 | Victoria Azarenka
444 | Vesna Dolonc
445 | Daniela Hantuchova
446 | Tsvetana Pironkova
447 | Ana Ivanovic
448 | Madison Keys
449 | Kirsten Flipkens
450 | Virginie Razzano
451 | Julia Goerges
452 | Belinda Bencic
453 | Lucie Safarova
454 | Irina Falconi
455 | Sabine Lisicki
456 | Alla Kudryavtseva
457 | Alison Riske
458 | Monica Puig
459 | Luksika Kumkhum
460 | Ayumi Morita
461 | Magdalena Rybarikova
462 | Zarina Diyas
463 | Simona Halep
464 | Galina Voskoboeva
465 | Dominika Cibulkova
466 | Camila Giorgi
467 | Maria Sharapova
468 | Olga Govortsova
469 | Anastasia Pavlyuchenkova
470 | Anna Schmiedlova
471 | Caroline Wozniacki
472 | Ajla Tomljanovic
473 | Elina Svitolina
474 | Yvonne Meusburger
475 | Victoria Azarenka
476 | Daniela Hantuchova
477 | Ana Ivanovic
478 | Casey Dellacqua
479 | Lauren Davis
480 | Lucie Safarova
481 | Monica Niculescu
482 | Alison Riske
483 | Mona Barthel
484 | Kurumi Nara
485 | Simona Halep
486 | Dominika Cibulkova
487 | Maria Sharapova
488 | Anastasia Pavlyuchenkova
489 | Caroline Wozniacki
490 | Elina Svitolina
491 | Victoria Azarenka
492 | Ana Ivanovic
493 | Eugenie Bouchard
494 | Ekaterina Makarova
495 | Flavia Pennetta
496 | Simona Halep
497 | Maria Sharapova
498 | Garbine Muguruza
499 | Victoria Azarenka
500 | Eugenie Bouchard
501 | Flavia Pennetta
502 | Dominika Cibulkova
503 | Victoria Azarenka
504 | Na Li
505 | Agnieszka Radwanska
506 | Dominika Cibulkova
507 | Pablo Carreno-Busta
508 | Somdev Devvarman
509 | Tobias Kamke
510 | Julien Benneteau
511 | Lukas Lacko
512 | Jan Hajek
513 | Adrian Mannarino
514 | Gilles Simon
515 | Philipp Petzschner
516 | Radek Stepanek
517 | Viktor Troicki
518 | Juan Monaco
519 | Benjamin Becker
520 | Roberto Bautista Agut
521 | Jarkko Nieminen
522 | Jo-Wilfried Tsonga
523 | Marinko Matosevic
524 | Steve Johnson
525 | Joao Sousa
526 | Marcel Granollers
527 | Illya Marchenko
528 | Jan-Lennard Struff
529 | Steve Darcis
530 | Milos Raonic
531 | Andreas Haider-Maurer
532 | Martin Alund
533 | Blaz Kavcic
534 | Andreas Seppi
535 | Jurgen Zopp
536 | Igor Sijsling
537 | Ernests Gulbis
538 | Tomas Berdych
539 | Sergiy Stakhovsky
540 | Michal Przysiezny
541 | Florent Serra
542 | Florian Mayer
543 | Albert Ramos
544 | Kenny De Schepper
545 | Vasek Pospisil
546 | Stanislas Wawrinka
547 | Jesse Levine
548 | Grega Zemlja
549 | Lukasz Kubot
550 | Benoit Paire
551 | Andreas Beck
552 | Pere Riba
553 | Martin Klizan
554 | Rafael Nadal
555 | Fernando Verdasco
556 | Federico Delbonis
557 | Mikhail Youzhny
558 | Carlos Berlocq
559 | Andrey Kuznetsov
560 | Jack Sock
561 | Tommy Haas
562 | Jiri Vesely
563 | Simone Bolelli
564 | Bernard Tomic
565 | Alexandr Dolgopolov
566 | Alejandro Falla
567 | Alex Kuznetsov
568 | Ivan Dodig
569 | Novak Djokovic
570 | Somdev Devvarman
571 | Julien Benneteau
572 | Jan Hajek
573 | Gilles Simon
574 | Nick Kyrgios
575 | Daniel Gimeno-Traver
576 | Roberto Bautista Agut
577 | Jo-Wilfried Tsonga
578 | Albert Montanes
579 | Feliciano Lopez
580 | Evgeny Donskoy
581 | Milos Raonic
582 | Edouard Roger-Vasselin
583 | Andreas Seppi
584 | Igor Sijsling
585 | Gael Monfils
586 | Michal Przysiezny
587 | Denis Istomin
588 | Robin Haase
589 | Stanislas Wawrinka
590 | Grega Zemlja
591 | Benoit Paire
592 | Lukas Rosol
593 | Rafael Nadal
594 | Fernando Verdasco
595 | Mikhail Youzhny
596 | Ryan Harrison
597 | Tommy Haas
598 | Dmitry Tursunov
599 | Lucas Pouille
600 | Novak Djokovic
601 | Julien Benneteau
602 | Gilles Simon
603 | Viktor Troicki
604 | Jo-Wilfried Tsonga
605 | Feliciano Lopez
606 | Milos Raonic
607 | Andreas Seppi
608 | Gael Monfils
609 | Nikolay Davydenko
610 | Stanislas Wawrinka
611 | Benoit Paire
612 | Rafael Nadal
613 | Mikhail Youzhny
614 | Tommy Haas
615 | Victor Hanescu
616 | Novak Djokovic
617 | Gilles Simon
618 | Jo-Wilfried Tsonga
619 | Kevin Anderson
620 | Tommy Robredo
621 | Stanislas Wawrinka
622 | Rafael Nadal
623 | Tommy Haas
624 | Novak Djokovic
625 | Jo-Wilfried Tsonga
626 | Tommy Robredo
627 | Rafael Nadal
628 | Novak Djokovic
629 | David Ferrer
630 | Novak Djokovic
631 | Rafael Nadal
632 | Roger Federer
633 | Daniel Munoz-De La Nava
634 | Paolo Lorenzi
635 | Ricardas Berankis
636 | Sam Querrey
637 | Denis Kudla
638 | Pablo Cuevas
639 | Lleyton Hewitt
640 | Marin Cilic
641 | Nick Kyrgios
642 | James Blake
643 | Daniel Gimeno-Traver
644 | Jeremy Chardy
645 | Gilles Muller
646 | Paul-Henri Mathieu
647 | Aljaz Bedene
648 | David Ferrer
649 | Albert Montanes
650 | Go Soeda
651 | Feliciano Lopez
652 | Kevin Anderson
653 | Evgeny Donskoy
654 | Michael Llodra
655 | Xavier Malisse
656 | Nicolas Almagro
657 | Edouard Roger-Vasselin
658 | James Duckworth
659 | Leonardo Mayer
660 | Tommy Robredo
661 | Jurgen Melzer
662 | Rogerio Dutra Silva
663 | Gael Monfils
664 | Richard Gasquet
665 | Rhyne Williams
666 | Nikolay Davydenko
667 | Denis Istomin
668 | Jerzy Janowicz
669 | Robin Haase
670 | Horacio Zeballos
671 | Thiemo De Bakker
672 | Kei Nishikori
673 | Santiago Giraldo
674 | Maxime Teixeira
675 | Marcos Baghdatis
676 | Fabio Fognini
677 | Lukas Rosol
678 | Michael Russell
679 | Daniel Brands
680 | Marc Gicquel
681 | Julian Reister
682 | Pablo Andujar
683 | John Isner
684 | Ryan Harrison
685 | Guillermo Garcia-Lopez
686 | Guillaume Rufin
687 | Philipp Kohlschreiber
688 | Yen-Hsun Lu
689 | Victor Hanescu
690 | Dmitry Tursunov
691 | Grigor Dimitrov
692 | Lucas Pouille
693 | Guido Pella
694 | David Goffin
695 | Roger Federer
696 | Tobias Kamke
697 | Sam Querrey
698 | Pablo Cuevas
699 | Marin Cilic
700 | Viktor Troicki
701 | Jeremy Chardy
702 | Jarkko Nieminen
703 | David Ferrer
704 | Joao Sousa
705 | Kevin Anderson
706 | Michael Llodra
707 | Nicolas Almagro
708 | Blaz Kavcic
709 | Tommy Robredo
710 | Ernests Gulbis
711 | Richard Gasquet
712 | Nikolay Davydenko
713 | Jerzy Janowicz
714 | Horacio Zeballos
715 | Kei Nishikori
716 | Lukasz Kubot
717 | Fabio Fognini
718 | Martin Klizan
719 | Janko Tipsarevic
720 | Federico Delbonis
721 | John Isner
722 | Jack Sock
723 | Victor Hanescu
724 | Grigor Dimitrov
725 | Guido Pella
726 | Roger Federer
727 | Sam Querrey
728 | Marin Cilic
729 | Jeremy Chardy
730 | David Ferrer
731 | Kevin Anderson
732 | Nicolas Almagro
733 | Tommy Robredo
734 | Richard Gasquet
735 | Jerzy Janowicz
736 | Kei Nishikori
737 | Fabio Fognini
738 | Janko Tipsarevic
739 | John Isner
740 | Philipp Kohlschreiber
741 | Grigor Dimitrov
742 | Roger Federer
743 | Viktor Troicki
744 | David Ferrer
745 | Nicolas Almagro
746 | Richard Gasquet
747 | Kei Nishikori
748 | Mikhail Youzhny
749 | Philipp Kohlschreiber
750 | Roger Federer
751 | David Ferrer
752 | Stanislas Wawrinka
753 | Tommy Haas
754 | Jo-Wilfried Tsonga
755 | Rafael Nadal
756 | David Ferrer
757 | Su-Wei Hsieh
758 | Eugenie Bouchard
759 | Jie Zheng
760 | Tamira Paszek
761 | Karin Knapp
762 | Vania King
763 | Marina Erakovic
764 | Dominika Cibulkova
765 | Kimiko Date-Krumm
766 | Kristina Mladenovic
767 | Karolina Pliskova
768 | Jelena Jankovic
769 | Jamie Hampton
770 | Anna Karolina Schmiedlova
771 | Shuai Peng
772 | Petra Kvitova
773 | Elena Vesnina
774 | Sandra Zahlavova
775 | Irina-Camelia Begu
776 | Alize Cornet
777 | Flavia Pennetta
778 | Melinda Czink
779 | Kristyna Pliskova
780 | Marion Bartoli
781 | Nina Bratchikova
782 | Ashleigh Barty
783 | Stefanie Voegele
784 | Klara Zakopalova
785 | Coco Vandeweghe
786 | Tatjana Maria
787 | Bethanie Mattek-Sands
788 | Na Li
789 | Arantxa Rus
790 | Ayumi Morita
791 | Maria-Teresa Torro-Flor
792 | Sabine Lisicki
793 | Simona Halep
794 | Irena Pavlovic
795 | Madison Keys
796 | Nadia Petrova
797 | Petra Martic
798 | Chanelle Scheepers
799 | Virginie Razzano
800 | Julia Goerges
801 | Urszula Radwanska
802 | Dinah Pfizenmaier
803 | Mallory Burdette
804 | Agnieszka Radwanska
805 | Mona Barthel
806 | Jana Cepelova
807 | Romina Oprandi
808 | Varvara Lepchenko
809 | Svetlana Kuznetsova
810 | Pauline Parmentier
811 | Barbora Zahlavova Strycova
812 | Caroline Wozniacki
813 | Stephanie Foretz Gacon
814 | Galina Voskoboeva
815 | Petra Cetkovska
816 | Anastasia Pavlyuchenkova
817 | Kiki Bertens
818 | Monica Niculescu
819 | Yuliya Beygelzimer
820 | Serena Williams
821 | Eugenie Bouchard
822 | Melanie Oudin
823 | Vania King
824 | Dominika Cibulkova
825 | Kristina Mladenovic
826 | Jelena Jankovic
827 | Anna Karolina Schmiedlova
828 | Petra Kvitova
829 | Annika Beck
830 | Alize Cornet
831 | Francesca Schiavone
832 | Marion Bartoli
833 | Ashleigh Barty
834 | Kaia Kanepi
835 | Paula Ormaechea
836 | Na Li
837 | Yulia Putintseva
838 | Sabine Lisicki
839 | Shelby Rogers
840 | Monica Puig
841 | Mathilde Johansson
842 | Zuzana Kucova
843 | Dinah Pfizenmaier
844 | Agnieszka Radwanska
845 | Jana Cepelova
846 | Varvara Lepchenko
847 | Magdalena Rybarikova
848 | Caroline Wozniacki
849 | Galina Voskoboeva
850 | Anastasia Pavlyuchenkova
851 | Johanna Larsson
852 | Serena Williams
853 | Jie Zheng
854 | Marina Erakovic
855 | Jelena Jankovic
856 | Petra Kvitova
857 | Alize Cornet
858 | Marion Bartoli
859 | Stefanie Voegele
860 | Bethanie Mattek-Sands
861 | Sabine Lisicki
862 | Monica Puig
863 | Virginie Razzano
864 | Agnieszka Radwanska
865 | Varvara Lepchenko
866 | Bojana Jovanovski
867 | Petra Cetkovska
868 | Serena Williams
869 | Sloane Stephens
870 | Jamie Hampton
871 | Francesca Schiavone
872 | Bethanie Mattek-Sands
873 | Carla Suarez Navarro
874 | Agnieszka Radwanska
875 | Svetlana Kuznetsova
876 | Serena Williams
877 | Jelena Jankovic
878 | Maria Kirilenko
879 | Agnieszka Radwanska
880 | Serena Williams
881 | Victoria Azarenka
882 | Serena Williams
883 | Serena Williams
884 | Maria Sharapova
885 | Tsvetana Pironkova
886 | Vesna Dolonc
887 | Melanie Oudin
888 | Sloane Stephens
889 | Alexandra Cadantu
890 | Elena Baltacha
891 | Lesia Tsurenko
892 | Samantha Stosur
893 | Lauren Davis
894 | Garbine Muguruza
895 | Daniela Hantuchova
896 | Lucie Safarova
897 | Yanina Wickmayer
898 | Camila Giorgi
899 | Aravane Rezai
900 | Victoria Azarenka
901 | Annika Beck
902 | Silvia Soler-Espinosa
903 | Maria Joao Koehler
904 | Kirsten Flipkens
905 | Francesca Schiavone
906 | Mariana Duque-Marino
907 | Olga Govortsova
908 | Maria Kirilenko
909 | Lucie Hradecka
910 | Heather Watson
911 | Kaia Kanepi
912 | Yaroslava Shvedova
913 | Paula Ormaechea
914 | Lourdes Dominguez Lino
915 | A. Medina Garrigues
916 | Sara Errani
917 | Yulia Putintseva
918 | Julia Glushko
919 | Sofia Arvidsson
920 | Carla Suarez Navarro
921 | Shelby Rogers
922 | Misaki Doi
923 | Monica Puig
924 | Ana Ivanovic
925 | Mathilde Johansson
926 | Claire Feuerstein
927 | Zuzana Kucova
928 | Venus Williams
929 | Mandy Minella
930 | Donna Vekic
931 | Shahar Peer
932 | Angelique Kerber
933 | Christina McHale
934 | Elina Svitolina
935 | Mirjana Lucic-Baroni
936 | Ekaterina Makarova
937 | Magdalena Rybarikova
938 | Bojana Jovanovski
939 | Laura Robson
940 | Roberta Vinci
941 | Grace Min
942 | Olga Puchkova
943 | Andrea Hlavackova
944 | Sorana Cirstea
945 | Johanna Larsson
946 | Caroline Garcia
947 | Anna Tatishvili
948 | Maria Sharapova
949 | Jie Zheng
950 | Sloane Stephens
951 | Marina Erakovic
952 | Samantha Stosur
953 | Garbine Muguruza
954 | Jamie Hampton
955 | Shuai Peng
956 | Victoria Azarenka
957 | Silvia Soler-Espinosa
958 | Kirsten Flipkens
959 | Mariana Duque-Marino
960 | Maria Kirilenko
961 | Stefanie Voegele
962 | Yaroslava Shvedova
963 | Bethanie Mattek-Sands
964 | Sara Errani
965 | Maria-Teresa Torro-Flor
966 | Carla Suarez Navarro
967 | Madison Keys
968 | Ana Ivanovic
969 | Virginie Razzano
970 | Urszula Radwanska
971 | Mallory Burdette
972 | Angelique Kerber
973 | Elina Svitolina
974 | Svetlana Kuznetsova
975 | Bojana Jovanovski
976 | Roberta Vinci
977 | Petra Cetkovska
978 | Sorana Cirstea
979 | Caroline Garcia
980 | Maria Sharapova
981 | Sloane Stephens
982 | Samantha Stosur
983 | Jamie Hampton
984 | Victoria Azarenka
985 | Francesca Schiavone
986 | Maria Kirilenko
987 | Paula Ormaechea
988 | Sara Errani
989 | Carla Suarez Navarro
990 | Ana Ivanovic
991 | Dinah Pfizenmaier
992 | Angelique Kerber
993 | Svetlana Kuznetsova
994 | Roberta Vinci
995 | Sorana Cirstea
996 | Maria Sharapova
997 | Jelena Jankovic
998 | Victoria Azarenka
999 | Maria Kirilenko
1000 | Sara Errani
1001 | Ana Ivanovic
1002 | Angelique Kerber
1003 | Roberta Vinci
1004 | Maria Sharapova
1005 | Victoria Azarenka
1006 | Sara Errani
1007 | Svetlana Kuznetsova
1008 | Maria Sharapova
1009 | Sara Errani
1010 | Maria Sharapova
1011 | Richard Gasquet
1012 | Stephane Robert
1013 | Jan-Lennard Struff
1014 | Aljaz Bedene
1015 | Feliciano Lopez
1016 | Kenny De Schepper
1017 | Andrey Kuznetsov
1018 | Pablo Cuevas
1019 | Ernests Gulbis
1020 | Mikhail Kukushkin
1021 | Roberto Bautista Agut
1022 | Nick Kyrgios
1023 | Tommy Robredo
1024 | Robin Haase
1025 | Albert Ramos
1026 | Daniel Evans
1027 | Fernando Verdasco
1028 | Rhyne Williams
1029 | Ryan Harrison
1030 | Novak Djokovic
1031 | Benjamin Becker
1032 | Lukasz Kubot
1033 | Joao Sousa
1034 | Tommy Haas
1035 | Yen-Hsun Lu
1036 | Donald Young
1037 | Florian Mayer
1038 | Tobias Kamke
1039 | Denis Istomin
1040 | Julien Benneteau
1041 | Sergiy Stakhovsky
1042 | Jiri Vesely
1043 | Paolo Lorenzi
1044 | Pablo Andujar
1045 | Thomas Fabbiano
1046 | Jerzy Janowicz
1047 | Jack Sock
1048 | Roger Federer
1049 | Santiago Giraldo
1050 | Horacio Zeballos
1051 | Guido Pella
1052 | John Isner
1053 | Adrian Ungur
1054 | Albert Montanes
1055 | Collin Altamirano
1056 | Rogerio Dutra Silva
1057 | Benoit Paire
1058 | Tim Smyczek
1059 | Jurgen Zopp
1060 | Rajeev Ram
1061 | David Goffin
1062 | Nicolas Mahut
1063 | Jurgen Melzer
1064 | Igor Sijsling
1065 | Lleyton Hewitt
1066 | Guillermo Garcia-Lopez
1067 | Andy Murray
1068 | Victor Hanescu
1069 | Andreas Seppi
1070 | Lukas Lacko
1071 | Stanislas Wawrinka
1072 | James Blake
1073 | Marcos Baghdatis
1074 | Daniel Brands
1075 | Richard Gasquet
1076 | Guillaume Rufin
1077 | Feliciano Lopez
1078 | Pablo Andujar
1079 | Maximo Gonzalez
1080 | Dudi Sela
1081 | Andreas Haider-Maurer
1082 | Roberto Bautista Agut
1083 | Roger Federer
1084 | Adrian Mannarino
1085 | Tommy Robredo
1086 | Bernard Tomic
1087 | John Isner
1088 | Edouard Roger-Vasselin
1089 | Ivan Dodig
1090 | Rogerio Dutra Silva
1091 | Novak Djokovic
1092 | Jarkko Nieminen
1093 | Alex Bogomolov Jr.
1094 | Marcel Granollers
1095 | Tommy Haas
1096 | Alexandr Dolgopolov
1097 | Evgeny Donskoy
1098 | Lleyton Hewitt
1099 | Andy Murray
1100 | Donald Young
1101 | Andreas Seppi
1102 | Tobias Kamke
1103 | Stanislas Wawrinka
1104 | Marcos Baghdatis
1105 | Julien Benneteau
1106 | Denis Kudla
1107 | Richard Gasquet
1108 | Feliciano Lopez
1109 | Jack Sock
1110 | Mikhail Kukushkin
1111 | Roger Federer
1112 | Tommy Robredo
1113 | John Isner
1114 | Ivan Dodig
1115 | Novak Djokovic
1116 | Tim Smyczek
1117 | Tommy Haas
1118 | Evgeny Donskoy
1119 | Andy Murray
1120 | Andreas Seppi
1121 | Stanislas Wawrinka
1122 | Julien Benneteau
1123 | Richard Gasquet
1124 | Janko Tipsarevic
1125 | Roger Federer
1126 | Philipp Kohlschreiber
1127 | Mikhail Youzhny
1128 | Andy Murray
1129 | Stanislas Wawrinka
1130 | Richard Gasquet
1131 | Tommy Robredo
1132 | Novak Djokovic
1133 | Andy Murray
1134 | Novak Djokovic
1135 | Richard Gasquet
1136 | Novak Djokovic
1137 | Michael Russell
1138 | Albano Olivetti
1139 | Guillaume Rufin
1140 | Dmitry Tursunov
1141 | Florent Serra
1142 | Bradley Klahn
1143 | Dudi Sela
1144 | Janko Tipsarevic
1145 | Andreas Haider-Maurer
1146 | Andrej Martin
1147 | Thomaz Bellucci
1148 | David Ferrer
1149 | Marinko Matosevic
1150 | Frank Dancevic
1151 | Bernard Tomic
1152 | Kei Nishikori
1153 | Ivan Dodig
1154 | Nikolay Davydenko
1155 | Rafael Nadal
1156 | Ricardas Berankis
1157 | Lukas Rosol
1158 | Jarkko Nieminen
1159 | Grigor Dimitrov
1160 | Paul-Henri Mathieu
1161 | Daniel Gimeno-Traver
1162 | Martin Klizan
1163 | Juan Monaco
1164 | Steve Johnson
1165 | Nicolas Almagro
1166 | Michal Przysiezny
1167 | Jeremy Chardy
1168 | Denis Kudla
1169 | Tomas Berdych
1170 | Thiemo de Bakker
1171 | Milos Raonic
1172 | Maximo Gonzalez
1173 | Philipp Petzschner
1174 | Grega Zemlja
1175 | Carlos Berlocq
1176 | Adrian Mannarino
1177 | Sam Querrey
1178 | Filippo Volandri
1179 | Gael Monfils
1180 | Edouard Roger-Vasselin
1181 | Philipp Kohlschreiber
1182 | Vasek Pospisil
1183 | Alex Bogomolov Jr.
1184 | James Duckworth
1185 | Marcel Granollers
1186 | Fabio Fognini
1187 | Alexandr Dolgopolov
1188 | Mikhail Youzhny
1189 | Evgeny Donskoy
1190 | Peter Gojowczyk
1191 | Brian Baker
1192 | Juan Martin Del Potro
1193 | Michael Llodra
1194 | Leonardo Mayer
1195 | Xavier Malisse
1196 | Somdev Devvarman
1197 | Radek Stepanek
1198 | Ivo Karlovic
1199 | Go Soeda
1200 | Kevin Anderson
1201 | Stephane Robert
1202 | Dmitry Tursunov
1203 | Bradley Klahn
1204 | Milos Raonic
1205 | Jack Sock
1206 | Janko Tipsarevic
1207 | Mikhail Kukushkin
1208 | David Ferrer
1209 | Carlos Berlocq
1210 | Sam Querrey
1211 | Frank Dancevic
1212 | Daniel Evans
1213 | Gael Monfils
1214 | Philipp Kohlschreiber
1215 | Nikolay Davydenko
1216 | Rafael Nadal
1217 | Benjamin Becker
1218 | Joao Sousa
1219 | Tim Smyczek
1220 | Rajeev Ram
1221 | Yen-Hsun Lu
1222 | Mikhail Youzhny
1223 | Peter Gojowczyk
1224 | Juan Martin Del Potro
1225 | Leonardo Mayer
1226 | Florian Mayer
1227 | Somdev Devvarman
1228 | Denis Istomin
1229 | Ivo Karlovic
1230 | Kevin Anderson
1231 | Jeremy Chardy
1232 | Tomas Berdych
1233 | Dmitry Tursunov
1234 | Milos Raonic
1235 | Janko Tipsarevic
1236 | David Ferrer
1237 | Adrian Mannarino
1238 | Daniel Evans
1239 | Philipp Kohlschreiber
1240 | Rafael Nadal
1241 | Joao Sousa
1242 | Marcel Granollers
1243 | Mikhail Youzhny
1244 | Lleyton Hewitt
1245 | Florian Mayer
1246 | Denis Istomin
1247 | Marcos Baghdatis
1248 | Tomas Berdych
1249 | Milos Raonic
1250 | David Ferrer
1251 | Tommy Robredo
1252 | Rafael Nadal
1253 | Lleyton Hewitt
1254 | Denis Istomin
1255 | Tomas Berdych
1256 | David Ferrer
1257 | Rafael Nadal
1258 | Mikhail Youzhny
1259 | Stanislas Wawrinka
1260 | Stanislas Wawrinka
1261 | Rafael Nadal
1262 | Rafael Nadal
1263 | S Williams
1264 | F Pennetta
1265 | S Williams
1266 | R Vinci
1267 | D Hantuchova
1268 | E Makarova
1269 | A Ivanovic
1270 | A Riske
1271 | S Halep
1272 | C Giorgi
1273 | S Williams
1274 | J Jankovic
1275 | C Suarez Navarro
1276 | A Ivanovic
1277 | C Wozniack
1278 | M Kirilenko
1279 | A Cornet
1280 | K Knapp
1281 | P Kvitova
1282 | S Kuznetsova
1283 | J Glushko
1284 | L Robson
1285 | J Hampton
1286 | S Williams
1287 | A.Radwanska
1288 | E Makarova
1289 | J Zheng
1290 | J Jankovic
1291 | K Kanepi
1292 | F Pennetta
1293 | S Williams
1294 | C Wozniacki
1295 | E Bouchard
1296 | A Wozniak
1297 | C McHale
1298 | A Ivanovic
1299 | P Ormaechea
1300 | A Cornet
1301 | D Hantuchova
1302 | K Nara
1303 | A Riske
1304 | S Kuznetsova
1305 | S Arvidsson
1306 | U Radwanska
1307 | V Williams
1308 | J Hampton
1309 | C Vandeweghe
1310 | L Robson
1311 | A Barty
1312 | P Kvitova
1313 | C Wozniacki
1314 | D Pfizenmaier
1315 | O Rogowska
1316 | V Duval
1317 | A Ivanovic
1318 | J Goerges
1319 | V Lepchenko
1320 | S Kuznetsova
1321 | B Jovanovski
1322 | S Peng
1323 | A Cornet
1324 | H Watson
1325 | K Flipkens
1326 | A.Radwanska
1327 | S Williams
1328 | O Govortsova
1329 | M Minella
1330 | J Jankovic
1331 | L Robson
1332 | J Hampton
1333 | V Dushevina
1334 | P Ormaechea
1335 | K Pliskova
1336 | L Hradecka
1337 | L Davis
1338 | K Mladenovic
1339 | V Azarenka
1340 | V Azarenka
1341 | N Li
1342 | F Pennetta
1343 | V Azarenka
1344 | N Li
1345 | V Azarenka
1346 | D Hantuchova
1347 | F Pennetta
1348 | R Vinci
1349 | S Stephens
1350 | N Li
1351 | A Kerber
1352 | C McHale
1353 | C Giorgi
1354 | S Halep
1355 | V Azarenka
1356 | R Vinci
1357 | A Riske
1358 | F Pennetta
1359 | D Hantuchova
1360 | N Li
1361 | S Stephens
1362 | Y Shvedova
1363 | A Pavlyuchenkova
1364 | S Lisicki
1365 | C Suarez Navarro
1366 | K Nara
1367 | A Kerber
1368 | S Errani
1369 | G Voskoboeva
1370 | C Scheepers
1371 | A Kerber
1372 | V Azarenka
1373 | E Svitolina
1374 | A Dulgheru
1375 | S Lisicki
1376 | A Tomljanovic
1377 | V Duval
1378 | S Cirstea
1379 | M Barthel
1380 | S Peng
1381 | N Li
1382 | S Stephens
1383 | J Zheng
1384 | K Mladenovic
1385 | C Suarez Navarro
1386 | C Garcia
1387 | A Pavlyuchenkova
1388 | M Doi
1389 | Y Duan
1390 | V Azarenka
1391 | S Errani
1392 | S Stosur
1393 | A Tatishvili
1394 | C McHale
1395 | A Dulgheru
1396 | M Burdette
1397 | A Petkovic
1398 | Y Meusburger
1399 | M Koehler
1400 | S Halep
1401 | V Williams
1402 | S.Soler-Espinosa
1403 | F Schiavone
1404 | N Li
1405 | S Stephens
1406 | M Keys
1407 | L Dominguez Lino
1408 | L Arruabarrena
1409 | S Lisicki
1410 | K Date-Krumm
1411 | E Bouchard
1412 | A Kerber
1413 | C Suarez Navarro
1414 | A Medina Garrigues
1415 | B.Becker
1416 | J.Ward
1417 | N.Mahut
1418 | T.Robredo
1419 | R.Haase
1420 | M.Gicquel
1421 | A.Kuznetsov
1422 | J.Tipsarevic
1423 | M.Baghdatis
1424 | K.De Schepper
1425 | L.Lacko
1426 | J.Monaco
1427 | T.Kamke
1428 | F.Verdasco
1429 | E.Roger-Vasselin
1430 | J-W.Tsonga
1431 | V.Hanescu
1432 | R.Dutra Silva
1433 | J.Reister
1434 | F.Fognini
1435 | K.Edmund
1436 | R.Stepanek
1437 | M.Matosevic
1438 | N.Almagro
1439 | L.Hewitt
1440 | D.Brown
1441 | P.Andujar
1442 | J.Isner
1443 | A.Ungur
1444 | S.Robert
1445 | L.Kubot
1446 | R.Nadal
1447 | A.Ramos
1448 | G.Pella
1449 | G.Zemlja
1450 | G.Dimitrov
1451 | D.Istomin
1452 | M.Llodra
1453 | L.Mayer
1454 | K.Nishikori
1455 | I.Dodig
1456 | J.Duckworth
1457 | A.Kuznetsov
1458 | M.Raonic
1459 | G.Elias
1460 | H.Zeballos
1461 | R.Bautista Agut
1462 | D.Ferrer
1463 | M.Klizan
1464 | D.Brands
1465 | P.Petzschner
1466 | K.Anderson
1467 | B.Tomic
1468 | J.Blake
1469 | A.Haider-Maurer
1470 | R.Gasquet
1471 | D.Tursunov
1472 | W.Odesnik
1473 | R.Berankis
1474 | G.Simon
1475 | R.Harrison
1476 | B.Kavcic
1477 | B.Reynolds
1478 | N.Djokovic
1479 | Y-H.Lu
1480 | T.Robredo
1481 | V.Pospisil
1482 | V.Troicki
1483 | J.Monaco
1484 | F.Verdasco
1485 | J-W.Tsonga
1486 | S.Stakhovsky
1487 | J.Melzer
1488 | N.Almagro
1489 | D.Brown
1490 | S.Robert
1491 | J.Levine
1492 | G.Dimitrov
1493 | K.Nishikori
1494 | D.Kudla
1495 | M.Raonic
1496 | D.Brands
1497 | K.Anderson
1498 | J.Blake
1499 | R.Gasquet
1500 | J.Struff
1501 | N.Djokovic
1502 | T.Robredo
1503 | J.Melzer
1504 | N.Almagro
1505 | A.Mannarino
1506 | G.Zemlja
1507 | K.Nishikori
1508 | I.Sijsling
1509 | D.Ferrer
1510 | K.Anderson
1511 | R.Gasquet
1512 | F.Lopez
1513 | N.Djokovic
1514 | M.Youzhny
1515 | F.Verdasco
1516 | J.Janowicz
1517 | L.Kubot
1518 | A.Seppi
1519 | D.Ferrer
1520 | B.Tomic
1521 | N.Djokovic
1522 | F.Verdasco
1523 | L.Kubot
1524 | D.Ferrer
1525 | N.Djokovic
1526 | J.Janowicz
1527 | N.Djokovic
1528 | N.Djokovic
1529 | A.Murray
1530 | Y-H.Lu
1531 | J.Hajek
1532 | A.Bogomolov Jr.
1533 | M.Youzhny
1534 | V.Pospisil
1535 | A.Montanes
1536 | V.Troicki
1537 | M.Cilic
1538 | P.Lorenzi
1539 | R.Ram
1540 | B.Knittel
1541 | J.Benneteau
1542 | X.Malisse
1543 | E.Gulbis
1544 | D.Goffin
1545 | R.Federer
1546 | S.Stakhovsky
1547 | L.Rosol
1548 | J.Melzer
1549 | J.Janowicz
1550 | M.Reid
1551 | G.Rufin
1552 | J.Zopp
1553 | S.Wawrinka
1554 | G.Garcia-Lopez
1555 | A.Mannarino
1556 | E.Donskoy
1557 | B.Paire
1558 | A.Falla
1559 | I.Andreev
1560 | S.Darcis
1561 | J.Del Potro
1562 | J.Levine
1563 | M.Russell
1564 | S.Bolelli
1565 | A.Seppi
1566 | J.Nieminen
1567 | A.Bedene
1568 | M.Ebden
1569 | P.Kohlschreiber
1570 | D.Kudla
1571 | I.Sijsling
1572 | C.Berlocq
1573 | A.Dolgopolov
1574 | S.Giraldo
1575 | T.Gabashvili
1576 | M.Alund
1577 | T.Berdych
1578 | D.Gimeno-Traver
1579 | M.Przysiezny
1580 | O.Rochus
1581 | S.Querrey
1582 | T.De Bakker
1583 | G.Soeda
1584 | M.Granollers
1585 | T.Haas
1586 | Y-T.Wang
1587 | P-H.Mathieu
1588 | F.Lopez
1589 | J.Chardy
1590 | J.Struff
1591 | S.Johnson
1592 | F.Mayer
1593 | A.Murray
1594 | N.Mahut
1595 | M.Youzhny
1596 | A.Kuznetsov
1597 | R.Ram
1598 | J.Benneteau
1599 | E.Gulbis
1600 | R.Federer
1601 | J.Reister
1602 | G.Rufin
1603 | L.Hewitt
1604 | B.Paire
1605 | J.Del Potro
1606 | G.Zemlja
1607 | L.Mayer
1608 | I.Dodig
1609 | I.Sijsling
1610 | T.Berdych
1611 | M.Przysiezny
1612 | B.Tomic
1613 | G.Soeda
1614 | J.Chardy
1615 | B.Reynolds
1616 | A.Murray
1617 | S.Stakhovsky
1618 | J.Janowicz
1619 | D.Brown
1620 | J.Del Potro
1621 | A.Seppi
1622 | I.Dodig
1623 | A.Dolgopolov
1624 | T.Berdych
1625 | B.Tomic
1626 | T.Haas
1627 | J.Chardy
1628 | A.Murray
1629 | K.De Schepper
1630 | J.Melzer
1631 | A.Mannarino
1632 | J.Del Potro
1633 | I.Dodig
1634 | T.Berdych
1635 | T.Haas
1636 | A.Murray
1637 | J.Janowicz
1638 | J.Del Potro
1639 | T.Berdych
1640 | A.Murray
1641 | J.Del Potro
1642 | A.Murray
1643 | M.Koehler
1644 | E.Baltacha
1645 | S-W.Hsieh
1646 | A.Cornet
1647 | Y.Putintseva
1648 | A.Tomljanovic
1649 | Y.Wickmayer
1650 | J.Jankovic
1651 | V.Razzano
1652 | E.Bouchard
1653 | S.Arvidsson
1654 | C.Suarez Navarro
1655 | J.Larsson
1656 | G.Muguruza
1657 | K.Bertens
1658 | P.Kvitova
1659 | K.Mladenovic
1660 | M.Larcher De Brito
1661 | L.Hradecka
1662 | L.Safarova
1663 | S.Voegele
1664 | C.Giorgi
1665 | C.McHale
1666 | M.Bartoli
1667 | E.Cabeza Candela
1668 | P.Cetkovska
1669 | P.Parmentier
1670 | S.Stephens
1671 | E.Birnerova
1672 | L.Arruabarrena
1673 | S.Soler-Espinosa
1674 | S.Errani
1675 | M.Krajicek
1676 | O.Govortsova
1677 | N.Bratchikova
1678 | K.Zakopalova
1679 | M.Camerin
1680 | M.Torro-Flor
1681 | Kr.Pliskova
1682 | R.Vinci
1683 | Ka.Pliskova
1684 | A.Tatishvili
1685 | B.Zahlavova Strycova
1686 | A.Pavlyuchenkova
1687 | M.Niculescu
1688 | H.Watson
1689 | T.Babos
1690 | A.Radwanska
1691 | B.Mattek-Sands
1692 | K.Kanepi
1693 | M.Burdette
1694 | R.Oprandi
1695 | A.Medina Garrigues
1696 | A.Morita
1697 | M.Duque-Marino
1698 | M.Kirilenko
1699 | A.Schmiedlova
1700 | O.Puchkova
1701 | E.Vesnina
1702 | S.Lisicki
1703 | A.Cadantu
1704 | K.Date-Krumm
1705 | C.Garcia
1706 | S.Williams
1707 | A.Cornet
1708 | B.Jovanovski
1709 | J.Jankovic
1710 | E.Bouchard
1711 | C.Suarez Navarro
1712 | G.Muguruza
1713 | M.Larcher De Brito
1714 | L.Safarova
1715 | C.Giorgi
1716 | M.Bartoli
1717 | P.Cetkovska
1718 | S.Stephens
1719 | L.Tsurenko
1720 | M.Puig
1721 | S.Halep
1722 | K.Zakopalova
1723 | M.Torro-Flor
1724 | R.Vinci
1725 | P.Martic
1726 | T.Pironkova
1727 | M.Keys
1728 | A.Radwanska
1729 | M.Erakovic
1730 | O.Puchkova
1731 | S.Lisicki
1732 | K.Date-Krumm
1733 | S.Williams
1734 | A.Cornet
1735 | V.Dolonc
1736 | C.Suarez Navarro
1737 | P.Kvitova
1738 | K.Knapp
1739 | M.Bartoli
1740 | S.Stephens
1741 | M.Puig
1742 | K.Zakopalova
1743 | R.Vinci
1744 | T.Pironkova
1745 | A.Radwanska
1746 | A.Riske
1747 | L.Robson
1748 | S.Lisicki
1749 | S.Williams
1750 | K.Flipkens
1751 | P.Kvitova
1752 | M.Bartoli
1753 | M.Puig
1754 | R.Vinci
1755 | A.Radwanska
1756 | L.Robson
1757 | S.Williams
1758 | P.Kvitova
1759 | S.Stephens
1760 | A.Radwanska
1761 | S.Lisicki
1762 | M.Bartoli
1763 | S.Lisicki
1764 | S.Lisicki
1765 | V.Azarenka
1766 | F.Pennetta
1767 | T.Maria
1768 | V.King
1769 | K.Flipkens
1770 | B.Jovanovski
1771 | V.Dolonc
1772 | J.Konta
1773 | A.Ivanovic
1774 | G.Voskoboeva
1775 | M.Lucic-Baroni
1776 | L.Dominguez Lino
1777 | E.Makarova
1778 | A.Keothavong
1779 | Y.Shvedova
1780 | C.Vandeweghe
1781 | M.Sharapova
1782 | M.Oudin
1783 | K.Knapp
1784 | L.Davis
1785 | S.Cirstea
1786 | S.Murray
1787 | A.Glatch
1788 | E.Svitolina
1789 | C.Wozniacki
1790 | D.Vekic
1791 | A.Petkovic
1792 | J.Hampton
1793 | V.Lepchenko
1794 | L.Tsurenko
1795 | M.Doi
1796 | M.Puig
1797 | N.Li
1798 | S.Halep
1799 | A.Beck
1800 | D.Hantuchova
1801 | D.Cibulkova
1802 | I.Begu
1803 | J.Cepelova
1804 | C.Scheepers
1805 | N.Petrova
1806 | P.Martic
1807 | M.Rybarikova
1808 | T.Pironkova
1809 | M.Barthel
1810 | M.Keys
1811 | M.Johansson
1812 | Y.Meusburger
1813 | A.Kerber
1814 | T.Moore
1815 | U.Radwanska
1816 | A.Riske
1817 | S.Peng
1818 | M.Erakovic
1819 | J.Goerges
1820 | L.Robson
1821 | S.Stosur
1822 | A.Rus
1823 | A.Hlavackova
1824 | F.Schiavone
1825 | T.Paszek
1826 | C.Witthoeft
1827 | J.Zheng
1828 | M.Minella
1829 | S-W.Hsieh
1830 | K.Flipkens
1831 | V.Dolonc
1832 | A.Ivanovic
1833 | M.Lucic-Baroni
1834 | E.Makarova
1835 | M.Sharapova
1836 | K.Knapp
1837 | S.Cirstea
1838 | C.McHale
1839 | C.Wozniacki
1840 | A.Petkovic
1841 | E.Birnerova
1842 | S.Soler-Espinosa
1843 | N.Li
1844 | A.Beck
1845 | D.Cibulkova
1846 | J.Cepelova
1847 | Ka.Pliskova
1848 | B.Zahlavova Strycova
1849 | M.Barthel
1850 | M.Johansson
1851 | S.Peng
1852 | S.Stosur
1853 | E.Vesnina
1854 | A.Cadantu
1855 | C.Garcia
1856 | F.Pennetta
1857 | K.Flipkens
1858 | E.Bouchard
1859 | E.Makarova
1860 | M.Larcher De Brito
1861 | C.Giorgi
1862 | P.Cetkovska
1863 | E.Birnerova
1864 | N.Li
1865 | D.Cibulkova
1866 | P.Martic
1867 | M.Keys
1868 | K.Kanepi
1869 | M.Erakovic
1870 | S.Stosur
1871 | K.Date-Krumm
1872 | F.Pennetta
1873 | C.Suarez Navarro
1874 | K.Knapp
1875 | S.Stephens
1876 | N.Li
1877 | T.Pironkova
1878 | K.Kanepi
1879 | S.Lisicki
1880 | K.Flipkens
1881 | M.Bartoli
1882 | N.Li
1883 | K.Kanepi
1884 | K.Flipkens
1885 | A.Radwanska
1886 | M.Bartoli
1887 |
--------------------------------------------------------------------------------
/tennis/rebuilt.json:
--------------------------------------------------------------------------------
1 | {
2 | "Melanie Oudin": [
3 | "Melanie Oudin",
4 | "M.Oudin"
5 | ],
6 | "Varvara Lepchenko": [
7 | "Varvara Lepchenko",
8 | "V Lepchenko",
9 | "V.Lepchenko"
10 | ],
11 | "Olga Govortsova": [
12 | "Olga Govortsova",
13 | "O Govortsova",
14 | "O.Govortsova"
15 | ],
16 | "Dominika Cibulkova": [
17 | "Dominika Cibulkova",
18 | "D.Cibulkova"
19 | ],
20 | "Luksika Kumkhum": [
21 | "Luksika Kumkhum"
22 | ],
23 | "Alexandra Cadantu": [
24 | "Alexandra Cadantu",
25 | "A.Cadantu"
26 | ],
27 | "Florian Mayer": [
28 | "Florian Mayer",
29 | "F.Mayer"
30 | ],
31 | "Aljaz Bedene": [
32 | "Aljaz Bedene",
33 | "A.Bedene"
34 | ],
35 | "Pablo Carreno-Busta": [
36 | "Pablo Carreno-Busta",
37 | "Pablo Carreno Busta"
38 | ],
39 | "Casey Dellacqua": [
40 | "Casey Dellacqua"
41 | ],
42 | "Zuzana Kucova": [
43 | "Zuzana Kucova"
44 | ],
45 | "Milos Raonic": [
46 | "Milos Raonic",
47 | "M.Raonic"
48 | ],
49 | "Jarmila Gajdosova": [
50 | "Jarmila Gajdosova"
51 | ],
52 | "Julien Benneteau": [
53 | "Julien Benneteau",
54 | "J.Benneteau"
55 | ],
56 | "Donna Vekic": [
57 | "Donna Vekic",
58 | "D.Vekic"
59 | ],
60 | "Collin Altamirano": [
61 | "Collin Altamirano"
62 | ],
63 | "Tatjana Maria": [
64 | "Tatjana Maria",
65 | "T.Maria"
66 | ],
67 | "Dmitry Tursunov": [
68 | "Dmitry Tursunov",
69 | "D.Tursunov"
70 | ],
71 | "Kaia Kanepi": [
72 | "Kaia Kanepi",
73 | "K Kanepi",
74 | "K.Kanepi"
75 | ],
76 | "Belinda Bencic": [
77 | "Belinda Bencic"
78 | ],
79 | "Andrey Kuznetsov": [
80 | "A.Kuznetsov",
81 | "Andrey Kuznetsov"
82 | ],
83 | "Silvia Soler-Espinosa": [
84 | "Silvia Soler-Espinosa",
85 | "S.Soler-Espinosa"
86 | ],
87 | "Claire Feuerstein": [
88 | "Claire Feuerstein"
89 | ],
90 | "M.Reid": [
91 | "M.Reid"
92 | ],
93 | "Stefanie Voegele": [
94 | "Stefanie Voegele",
95 | "S.Voegele"
96 | ],
97 | "Alize Cornet": [
98 | "Alize Cornet",
99 | "A Cornet",
100 | "A.Cornet"
101 | ],
102 | "Paula Ormaechea": [
103 | "Paula Ormaechea",
104 | "P Ormaechea"
105 | ],
106 | "Steve Darcis": [
107 | "Steve Darcis",
108 | "S.Darcis"
109 | ],
110 | "Nikolay Davydenko": [
111 | "Nikolay Davydenko"
112 | ],
113 | "Caroline Wozniacki": [
114 | "Caroline Wozniacki",
115 | "C Wozniacki",
116 | "C.Wozniacki",
117 | "C Wozniack"
118 | ],
119 | "Monica Puig": [
120 | "Monica Puig",
121 | "M.Puig"
122 | ],
123 | "Agnieszka Radwanska": [
124 | "A.Radwanska",
125 | "Agnieszka Radwanska"
126 | ],
127 | "Anastasia Pavlyuchenkova": [
128 | "Anastasia Pavlyuchenkova",
129 | "A Pavlyuchenkova",
130 | "A.Pavlyuchenkova"
131 | ],
132 | "Di Wu": [
133 | "Di Wu"
134 | ],
135 | "Evgeny Donskoy": [
136 | "Evgeny Donskoy",
137 | "E.Donskoy"
138 | ],
139 | "Nina Bratchikova": [
140 | "Nina Bratchikova",
141 | "N.Bratchikova"
142 | ],
143 | "Heather Watson": [
144 | "Heather Watson",
145 | "H Watson",
146 | "H.Watson"
147 | ],
148 | "Pauline Parmentier": [
149 | "Pauline Parmentier",
150 | "P.Parmentier"
151 | ],
152 | "Nadia Petrova": [
153 | "Nadia Petrova",
154 | "N.Petrova"
155 | ],
156 | "Nadiya Kichenok": [
157 | "Nadiya Kichenok"
158 | ],
159 | "Coco Vandeweghe": [
160 | "Coco Vandeweghe",
161 | "C Vandeweghe",
162 | "C.Vandeweghe"
163 | ],
164 | "Joao Sousa": [
165 | "Joao Sousa"
166 | ],
167 | "Kei Nishikori": [
168 | "Kei Nishikori",
169 | "K.Nishikori"
170 | ],
171 | "Sloane Stephens": [
172 | "Sloane Stephens",
173 | "S Stephens",
174 | "S.Stephens"
175 | ],
176 | "Florent Serra": [
177 | "Florent Serra"
178 | ],
179 | "Michael Llodra": [
180 | "Michael Llodra",
181 | "M.Llodra"
182 | ],
183 | "Lukas Rosol": [
184 | "Lukas Rosol",
185 | "L.Rosol"
186 | ],
187 | "David Ferrer": [
188 | "David Ferrer",
189 | "D.Ferrer"
190 | ],
191 | "Ryan Harrison": [
192 | "Ryan Harrison",
193 | "R.Harrison"
194 | ],
195 | "Mariana Duque-Marino": [
196 | "Mariana Duque-Marino",
197 | "M.Duque-Marino"
198 | ],
199 | "Sergiy Stakhovsky": [
200 | "Sergiy Stakhovsky",
201 | "S.Stakhovsky"
202 | ],
203 | "Andreas Seppi": [
204 | "Andreas Seppi",
205 | "A.Seppi"
206 | ],
207 | "M Koehler": [
208 | "M Koehler",
209 | "M.Koehler"
210 | ],
211 | "Romina Oprandi": [
212 | "Romina Oprandi",
213 | "R.Oprandi"
214 | ],
215 | "Julia Glushko": [
216 | "Julia Glushko",
217 | "J Glushko"
218 | ],
219 | "Shelby Rogers": [
220 | "Shelby Rogers"
221 | ],
222 | "Storm Sanders": [
223 | "Storm Sanders"
224 | ],
225 | "Jerzy Janowicz": [
226 | "Jerzy Janowicz",
227 | "J.Janowicz"
228 | ],
229 | "Lauren Davis": [
230 | "Lauren Davis",
231 | "L Davis",
232 | "L.Davis"
233 | ],
234 | "Victoria Azarenka": [
235 | "Victoria Azarenka",
236 | "V Azarenka",
237 | "V.Azarenka"
238 | ],
239 | "Klara Zakopalova": [
240 | "Klara Zakopalova",
241 | "K.Zakopalova"
242 | ],
243 | "Marion Bartoli": [
244 | "Marion Bartoli",
245 | "M.Bartoli"
246 | ],
247 | "Carla Suarez Navarro": [
248 | "Carla Suarez Navarro",
249 | "C Suarez Navarro",
250 | "C.Suarez Navarro"
251 | ],
252 | "Lucie Hradecka": [
253 | "Lucie Hradecka",
254 | "L Hradecka",
255 | "L.Hradecka"
256 | ],
257 | "Sabine Lisicki": [
258 | "Sabine Lisicki",
259 | "S Lisicki",
260 | "S.Lisicki"
261 | ],
262 | "Sara Errani": [
263 | "Sara Errani",
264 | "S Errani",
265 | "S.Errani"
266 | ],
267 | "Kristina Mladenovic": [
268 | "Kristina Mladenovic",
269 | "K Mladenovic",
270 | "K.Mladenovic"
271 | ],
272 | "Mikhail Kukushkin": [
273 | "Mikhail Kukushkin"
274 | ],
275 | "Richard Gasquet": [
276 | "Richard Gasquet",
277 | "R.Gasquet"
278 | ],
279 | "Ana Konjuh": [
280 | "Ana Konjuh"
281 | ],
282 | "Kirsten Flipkens": [
283 | "Kirsten Flipkens",
284 | "K Flipkens",
285 | "K.Flipkens"
286 | ],
287 | "Simona Halep": [
288 | "Simona Halep",
289 | "S Halep",
290 | "S.Halep"
291 | ],
292 | "Michael Russell": [
293 | "Michael Russell",
294 | "M.Russell"
295 | ],
296 | "V Duval": [
297 | "V Duval"
298 | ],
299 | "Kenny De Schepper": [
300 | "Kenny De Schepper",
301 | "K.De Schepper"
302 | ],
303 | "Alejandro Falla": [
304 | "Alejandro Falla",
305 | "A.Falla"
306 | ],
307 | "Feliciano Lopez": [
308 | "Feliciano Lopez",
309 | "F.Lopez"
310 | ],
311 | "M.Krajicek": [
312 | "M.Krajicek"
313 | ],
314 | "Alla Kudryavtseva": [
315 | "Alla Kudryavtseva"
316 | ],
317 | "Ze Zhang": [
318 | "Ze Zhang"
319 | ],
320 | "Sandra Zahlavova": [
321 | "Sandra Zahlavova"
322 | ],
323 | "Karolína Plíšková": [
324 | "K Pliskova",
325 | "Karolina Pliskova",
326 | "Ka.Pliskova"
327 | ],
328 | "Vera Zvonareva": [
329 | "Vera Zvonareva"
330 | ],
331 | "James Blake": [
332 | "James Blake",
333 | "J.Blake"
334 | ],
335 | "Katerina Siniakova": [
336 | "Katerina Siniakova"
337 | ],
338 | "Juan Monaco": [
339 | "Juan Monaco",
340 | "J.Monaco"
341 | ],
342 | "Carina Witthoeft": [
343 | "Carina Witthoeft",
344 | "C.Witthoeft"
345 | ],
346 | "Pere Riba": [
347 | "Pere Riba"
348 | ],
349 | "Johanna Larsson": [
350 | "Johanna Larsson",
351 | "J.Larsson"
352 | ],
353 | "Mikhail Youzhny": [
354 | "Mikhail Youzhny",
355 | "M.Youzhny"
356 | ],
357 | "Tsvetana Pironkova": [
358 | "Tsvetana Pironkova",
359 | "T.Pironkova"
360 | ],
361 | "Svetlana Kuznetsova": [
362 | "S Kuznetsova",
363 | "Svetlana Kuznetsova"
364 | ],
365 | "Jeremy Chardy": [
366 | "Jeremy Chardy",
367 | "J.Chardy"
368 | ],
369 | "Kimiko Date-Krumm": [
370 | "Kimiko Date-Krumm",
371 | "K Date-Krumm",
372 | "K.Date-Krumm"
373 | ],
374 | "Tobias Kamke": [
375 | "Tobias Kamke",
376 | "T.Kamke"
377 | ],
378 | "Robin Haase": [
379 | "Robin Haase",
380 | "R.Haase"
381 | ],
382 | "Daniela Hantuchova": [
383 | "Daniela Hantuchova",
384 | "D Hantuchova",
385 | "D.Hantuchova"
386 | ],
387 | "Galina Voskoboeva": [
388 | "Galina Voskoboeva",
389 | "G Voskoboeva",
390 | "G.Voskoboeva"
391 | ],
392 | "O.Rochus": [
393 | "O.Rochus"
394 | ],
395 | "Steve Johnson": [
396 | "Steve Johnson",
397 | "S.Johnson"
398 | ],
399 | "Kiki Bertens": [
400 | "Kiki Bertens",
401 | "K.Bertens"
402 | ],
403 | "Shahar Peer": [
404 | "Shahar Peer"
405 | ],
406 | "Damir Dzumhur": [
407 | "Damir Dzumhur"
408 | ],
409 | "Jie Zheng": [
410 | "J.Zheng",
411 | "J Zheng",
412 | "Jie Zheng"
413 | ],
414 | "David Goffin": [
415 | "David Goffin",
416 | "D.Goffin"
417 | ],
418 | "Gilles Muller": [
419 | "Gilles Muller"
420 | ],
421 | "Andy Murray": [
422 | "A.Murray",
423 | "Andy Murray"
424 | ],
425 | "Misaki Doi": [
426 | "Misaki Doi",
427 | "M Doi",
428 | "M.Doi"
429 | ],
430 | "Yung-Jan Chan": [
431 | "Yung-Jan Chan"
432 | ],
433 | "Tim Smyczek": [
434 | "Tim Smyczek"
435 | ],
436 | "Petra Cetkovska": [
437 | "Petra Cetkovska",
438 | "P.Cetkovska"
439 | ],
440 | "Maxime Teixeira": [
441 | "Maxime Teixeira"
442 | ],
443 | "Julia Goerges": [
444 | "Julia Goerges",
445 | "J Goerges",
446 | "J.Goerges"
447 | ],
448 | "Na Li": [
449 | "N.Li",
450 | "N Li",
451 | "Na Li"
452 | ],
453 | "E.Birnerova": [
454 | "E.Birnerova"
455 | ],
456 | "Rajeev Ram": [
457 | "Rajeev Ram",
458 | "R.Ram"
459 | ],
460 | "Jurgen Melzer": [
461 | "Jurgen Melzer",
462 | "J.Melzer"
463 | ],
464 | "Andrej Martin": [
465 | "Andrej Martin"
466 | ],
467 | "Brian Baker": [
468 | "Brian Baker"
469 | ],
470 | "Samantha Stosur": [
471 | "Samantha Stosur",
472 | "S Stosur",
473 | "S.Stosur"
474 | ],
475 | "Jesse Levine": [
476 | "Jesse Levine",
477 | "J.Levine"
478 | ],
479 | "Monica Niculescu": [
480 | "Monica Niculescu",
481 | "M.Niculescu"
482 | ],
483 | "Jan Hajek": [
484 | "Jan Hajek",
485 | "J.Hajek"
486 | ],
487 | "Anna Karolina Schmiedlova": [
488 | "Anna Karolina Schmiedlova",
489 | "Anna Schmiedlova",
490 | "A.Schmiedlova"
491 | ],
492 | "Arantxa Rus": [
493 | "Arantxa Rus",
494 | "A.Rus"
495 | ],
496 | "Novak Djokovic": [
497 | "Novak Djokovic",
498 | "N.Djokovic"
499 | ],
500 | "Maria Kirilenko": [
501 | "Maria Kirilenko",
502 | "M Kirilenko",
503 | "M.Kirilenko"
504 | ],
505 | "Thanasi Kokkinakis": [
506 | "Thanasi Kokkinakis"
507 | ],
508 | "Shuai Peng": [
509 | "S.Peng",
510 | "S Peng",
511 | "Shuai Peng"
512 | ],
513 | "Ekaterina Makarova": [
514 | "Ekaterina Makarova",
515 | "E Makarova",
516 | "E.Makarova"
517 | ],
518 | "Thomas Fabbiano": [
519 | "Thomas Fabbiano"
520 | ],
521 | "Peter Gojowczyk": [
522 | "Peter Gojowczyk"
523 | ],
524 | "Aravane Rezai": [
525 | "Aravane Rezai"
526 | ],
527 | "A.Glatch": [
528 | "A.Glatch"
529 | ],
530 | "Olivia Rogowska": [
531 | "Olivia Rogowska",
532 | "O Rogowska"
533 | ],
534 | "Elena Vesnina": [
535 | "Elena Vesnina",
536 | "E.Vesnina"
537 | ],
538 | "S.Murray": [
539 | "S.Murray"
540 | ],
541 | "Alex Bogomolov Jr.": [
542 | "Alex Bogomolov Jr.",
543 | "A.Bogomolov Jr."
544 | ],
545 | "Stephane Robert": [
546 | "Stephane Robert",
547 | "S.Robert"
548 | ],
549 | "Elena Baltacha": [
550 | "Elena Baltacha",
551 | "E.Baltacha"
552 | ],
553 | "Frank Dancevic": [
554 | "Frank Dancevic"
555 | ],
556 | "Guido Pella": [
557 | "Guido Pella",
558 | "G.Pella"
559 | ],
560 | "Teliana Pereira": [
561 | "Teliana Pereira"
562 | ],
563 | "Carlos Berlocq": [
564 | "Carlos Berlocq",
565 | "C.Berlocq"
566 | ],
567 | "Marcel Granollers": [
568 | "Marcel Granollers",
569 | "M.Granollers"
570 | ],
571 | "Maria Sharapova": [
572 | "Maria Sharapova",
573 | "M.Sharapova"
574 | ],
575 | "Petra Kvitova": [
576 | "Petra Kvitova",
577 | "P Kvitova",
578 | "P.Kvitova"
579 | ],
580 | "A.Keothavong": [
581 | "A.Keothavong"
582 | ],
583 | "Xavier Malisse": [
584 | "Xavier Malisse",
585 | "X.Malisse"
586 | ],
587 | "Olga Puchkova": [
588 | "Olga Puchkova",
589 | "O.Puchkova"
590 | ],
591 | "Daniel Brands": [
592 | "Daniel Brands",
593 | "D.Brands"
594 | ],
595 | "Eugenie Bouchard": [
596 | "Eugenie Bouchard",
597 | "E Bouchard",
598 | "E.Bouchard"
599 | ],
600 | "Roger Federer": [
601 | "Roger Federer",
602 | "R.Federer"
603 | ],
604 | "Timea Babos": [
605 | "Timea Babos",
606 | "T.Babos"
607 | ],
608 | "Mona Barthel": [
609 | "Mona Barthel",
610 | "M Barthel",
611 | "M.Barthel"
612 | ],
613 | "Rhyne Williams": [
614 | "Rhyne Williams"
615 | ],
616 | "Aleksandr Nedovyesov": [
617 | "Aleksandr Nedovyesov"
618 | ],
619 | "Vincent Millot": [
620 | "Vincent Millot"
621 | ],
622 | "Jiri Vesely": [
623 | "Jiri Vesely"
624 | ],
625 | "Samuel Groth": [
626 | "Samuel Groth"
627 | ],
628 | "Chanelle Scheepers": [
629 | "Chanelle Scheepers",
630 | "C Scheepers",
631 | "C.Scheepers"
632 | ],
633 | "B.Reynolds": [
634 | "B.Reynolds"
635 | ],
636 | "Daniel Munoz-De La Nava": [
637 | "Daniel Munoz-De La Nava"
638 | ],
639 | "Dusan Lajovic": [
640 | "Dusan Lajovic"
641 | ],
642 | "B.Knittel": [
643 | "B.Knittel"
644 | ],
645 | "Michael Berrer": [
646 | "Michael Berrer"
647 | ],
648 | "Fernando Verdasco": [
649 | "Fernando Verdasco",
650 | "F.Verdasco"
651 | ],
652 | "Dominic Thiem": [
653 | "Dominic Thiem"
654 | ],
655 | "Tadeja Majeric": [
656 | "Tadeja Majeric"
657 | ],
658 | "Yen-Hsun Lu": [
659 | "Yen-Hsun Lu",
660 | "Y-H.Lu"
661 | ],
662 | "Karin Knapp": [
663 | "Karin Knapp",
664 | "K Knapp",
665 | "K.Knapp"
666 | ],
667 | "Denis Kudla": [
668 | "Denis Kudla",
669 | "D.Kudla"
670 | ],
671 | "Nick Kyrgios": [
672 | "Nick Kyrgios"
673 | ],
674 | "Mirjana Lucic-Baroni": [
675 | "Mirjana Lucic-Baroni",
676 | "M.Lucic-Baroni"
677 | ],
678 | "Jurgen Zopp": [
679 | "Jurgen Zopp",
680 | "J.Zopp"
681 | ],
682 | "Victor Hanescu": [
683 | "Victor Hanescu",
684 | "V.Hanescu"
685 | ],
686 | "Mathilde Johansson": [
687 | "Mathilde Johansson",
688 | "M.Johansson"
689 | ],
690 | "Daniel Evans": [
691 | "Daniel Evans"
692 | ],
693 | "Grigor Dimitrov": [
694 | "Grigor Dimitrov",
695 | "G.Dimitrov"
696 | ],
697 | "Sofia Arvidsson": [
698 | "Sofia Arvidsson",
699 | "S Arvidsson",
700 | "S.Arvidsson"
701 | ],
702 | "Dinah Pfizenmaier": [
703 | "Dinah Pfizenmaier",
704 | "D Pfizenmaier"
705 | ],
706 | "Ajla Tomljanovic": [
707 | "Ajla Tomljanovic",
708 | "A Tomljanovic",
709 | "A.Tomljanovic"
710 | ],
711 | "Benoit Paire": [
712 | "Benoit Paire",
713 | "B.Paire"
714 | ],
715 | "Caroline Garcia": [
716 | "Caroline Garcia",
717 | "C Garcia",
718 | "C.Garcia"
719 | ],
720 | "John Isner": [
721 | "John Isner",
722 | "J.Isner"
723 | ],
724 | "Barbora Zahlavova Strycova": [
725 | "Barbora Zahlavova Strycova",
726 | "B.Zahlavova Strycova"
727 | ],
728 | "Rogerio Dutra Silva": [
729 | "Rogerio Dutra Silva",
730 | "R.Dutra Silva"
731 | ],
732 | "Ricardas Berankis": [
733 | "Ricardas Berankis",
734 | "R.Berankis"
735 | ],
736 | "Somdev Devvarman": [
737 | "Somdev Devvarman"
738 | ],
739 | "T.Moore": [
740 | "T.Moore"
741 | ],
742 | "Petra Martic": [
743 | "P.Martic",
744 | "Petra Martic"
745 | ],
746 | "Flavia Pennetta": [
747 | "Flavia Pennetta",
748 | "F Pennetta",
749 | "F.Pennetta"
750 | ],
751 | "Edouard Roger-Vasselin": [
752 | "Edouard Roger-Vasselin",
753 | "E.Roger-Vasselin"
754 | ],
755 | "Nicolas Mahut": [
756 | "Nicolas Mahut",
757 | "N.Mahut"
758 | ],
759 | "Federico Delbonis": [
760 | "Federico Delbonis"
761 | ],
762 | "Alejandro Gonzalez": [
763 | "Alejandro Gonzalez"
764 | ],
765 | "Marcos Baghdatis": [
766 | "Marcos Baghdatis",
767 | "M.Baghdatis"
768 | ],
769 | "Grega Zemlja": [
770 | "Grega Zemlja",
771 | "G.Zemlja"
772 | ],
773 | "Marc Gicquel": [
774 | "Marc Gicquel",
775 | "M.Gicquel"
776 | ],
777 | "J.Konta": [
778 | "J.Konta"
779 | ],
780 | "Katarzyna Piter": [
781 | "Katarzyna Piter"
782 | ],
783 | "Gilles Simon": [
784 | "Gilles Simon",
785 | "G.Simon"
786 | ],
787 | "Jan-Lennard Struff": [
788 | "Jan-Lennard Struff",
789 | "J.Struff"
790 | ],
791 | "Ana Ivanovic": [
792 | "Ana Ivanovic",
793 | "A Ivanovic",
794 | "A.Ivanovic"
795 | ],
796 | "Lucie Safarova": [
797 | "Lucie Safarova",
798 | "L.Safarova"
799 | ],
800 | "Roberto Bautista Agut": [
801 | "Roberto Bautista Agut",
802 | "R.Bautista Agut"
803 | ],
804 | "Nicolas Almagro": [
805 | "Nicolas Almagro",
806 | "N.Almagro"
807 | ],
808 | "M.Camerin": [
809 | "M.Camerin"
810 | ],
811 | "Yaroslava Shvedova": [
812 | "Yaroslava Shvedova",
813 | "Y Shvedova",
814 | "Y.Shvedova"
815 | ],
816 | "Ayumi Morita": [
817 | "Ayumi Morita",
818 | "A.Morita"
819 | ],
820 | "Ashleigh Barty": [
821 | "Ashleigh Barty",
822 | "A Barty"
823 | ],
824 | "V Dushevina": [
825 | "V Dushevina"
826 | ],
827 | "Grace Min": [
828 | "Grace Min"
829 | ],
830 | "Hao Chen Tang": [
831 | "Hao Chen Tang"
832 | ],
833 | "Patricia Mayr-Achleitner": [
834 | "Patricia Mayr-Achleitner"
835 | ],
836 | "Jack Sock": [
837 | "Jack Sock"
838 | ],
839 | "Go Soeda": [
840 | "Go Soeda",
841 | "G.Soeda"
842 | ],
843 | "Bethanie Mattek-Sands": [
844 | "Bethanie Mattek-Sands",
845 | "B.Mattek-Sands"
846 | ],
847 | "Roberta Vinci": [
848 | "Roberta Vinci",
849 | "R Vinci",
850 | "R.Vinci"
851 | ],
852 | "Ivo Karlovic": [
853 | "Ivo Karlovic"
854 | ],
855 | "Tomas Berdych": [
856 | "Tomas Berdych",
857 | "T.Berdych"
858 | ],
859 | "Maria Joao Koehler": [
860 | "Maria Joao Koehler"
861 | ],
862 | "Virginie Razzano": [
863 | "Virginie Razzano",
864 | "V.Razzano"
865 | ],
866 | "Kristýna Plíšková": [
867 | "Kr.Pliskova",
868 | "Kristyna Pliskova"
869 | ],
870 | "Yvonne Meusburger": [
871 | "Yvonne Meusburger",
872 | "Y Meusburger",
873 | "Y.Meusburger"
874 | ],
875 | "Magdalena Rybarikova": [
876 | "Magdalena Rybarikova",
877 | "M.Rybarikova"
878 | ],
879 | "Philipp Kohlschreiber": [
880 | "Philipp Kohlschreiber",
881 | "P.Kohlschreiber"
882 | ],
883 | "Zarina Diyas": [
884 | "Zarina Diyas"
885 | ],
886 | "Paolo Lorenzi": [
887 | "Paolo Lorenzi",
888 | "P.Lorenzi"
889 | ],
890 | "Stanislas Wawrinka": [
891 | "Stanislas Wawrinka",
892 | "S.Wawrinka"
893 | ],
894 | "Andrea Hlavackova": [
895 | "Andrea Hlavackova",
896 | "A.Hlavackova"
897 | ],
898 | "Maximo Gonzalez": [
899 | "Maximo Gonzalez"
900 | ],
901 | "Martin Alund": [
902 | "Martin Alund",
903 | "M.Alund"
904 | ],
905 | "Sam Querrey": [
906 | "Sam Querrey",
907 | "S.Querrey"
908 | ],
909 | "Alison Van Uytvanck": [
910 | "Alison Van Uytvanck"
911 | ],
912 | "Matthew Ebden": [
913 | "Matthew Ebden",
914 | "M.Ebden"
915 | ],
916 | "Paul-Henri Mathieu": [
917 | "Paul-Henri Mathieu",
918 | "P-H.Mathieu"
919 | ],
920 | "Lleyton Hewitt": [
921 | "Lleyton Hewitt",
922 | "L.Hewitt"
923 | ],
924 | "Anna Tatishvili": [
925 | "Anna Tatishvili",
926 | "A Tatishvili",
927 | "A.Tatishvili"
928 | ],
929 | "Ernests Gulbis": [
930 | "Ernests Gulbis",
931 | "E.Gulbis"
932 | ],
933 | "Albert Ramos": [
934 | "Albert Ramos",
935 | "A.Ramos"
936 | ],
937 | "Benjamin Baker": [
938 | "Benjamin Becker",
939 | "B.Becker"
940 | ],
941 | "Melinda Czink": [
942 | "Melinda Czink"
943 | ],
944 | "Madison Keys": [
945 | "Madison Keys",
946 | "M Keys",
947 | "M.Keys"
948 | ],
949 | "Dudi Sela": [
950 | "Dudi Sela"
951 | ],
952 | "Francesca Schiavone": [
953 | "Francesca Schiavone",
954 | "F Schiavone",
955 | "F.Schiavone"
956 | ],
957 | "Jamie Hampton": [
958 | "Jamie Hampton",
959 | "J Hampton",
960 | "J.Hampton"
961 | ],
962 | "Juan Martin Del Potro": [
963 | "Juan Martin Del Potro",
964 | "J.Del Potro"
965 | ],
966 | "Irina Falconi": [
967 | "Irina Falconi"
968 | ],
969 | "Ivan Dodig": [
970 | "Ivan Dodig",
971 | "I.Dodig"
972 | ],
973 | "Camila Giorgi": [
974 | "Camila Giorgi",
975 | "C Giorgi",
976 | "C.Giorgi"
977 | ],
978 | "Lucas Pouille": [
979 | "Lucas Pouille"
980 | ],
981 | "Janko Tipsarevic": [
982 | "Janko Tipsarevic",
983 | "J.Tipsarevic"
984 | ],
985 | "Lesia Tsurenko": [
986 | "Lesia Tsurenko",
987 | "L.Tsurenko"
988 | ],
989 | "Albert Montanes": [
990 | "Albert Montanes",
991 | "A.Montanes"
992 | ],
993 | "G.Elias": [
994 | "G.Elias"
995 | ],
996 | "Jesse Huta Galung": [
997 | "Jesse Huta Galung"
998 | ],
999 | "Jo-Wilfried Tsonga": [
1000 | "Jo-Wilfried Tsonga",
1001 | "J-W.Tsonga"
1002 | ],
1003 | "Denis Istomin": [
1004 | "Denis Istomin",
1005 | "D.Istomin"
1006 | ],
1007 | "Laura Robson": [
1008 | "L Robson",
1009 | "Laura Robson",
1010 | "L.Robson"
1011 | ],
1012 | "Mallory Burdette": [
1013 | "Mallory Burdette",
1014 | "M Burdette",
1015 | "M.Burdette"
1016 | ],
1017 | "Daniel Gimeno-Traver": [
1018 | "Daniel Gimeno-Traver",
1019 | "D.Gimeno-Traver"
1020 | ],
1021 | "Andrey Golubev": [
1022 | "Andrey Golubev"
1023 | ],
1024 | "Michal Przysiezny": [
1025 | "Michal Przysiezny",
1026 | "M.Przysiezny"
1027 | ],
1028 | "Polona Hercog": [
1029 | "Polona Hercog"
1030 | ],
1031 | "Pablo Andujar": [
1032 | "Pablo Andujar",
1033 | "P.Andujar"
1034 | ],
1035 | "Marinko Matosevic": [
1036 | "Marinko Matosevic",
1037 | "M.Matosevic"
1038 | ],
1039 | "Kurumi Nara": [
1040 | "Kurumi Nara",
1041 | "K Nara"
1042 | ],
1043 | "Santiago Giraldo": [
1044 | "Santiago Giraldo",
1045 | "S.Giraldo"
1046 | ],
1047 | "James Duckworth": [
1048 | "James Duckworth",
1049 | "J.Duckworth"
1050 | ],
1051 | "Simone Bolelli": [
1052 | "Simone Bolelli",
1053 | "S.Bolelli"
1054 | ],
1055 | "Lukas Lacko": [
1056 | "Lukas Lacko",
1057 | "L.Lacko"
1058 | ],
1059 | "Elina Svitolina": [
1060 | "Elina Svitolina",
1061 | "E Svitolina",
1062 | "E.Svitolina"
1063 | ],
1064 | "Christina McHale": [
1065 | "Christina McHale",
1066 | "C McHale",
1067 | "C.McHale"
1068 | ],
1069 | "Shuai Zhang": [
1070 | "Shuai Zhang"
1071 | ],
1072 | "Jana Cepelova": [
1073 | "Jana Cepelova",
1074 | "J.Cepelova"
1075 | ],
1076 | "Andreas Haider-Maurer": [
1077 | "Andreas Haider-Maurer",
1078 | "A.Haider-Maurer"
1079 | ],
1080 | "Lourdes Dominguez Lino": [
1081 | "Lourdes Dominguez Lino",
1082 | "L Dominguez Lino",
1083 | "L.Dominguez Lino"
1084 | ],
1085 | "Garbine Muguruza": [
1086 | "Garbine Muguruza",
1087 | "G.Muguruza"
1088 | ],
1089 | "Tamira Paszek": [
1090 | "Tamira Paszek",
1091 | "T.Paszek"
1092 | ],
1093 | "Sachia Vickery": [
1094 | "Sachia Vickery"
1095 | ],
1096 | "Donald Young": [
1097 | "Donald Young"
1098 | ],
1099 | "Tommy Haas": [
1100 | "T.Haas",
1101 | "Tommy Haas"
1102 | ],
1103 | "Rafael Nadal": [
1104 | "Rafael Nadal",
1105 | "R.Nadal"
1106 | ],
1107 | "Urszula Radwanska": [
1108 | "U.Radwanska",
1109 | "U Radwanska",
1110 | "Urszula Radwanska"
1111 | ],
1112 | "Tommy Robredo": [
1113 | "Tommy Robredo",
1114 | "T.Robredo"
1115 | ],
1116 | "Vesna Dolonc": [
1117 | "Vesna Dolonc",
1118 | "V.Dolonc"
1119 | ],
1120 | "Su-Wei Hsieh": [
1121 | "Su-Wei Hsieh",
1122 | "S-W.Hsieh"
1123 | ],
1124 | "Thiemo De Bakker": [
1125 | "Thiemo De Bakker",
1126 | "T.De Bakker",
1127 | "Thiemo de Bakker"
1128 | ],
1129 | "Igor Sijsling": [
1130 | "Igor Sijsling",
1131 | "I.Sijsling"
1132 | ],
1133 | "Kevin Anderson": [
1134 | "Kevin Anderson",
1135 | "K.Anderson"
1136 | ],
1137 | "Viktor Troicki": [
1138 | "Viktor Troicki",
1139 | "V.Troicki"
1140 | ],
1141 | "D.Brown": [
1142 | "D.Brown"
1143 | ],
1144 | "Jimmy Wang": [
1145 | "Jimmy Wang",
1146 | "Y-T.Wang"
1147 | ],
1148 | "Serena Williams": [
1149 | "S Williams",
1150 | "S.Williams",
1151 | "Serena Williams"
1152 | ],
1153 | "Alex Kuznetsov": [
1154 | "Alex Kuznetsov"
1155 | ],
1156 | "Yulia Putintseva": [
1157 | "Yulia Putintseva",
1158 | "Y.Putintseva"
1159 | ],
1160 | "Ying-Ying Duan": [
1161 | "Y Duan",
1162 | "Ying-Ying Duan"
1163 | ],
1164 | "Jelena Jankovic": [
1165 | "Jelena Jankovic",
1166 | "J Jankovic",
1167 | "J.Jankovic"
1168 | ],
1169 | "Bradley Klahn": [
1170 | "Bradley Klahn"
1171 | ],
1172 | "Albano Olivetti": [
1173 | "Albano Olivetti"
1174 | ],
1175 | "Philipp Petzschner": [
1176 | "Philipp Petzschner",
1177 | "P.Petzschner"
1178 | ],
1179 | "A Dulgheru": [
1180 | "A Dulgheru"
1181 | ],
1182 | "K.Edmund": [
1183 | "K.Edmund"
1184 | ],
1185 | "Blaz Rola": [
1186 | "Blaz Rola"
1187 | ],
1188 | "Andreas Beck": [
1189 | "Annika Beck",
1190 | "Andreas Beck",
1191 | "A.Beck"
1192 | ],
1193 | "Irina-Camelia Begu": [
1194 | "Irina-Camelia Begu",
1195 | "I.Begu"
1196 | ],
1197 | "Julian Reister": [
1198 | "Julian Reister",
1199 | "J.Reister"
1200 | ],
1201 | "Radek Stepanek": [
1202 | "Radek Stepanek",
1203 | "R.Stepanek"
1204 | ],
1205 | "Yuliya Beygelzimer": [
1206 | "Yuliya Beygelzimer"
1207 | ],
1208 | "Pablo Cuevas": [
1209 | "Pablo Cuevas"
1210 | ],
1211 | "Teymuraz Gabashvili": [
1212 | "Teymuraz Gabashvili",
1213 | "T.Gabashvili"
1214 | ],
1215 | "Andrea Petkovic": [
1216 | "Andrea Petkovic",
1217 | "A Petkovic",
1218 | "A.Petkovic"
1219 | ],
1220 | "Lara Arruabarrena": [
1221 | "Lara Arruabarrena",
1222 | "L Arruabarrena",
1223 | "L.Arruabarrena"
1224 | ],
1225 | "Gael Monfils": [
1226 | "Gael Monfils"
1227 | ],
1228 | "Alison Riske": [
1229 | "Alison Riske",
1230 | "A Riske",
1231 | "A.Riske"
1232 | ],
1233 | "I.Andreev": [
1234 | "I.Andreev"
1235 | ],
1236 | "Mandy Minella": [
1237 | "Mandy Minella",
1238 | "M Minella",
1239 | "M.Minella"
1240 | ],
1241 | "David Guez": [
1242 | "David Guez"
1243 | ],
1244 | "Stephanie Foretz Gacon": [
1245 | "Stephanie Foretz Gacon"
1246 | ],
1247 | "Wayne Odesnik": [
1248 | "Wayne Odesnik",
1249 | "W.Odesnik"
1250 | ],
1251 | "Anabel Medina Garrigues": [
1252 | "Anabel Medina Garrigues",
1253 | "A. Medina Garrigues",
1254 | "A Medina Garrigues",
1255 | "A.Medina Garrigues"
1256 | ],
1257 | "Aleksandra Wozniacki": [
1258 | "A Wozniak"
1259 | ],
1260 | "Guillermo Garcia-Lopez": [
1261 | "Guillermo Garcia-Lopez",
1262 | "G.Garcia-Lopez"
1263 | ],
1264 | "J.Ward": [
1265 | "J.Ward"
1266 | ],
1267 | "Sorana Cirstea": [
1268 | "Sorana Cirstea",
1269 | "S Cirstea",
1270 | "S.Cirstea"
1271 | ],
1272 | "Marin Cilic": [
1273 | "Marin Cilic",
1274 | "M.Cilic"
1275 | ],
1276 | "Blaz Kavcic": [
1277 | "Blaz Kavcic",
1278 | "B.Kavcic"
1279 | ],
1280 | "Guillaume Rufin": [
1281 | "Guillaume Rufin",
1282 | "G.Rufin"
1283 | ],
1284 | "Filippo Volandri": [
1285 | "Filippo Volandri"
1286 | ],
1287 | "Irena Pavlovic": [
1288 | "Irena Pavlovic"
1289 | ],
1290 | "Thomaz Bellucci": [
1291 | "Thomaz Bellucci"
1292 | ],
1293 | "Adrian Ungur": [
1294 | "Adrian Ungur",
1295 | "A.Ungur"
1296 | ],
1297 | "Alexandr Dolgopolov": [
1298 | "Alexandr Dolgopolov",
1299 | "A.Dolgopolov"
1300 | ],
1301 | "Fabio Fognini": [
1302 | "Fabio Fognini",
1303 | "F.Fognini"
1304 | ],
1305 | "Lukasz Kubot": [
1306 | "Lukasz Kubot",
1307 | "L.Kubot"
1308 | ],
1309 | "Marina Erakovic": [
1310 | "Marina Erakovic",
1311 | "M.Erakovic"
1312 | ],
1313 | "Bojana Jovanovski": [
1314 | "Bojana Jovanovski",
1315 | "B Jovanovski",
1316 | "B.Jovanovski"
1317 | ],
1318 | "Horacio Zeballos": [
1319 | "Horacio Zeballos",
1320 | "H.Zeballos"
1321 | ],
1322 | "Adrian Mannarino": [
1323 | "Adrian Mannarino",
1324 | "A.Mannarino"
1325 | ],
1326 | "Jordan Thompson": [
1327 | "Jordan Thompson"
1328 | ],
1329 | "Yanina Wickmayer": [
1330 | "Yanina Wickmayer",
1331 | "Y.Wickmayer"
1332 | ],
1333 | "Bernard Tomic": [
1334 | "Bernard Tomic",
1335 | "B.Tomic"
1336 | ],
1337 | "Vania King": [
1338 | "Vania King",
1339 | "V.King"
1340 | ],
1341 | "Vasek Pospisil": [
1342 | "Vasek Pospisil",
1343 | "V.Pospisil"
1344 | ],
1345 | "Venus Williams": [
1346 | "V Williams",
1347 | "Venus Williams"
1348 | ],
1349 | "Martin Klizan": [
1350 | "Martin Klizan",
1351 | "M.Klizan"
1352 | ],
1353 | "Angelique Kerber": [
1354 | "Angelique Kerber",
1355 | "A Kerber",
1356 | "A.Kerber"
1357 | ],
1358 | "M.Larcher De Brito": [
1359 | "M.Larcher De Brito"
1360 | ],
1361 | "Leonardo Mayer": [
1362 | "L.Mayer",
1363 | "Leonardo Mayer"
1364 | ],
1365 | "Illya Marchenko": [
1366 | "Illya Marchenko"
1367 | ],
1368 | "Jarkko Nieminen": [
1369 | "Jarkko Nieminen",
1370 | "J.Nieminen"
1371 | ],
1372 | "E.Cabeza Candela": [
1373 | "E.Cabeza Candela"
1374 | ],
1375 | "Maria-Teresa Torro-Flor": [
1376 | "Maria-Teresa Torro-Flor",
1377 | "M.Torro-Flor"
1378 | ]
1379 | }
1380 |
--------------------------------------------------------------------------------
/tennis/requirements.txt:
--------------------------------------------------------------------------------
1 | mergic==0.0.4.1
2 | python-Levenshtein==0.12.0
3 |
--------------------------------------------------------------------------------
/tennis/tennis_mergic.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import re
4 | import Levenshtein
5 | import mergic
6 |
7 |
8 | def first_initial_last(name):
9 | initial = re.match("^[A-Z]", name).group()
10 | last = re.search("(?<=[ .])[A-Z].+$", name).group()
11 | return "{}. {}".format(initial, last)
12 |
13 |
14 | def distance(x, y):
15 | x = first_initial_last(x)
16 | y = first_initial_last(y)
17 | return Levenshtein.distance(x, y)
18 |
19 |
20 | mergic.Blender(distance).script()
21 |
--------------------------------------------------------------------------------