A system to infer place data is disclosed that receives location data collected on a user's mobile electronic device, recognizes when, where and for how long the user makes stops, generates possible places visited, and predicts the likelihood of a user to visit those places.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-28. (canceled) 29. A system for using location data to infer a place name of a user, comprising: at least one database configured to store place data and a sequence of location readings, wherein the place data includes place information and corresponding geolocation data, wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time; at least one server coupled to the at least one database, wherein the server is configured to: identify a list of location clusters, wherein each cluster includes a number of location reads that are chronologically continuous and geographically close to each other; compute a centroid or sub-centroids of each of the list of location clusters; query the place database to identify candidate places that are within a predetermined radius of the centroid of each location cluster; extract a feature from each of the candidate places, wherein the feature includes a place category, popularity, or hours of operation; and calculate a probability that the user is located at each of the candidate places, wherein the probability is based on features of the candidate places. 30. The system of claim 29, wherein the at least one database is further configured to store reference data, wherein the reference data links the user or the user's mobile device to a candidate place at an instance of time, and wherein the reference data includes at least one of: a user check-in at a certain place, a place category, a popularity of a place, or hours of operation. 31. The system of claim 29, wherein the at least one database is further configured to store sensor data, and wherein the sensor data includes at least two of: acceleration, magnetic orientation, proximity, light intensity, battery status, gyroscope, or temperature. 32. The system of claim 29, wherein the location readings also include altitude, bearing, and speed of a mobile device associated with the user. 33. The system of claim 29, wherein the at least one server is further configured to rank order a predetermined number of the candidate places for the user to validate as a confirmed location. 34. The system of claim 30, wherein the reference data is derived from at least one of: place check-in, internet search activity, social networking site activity, geo-tagged image, email, phone call, calendar appointment or network data. 34. The system of claim 30, wherein calculating the probability that the user is located at each of the candidate places is based on hours of operation for the candidate places or a distance between the reference data and each of the candidate places. 35. A method for using location data to obtain a name of a place associated with the location data, comprising: receiving a sequence of location readings from a mobile device associated with a user, wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time; filtering the location readings to produce filtered location data; identifying a location from the filtered location data; querying a place database to identify multiple candidate places that are within a predetermined radius of a centroid computed from the identified location; and calculating a probability that the user is located at each of the multiple candidate places. 36. The method of claim 35, wherein the filtering classifies a sliding window of N contiguous location readings over the sequence of location readings as moving or not moving, wherein N is an integer number of location readings. 37. The method of claim 36, further comprising segmenting the sequence of location readings into two or more location clusters, and identifying a centroid of each of the two or more location clusters. 38. The method of claim 35, further comprising rank ordering a predetermined number of the multiple candidate places for the user to validate as a confirmed location. 39. The method of 35, further comprising extracting a feature from each of the multiple candidate places, wherein the feature includes a place category, popularity, or hours of operation. 40. The method of claim 39, wherein the extracted feature of a candidate place is used in calculating the probability that the user is located at the candidate place. 41. A system for inferring a location of a user using location readings and sensor data from a mobile device wirelessly coupled to a network, the system comprising: a memory; a processor configured to execute instructions stored in the memory to: receive multiple location readings, wherein each location reading includes latitude and longitude coordinate data, and wherein each location reading has an associated time and an estimated accuracy; filter the location readings to remove location readings that are noisy or have estimated accuracy lower than a threshold; determine that the mobile device is stationary based on the filtered location readings; identify a time and location of a stop by temporally clustering the filtered location readings into location clusters; and, predict for each location cluster possible places associated with the identified stop at the identified time. 42. The system of claim 41, further configured to: merge neighboring location clusters when a centroid of each of the neighboring location clusters is below a centroid threshold. 43. The system of claim 41, further configured to: query a place database to retrieve the possible places that are within a radius from a centroid of each of the location clusters; wherein the place database stores addresses, locations and attributes corresponding to places. 44. The system of claim 43, further configured to: extract an attribute of each of the possible places, wherein the attribute includes at least one of a place category or hours of operation. 45. The system of claim 44, further configured to: calculate a probability that the user is located at each of the possible places, wherein the probability factors in a distance between reference data and each of the possible places and the extracted attribute. 45. The system of claim 45, wherein the reference data links the user to a proposed place at an instance of time, and wherein the reference data is derived from at least one of: place check-in, internet search activity, social networking site activity, geo-tagged image, email, phone call, calendar appointment or network activity. 46. The system of claim 41, further configured to compute a centroid of each of the location clusters as a weighted combination of location readings associated with the location cluster, wherein a weight of a location reading depends on the source of the location reading. 47. The system of claim 41, further configured to extract at least two of cluster features from each location cluster, place features from each of the possible places or user features associated with the user; determine a composite feature vector by combing the extracted features; determine a ranking score for each of the possible places using the composite feature vector; and calculate a probability that the user is located at each of the possible places based at least in part on the ranking score. 49. A non-transitory computer-readable storage medium storing instructions for using location data to obtain a name of a place associated with the location data, comprising: instructions for receiving a sequence of location readings from a mobile device associated with a user, wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time; instructions for filtering the location readings to produce filtered location data; instructions for identifying a location from the filtered location data; instructions for querying a place database to identify multiple candidate places that are within a predetermined radius of a centroid computed from the identified location; and instructions for calculating a probability that the user is located at each of the multiple candidate places. 50. The medium of claim 49, wherein the instructions for filtering further comprises: instructions for classifying a sliding window of N contiguous location readings over the sequence of location readings as moving or not moving, wherein N is an integer number of location readings; and instructions for segmenting the sequence of location readings into two or more location clusters, and identifying a centroid of each of the two or more location clusters. 51. The medium of 49, further comprising instructions for extracting a feature from each of the multiple candidate places, wherein the feature includes a place category, popularity, or hours of operation, wherein the extracted feature of a candidate place is used in calculating the probability that the user is located at the candidate place.