Frage

Die meisten Web-Anwendungen haben ein Location-Feld, in dem verwendet einen Ort ihrer Wahl eingeben kann.

Wie würden Sie klassifizieren die Benutzer in den verschiedenen Ländern, auf den Standort eingetragen.

Für zB, habe ich die Stack-Überlauf-Dump von users.xml und extrahierte Namen der Benutzer, den Ruf und -ort:

['Jeff Atwood', '12853', 'El Cerrito, CA']
['Jarrod Dixon', '1114', 'Morganton, NC']
['Sneakers OToole', '200', 'Unknown']
['Greg Hurlman', '5327', 'Halfway between the boardwalk and Six Flags, NJ']
['Power-coder', '812', 'Burlington, Ontario, Canada']
['Chris Jester-Young', '16509', 'Durham, NC']
['Teifion', '7024', 'Wales']
['Grant', '3333', 'Georgia']
['TimM', '133', 'Alabama']
['Leon Bambrick', '2450', 'Australia']
['Coincoin', '3801', 'Montreal']
['Tom Grochowicz', '125', 'NJ']
['Rex M', '12822', 'US']
['Dillie-O', '7109', 'Prescott, AZ']
['Pete', '653', 'Reynoldsburg, OH']
['Nick Berardi', '9762', 'Phoenixville, PA']
['Kandis', '39', '']
['Shawn', '4248', 'philadelphia']
['Yaakov Ellis', '3651', 'Israel']
['redwards', '21', 'US']
['Dave Ward', '4831', 'Atlanta']
['Liron Yahdav', '527', 'San Rafael, CA']
['Geoff Dalgas', '648', 'Corvallis, OR']
['Kevin Dente', '1619', 'Oakland, CA']
['Tom', '3316', '']
['denny', '573', 'Winchester, VA']
['Karl Seguin', '4195', 'Ottawa']
['Bob', '4652', 'US']
['saniul', '2352', 'London, UK']
['saint_groceon', '1087', 'Houston, TX']
['Tim Boland', '192', 'Cincinnati Ohio']
['Darren Kopp', '5807', 'Woods Cross, UT']

mit dem folgenden Python-Skript:

from xml.etree import ElementTree

root = ElementTree.parse('SO Export/so-export-2009-05/users.xml').getroot()
items = ['DisplayName','Reputation','Location']

def loop1():
    for count,i in enumerate(root):
    det = [i.get(x) for x in items]
    print det
    if count>30: break

loop1()

Was ist der einfachste Weg, um Menschen in verschiedenen Ländern zu klassifizieren? Gibt es bereit Lookup-Tabellen zur Verfügung, die mir eine Ausgabe zu sagen X Standort zur Verfügung stellt, gehört Land Y?

Die Lookup-Tabelle muss nicht völlig korrekt. Vernünftigerweise präzise Antworten durch Abfrage der Standortzeichenfolge auf Google erhalten werden, oder noch besser, Wolfram Alpha.

War es hilfreich?

Lösung

Sie beste Wette ist eine Geocoding API wie geopy ( einige Beispiele).

Die Google Geocoding API , zum Beispiel, wird zurückkehren das Land, in dem CountryNameCode-Feld der Antwort.

Mit diesem einem Standortfeld der Anzahl der falschen Spiele wird wahrscheinlich relativ hoch sein, aber vielleicht ist es gut genug.

Wenn Sie Serverprotokolle hätten, könnten Sie versuchen, auch die Nutzer-IP-Adresse mit einer IP-Geocoder (weitere Informationen und Verweise auf Wikipedia

Andere Tipps

Force-Benutzer an Land, weil Sie mit Zweideutigkeiten zu tun haben werden. Dies wäre der richtige Weg sein.

Wenn das nicht möglich ist, zumindest Sie machen am beste erraten, in Verbindung mit ihrer IP-Adresse.

Zum Beispiel: [ 'Grants', '3333', 'Georgia']

Ist das Georgia, USA? Oder ist dies die Republik Georgien?

Wenn die IP-Adresse irgendwo in Zentralasien und Osteuropa schon sagt, dann sind die Chancen es die Republik Georgien ist. Wenn es Nordamerika ist, stehen die Chancen recht gut, sie bedeuten Georgia, USA.

Hinweis

, die Zuordnungen für die IP-Adresse zu Land nicht zu 100% korrekt sind, und die Datenbank muss regelmäßig aktualisiert werden. Meiner Meinung nach, viel zu viel Mühe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top