Methods, systems, electronic devices and software products for searching points of interest
By recalling and filtering points of interest based on search areas and search terms in electronic maps, the problem of missing high-quality points of interest in existing technologies is solved, and a more comprehensive search for points of interest is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA (CHINA) CO LTD
- Filing Date
- 2022-07-14
- Publication Date
- 2026-06-30
AI Technical Summary
In existing technologies, electronic maps tend to concentrate the points of interest (POIs) around the user, resulting in high-quality POIs that are far away from the user being missed.
Interest point recall is performed based on search region and search terms to ensure that the number of candidate interest points in each search sub-region exceeds the first threshold or the number of candidate interest points in the search region exceeds the second threshold, and target interest points are selected from the candidate interest points.
This ensures that candidate points of interest are recalled in all directions within the search area, avoiding the omission of high-quality points of interest and improving the comprehensiveness and accuracy of point of interest search.
Smart Images

Figure CN115168542B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of big data technology, specifically to a method, system, electronic device, and program product for searching points of interest. Background Technology
[0002] Electronic maps provide navigation and route planning services, and have become an indispensable application in people's daily lives. Points of Interest (POIs) are a type of basic data in electronic maps, including attribute information such as name, address, and coordinates. These can be buildings, shops, mailboxes, bus stops, etc. Users can find these POIs on electronic maps to assist with their travel. POI search is a crucial service in electronic map services. For example, a user can enter the search term "hotel" to initiate a search for hotel-related POIs. Typically, after receiving the search term, the server will recall POIs within a predetermined distance from the user's current location. Because the recalled POIs are concentrated around the user, some high-quality POIs that are farther away may be missed. Summary of the Invention
[0003] To address the problems in the related technologies, embodiments of this disclosure provide a point-of-interest search method, system, electronic device, and program product.
[0004] Firstly, this disclosure provides a method for searching points of interest.
[0005] Specifically, the point of interest search method includes:
[0006] Receive a user's search request, which carries a search area and search terms;
[0007] Obtain multiple search sub-regions corresponding to the search region;
[0008] Recall candidate points of interest that match the search term within the search area, wherein the number of candidate points of interest in each search sub-area exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold;
[0009] The system filters target points of interest from the candidate points of interest and sends the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
[0010] Secondly, this disclosure provides a point-of-interest (POI) search device.
[0011] Specifically, the point of interest search device includes:
[0012] The receiving module is configured to receive a user's search request, which carries a search area and search terms;
[0013] The acquisition module is configured to acquire multiple search sub-regions corresponding to the search region;
[0014] The recall module is configured to recall candidate points of interest that match the search term within the search area, wherein the number of candidate points of interest in each search sub-area exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold.
[0015] The filtering module is configured to filter target points of interest from the candidate points of interest and send the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
[0016] Thirdly, this disclosure provides a point-of-interest search system.
[0017] Specifically, the point-of-interest search system includes:
[0018] The client is configured to send a user's search request to the server in response to receiving a search instruction carrying search terms, the search request carrying a search area and the search terms, the search area including the visible area of the map area currently displayed by the client;
[0019] The server is configured to receive the user's search request, obtain multiple search sub-regions corresponding to the search area, the multiple search sub-regions being distributed in multiple locations within the search area; recall candidate points of interest matching the search term within the search area, wherein the number of candidate points of interest in each search sub-region exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold; filter target points of interest from the candidate points of interest, and send the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
[0020] Fourthly, embodiments of this disclosure provide an electronic device including a memory and a processor, wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method as described in any of the first aspects.
[0021] Fifthly, this disclosure provides a computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, implement the method as described in any of the first aspects.
[0022] In a sixth aspect, this disclosure provides a computer program product including computer instructions that, when executed by a processor, implement the steps of the method as described in any of the first aspects.
[0023] According to the technical solution provided in this disclosure, point of interest (POI) retrieval can be performed based on search area and search terms, rather than based on user location. Furthermore, when retrieving candidate POIs, it is ensured that the number of candidate POIs distributed across multiple locations within the search area exceeds a first threshold, or the number of candidate POIs within the search area exceeds a second threshold. This largely guarantees that candidate POIs are retrieved from all locations within the search area, ensuring the comprehensiveness of the retrieved candidate POIs and preventing the omission of high-quality POIs. Then, high-quality target POIs within the search area can be selected from these candidate POIs, thus enabling the user to find high-quality POIs within the search area and avoiding the omission of high-quality POIs.
[0024] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0025] Other features, objects, and advantages of this disclosure will become more apparent from the following detailed description of non-limiting embodiments, taken in conjunction with the accompanying drawings. In the drawings:
[0026] Figure 1 A flowchart illustrating a point-of-interest search method according to an embodiment of the present disclosure is shown;
[0027] Figure 2A A schematic diagram of a point-of-interest search system according to an embodiment of the present disclosure is shown;
[0028] Figure 2B A schematic diagram showing the user interface of a client according to an embodiment of the present disclosure is provided.
[0029] Figure 3 A structural block diagram of a point-of-interest search device according to an embodiment of the present disclosure is shown;
[0030] Figure 4 A structural block diagram of an electronic device according to an embodiment of the present disclosure is shown;
[0031] Figure 5 A schematic diagram of the structure of a computer system suitable for implementing the method according to embodiments of the present disclosure is shown. Detailed Implementation
[0032] In the following, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to enable those skilled in the art to readily implement them. Furthermore, for clarity, portions unrelated to the description of exemplary embodiments have been omitted from the drawings.
[0033] In this disclosure, it should be understood that terms such as “comprising” or “having” are intended to indicate the presence of features, figures, steps, behaviors, components, parts or combinations thereof disclosed in this specification, and are not intended to exclude the possibility of the presence or addition of one or more other features, figures, steps, behaviors, components, parts or combinations thereof.
[0034] It should also be noted that, unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other. This disclosure will now be described in detail with reference to the accompanying drawings and embodiments.
[0035] In this disclosure, the acquisition of user information or user data is done with the user's authorization or confirmation, or by the user's active choice.
[0036] As mentioned above, electronic maps provide navigation and route planning services, and have increasingly become an indispensable application software in people's daily lives. Points of Interest (POIs) are a type of basic data in electronic maps, including attribute information such as name, address, and coordinates. These can be buildings, shops, mailboxes, bus stops, etc. Users can find these POIs through electronic maps, thus providing assistance for their travel. POI search is a crucial service in electronic map services. For example, a user can enter the search term "hotel" in the search box to initiate a search for hotel-related POIs. Typically, after receiving the corresponding search term, the server will recall POIs within a predetermined distance from the user's current location. Because the recalled POIs are concentrated around the user, some high-quality POIs that are farther away may be missed.
[0037] To address the aforementioned issues, this disclosure provides a point-of-interest (POI) search method. This method retrieves POIs based on search regions and search terms, rather than user location. Furthermore, when retrieving candidate POIs, it ensures that the number of candidate POIs distributed across multiple locations within the search region exceeds a first threshold, or that the number of candidate POIs within the entire search region exceeds a second threshold. This significantly ensures that candidate POIs are retrieved from all locations within the search region, guaranteeing comprehensiveness and preventing the omission of high-quality POIs. Then, high-quality target POIs within the search region can be selected from these candidate POIs, thus enabling users to find high-quality POIs within the search region and avoiding the omission of valuable POIs.
[0038] Figure 1 A flowchart illustrating a point-of-interest (POI) search method according to embodiments of this disclosure is shown. Figure 1 As shown, the point of interest search method includes the following steps S101-S104:
[0039] In step S101, a user's search request is received, the search request carrying a search area and search terms;
[0040] In step S102, multiple search sub-regions corresponding to the search region are obtained;
[0041] In step S103, candidate points of interest that match the search term within the search area are recalled, wherein the number of candidate points of interest in each search sub-region exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold.
[0042] In step S104, target points of interest are selected from the candidate points of interest, and the information of the target points of interest is sent to the user's client so that the client can display the target points of interest to the user.
[0043] In one possible implementation, the point of interest search method is applicable to a server capable of performing point of interest searches, including servers, server clusters, the cloud, etc.
[0044] In one possible implementation, the user's search request can be sent from the user's client to the server. The search area and search terms in the search request can be user-inputted. For example, the client can display a manual input option for the search area on the search page. After selecting this option, the user can use their finger or stylus to draw a circle on the electronic map displayed on the client to define a search area. The client can determine the search area by detecting the user's input swipe marks. Alternatively, the user can select an area as the search area from the area options, such as a business district or a district within a city. The search area can also be a visible area on the currently displayed map that is not obscured by function icons (such as the search term input box icon). The user can enter search terms in the client's search input box or use voice input; thus, the client can obtain the search area and search terms. When the user inputs a search command, such as clicking the search button or typing "search," the client sends a search request carrying the search area and search terms to the server.
[0045] In one possible implementation, when the server receives the search request, it will recall candidate points of interest that meet the conditions requested in the search request, that is, recall candidate points of interest located in the search area that match the search term. For example, if the search area is Haidian District and the search term is "hotel", then the server can recall hotel-related points of interest located in Haidian District.
[0046] In one possible implementation, the multiple search sub-regions corresponding to the search area can include sub-regions distributed at various locations within the search area, or sub-regions overlapping with the edges of the search area. For example, the search area can be directly divided to obtain multiple search sub-regions.
[0047] In one possible implementation, in order to ensure that the recalled candidate points of interest are more comprehensive and can be distributed in multiple locations of the search area, and to avoid missing high-quality points of interest, when recalling candidate points of interest, it is necessary to ensure that each search sub-region has more than a first threshold number of candidate points of interest recalled, or that the number of candidate points of interest in the search area is large enough to exceed a second threshold.
[0048] In one possible implementation, the server may recall many candidate points of interest that meet the conditions requested by the search request. In this case, high-quality target points of interest can be selected from these candidate points of interest, and the information of the target points of interest can be sent to the user's client. After receiving the information of the target points of interest, the client can display the information of the target points of interest on the electronic map.
[0049] In this embodiment, after receiving a user's search request, the server can retrieve points of interest based on the search area and search terms, rather than based on the user's location. Furthermore, when retrieving candidate points of interest, it ensures that the number of candidate points of interest in each sub-region of the search area, distributed across multiple locations within the search area, exceeds a first threshold, or that the number of candidate points of interest in the entire search area exceeds a second threshold. This largely guarantees that candidate points of interest are retrieved in all directions within the search area, ensuring the comprehensiveness of the retrieved candidate points of interest and preventing the omission of high-quality points of interest. Then, high-quality target points of interest within the search area can be selected from these candidate points of interest, thus enabling the user to find high-quality points of interest within the search area and avoiding the omission of high-quality points of interest.
[0050] In one possible implementation, the above-described point-of-interest search method includes the following steps in obtaining multiple search sub-regions corresponding to the search region:
[0051] Obtain the outer region of the search region, and divide the outer region into a preset number of search sub-regions;
[0052] And / or, obtain hotspot areas within the search area and determine the hotspot areas as search sub-regions.
[0053] In this embodiment, the search sub-regions corresponding to the search region can include search sub-regions divided by the outer region of the search region. For example, the outer region of the search region can be evenly divided into multiple search sub-regions. Preferably, the outer region can be an outer rectangular region, since a rectangular region only needs to be identified using latitude and longitude coordinates at the top left and bottom right or at the bottom left and top right, which is convenient for recording and subsequent calculations. For example, the outer rectangular region can be evenly divided into 9 search sub-regions, that is, the outer rectangular region can be divided into three equal parts horizontally and vertically to form 9 search sub-regions (blocks), each search sub-region being a rectangle, which can be represented by latitude and longitude coordinates at the top left and bottom right. That is, when the outer rectangular region is (lon1, lat1; lon2, lat2), the 9 search sub-regions are as follows:
[0054] Search subregion 1: (lon1, lat1; lon1+1 / 3(lon2-lon1), lat1+1 / 3(lat2-lat1));
[0055] Search subregion 2: (lon1+1 / 3(lon2-lon1), lat1; lon1+2 / 3(lon2-lon1), at1+1 / 3(lat2-lat1));
[0056] Search subregion 3: (lon1+2 / 3(lon2-lon1), lat1; lon2, lat1+1 / 3(lat2-lat1));
[0057] Search subregion 4: (lon1, lat1+1 / 3(lon2-lon1); lon1+1 / 3(lon2-lon1), lat1+2 / 3(lat2-lat1));
[0058] Search subregion 5: (lon1+1 / 3(lon2-lon1), lat1+1 / 3(lon2-lon1); lon1+2 / 3(lon2-lon1), lat1+2 / 3(lat2-lat1));
[0059] Search subregion 6: (lon1+2 / 3(lon2-lon1), lat1+1 / 3(lon2-lon1); lon2, lat1+2 / 3(lat2-lat1));
[0060] Search subregion 7: (lon1, lat1+2 / 3(lon2-lon1); lon1+1 / 3(lon2-lon1), lat2);
[0061] Search subregion 8: (lon1+1 / 3(lon2-lon1), lat1+2 / 3(lon2-lon1); lon1+2 / 3(lon2-lon1), lat2);
[0062] Search subregion 9: (lon1+2 / 3(lon2-lon1), lat1+2 / 3(lon2-lon1); lon2, lat2).
[0063] In this embodiment, the search sub-region corresponding to the search area may include hotspot areas within the search area; or, the search sub-region corresponding to the search area may also include search sub-regions formed by the outer area and hotspot areas within the search area.
[0064] In one possible implementation, step S103 of the above-described point of interest search method, namely, recalling candidate points of interest within the search area that match the search term, can be implemented by the following steps:
[0065] Recall alternative points of interest within the outer region of the search area that match the search term;
[0066] Determine whether the backup point of interest is located within the search area;
[0067] If the backup point of interest is located within the search area, then the backup point of interest is determined as the candidate point of interest.
[0068] In this implementation, since the shape of the search area can vary, including regular rectangles, circles, and irregular shapes, to facilitate searching and avoid missing points of interest within the search area, the outer region of the search area can be used as a query condition. Because the outer region is larger than the search area, the backup points of interest retrieved using the outer region as a query condition may not be within the search area. Therefore, it is necessary to first determine whether the retrieved backup points of interest are located within the search area. If they are located within the search area, the backup points of interest are determined to be candidate points of interest; if they are not located within the search area, the backup points of interest are determined not to be candidate points of interest. This process is repeated until the number of retrieved candidate points of interest satisfies the condition that the number of candidate points of interest in each search sub-region exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold.
[0069] In this embodiment, determining whether a recalled backup point of interest is located within the search area can include, but is not limited to, the ray casting method. That is, an arbitrary ray is drawn from the backup point of interest, and the number of intersections between the ray and the boundary of the search area is determined. If the number of intersections is even, the backup point of interest is determined to be outside the search area; if the number of intersections is odd, the backup point of interest is determined to be within the search area.
[0070] In one possible implementation, obtaining the hotspot area within the search area includes:
[0071] Obtain popularity data within the search area, the popularity data including the location of points of interest and / or the number of searches within the search area;
[0072] Based on the popularity data, the points of interest within the search area are clustered to obtain the popularity region.
[0073] In this implementation, the distribution popularity of points of interest within the search area can be determined from their locations, and their search popularity can be determined from the number of searches conducted. Based on this popularity data, the points of interest within the search area are clustered to obtain multiple cluster sets. Each cluster set contains multiple points of interest. The popularity region refers to the area covering all points of interest in the cluster set. Each cluster set corresponds to one popularity region. For ease of subsequent calculation, the popularity region can be a rectangular area. Preferably, the first N cluster sets can be selected to obtain N popularity regions corresponding to the first N cluster sets, where N is an integer greater than or equal to 1.
[0074] In this implementation, methods for obtaining heat data include, but are not limited to, querying spatial indexes such as KDTree (K-Dimensional Tree). Clustering methods include, but are not limited to, DBSCAN (Density-Based Spatial Clustering of Applications with Noise).
[0075] In one possible implementation, to ensure that the selected points of interest take into account both personalization and the diversity of distribution within a geographical area, step S104 of the above-described point of interest search method, i.e., selecting target points of interest from the candidate points of interest, may include the following steps:
[0076] The candidate interest points are sorted to obtain the sorting result of the candidate interest points;
[0077] Divide the candidate points of interest within each search sub-region into a queue;
[0078] The candidate points of interest in the queue are sorted according to the sorting result of the candidate points of interest to obtain the sorting result of the candidate points of interest in the queue.
[0079] Based on the ranking results of the candidate interest points and the ranking results within the queue, the diversity ranking results of the candidate interest points are obtained;
[0080] Target interest points are selected from the candidate interest points based on the diversity ranking results.
[0081] In this implementation, in order to select high-quality target interest points, the candidate interest points can be sorted according to a preset sorting rule to obtain the sorting results of these candidate interest points, such as sorting by the popularity of the candidate interest points or by the degree of user liking for the candidate interest points, etc.
[0082] In this implementation, candidate points of interest within each search sub-region can be divided into a queue. The recalled points of interest and search sub-regions can be traversed. If a candidate point of interest is within the search sub-region, it is added to the queue of that search sub-region. Assuming there are a total of 9 search sub-regions divided by the outer region and 5 search sub-regions formed by the popularity region, there are a total of 9 + 5 = 14 search sub-regions, and the recalled candidate points of interest can be divided into 14 queues.
[0083] In this implementation, candidate points of interest in each queue can be sorted according to the ranking result. Assuming that the ranking result of the candidate points of interest is the ranking score of the selected points of interest, the candidate points of interest in the queue can be sorted in descending order according to the ranking score of each candidate point of interest. In this way, the ranking result in the queue can be obtained as the ranking of each candidate point of interest in the queue. Then, for each candidate point of interest, the diversity ranking result can be calculated according to the following formula: ranking score * a^M, where M is the ranking in the queue, a^M refers to a to the power of M, and a is an empirical value that can be adjusted according to the actual situation. For example, the value of a can be 0.9.
[0084] In this implementation, after obtaining the diversity ranking results of the candidate interest points, the server can select a certain number of candidate interest points that rank highly in the diversity ranking results as target interest points and send the information of these target interest points to the client for the client to display to the user.
[0085] In this implementation, by dividing the search sub-regions, the points of interest that meet the search request are scattered during recall and sorting, thereby achieving diversity in the spatial distribution of target points of interest. This can prevent target points of interest from being too concentrated in space and avoid them overlapping with each other.
[0086] It's important to note that when the search sub-region includes both sub-regions defined by the outer region and sub-regions formed by heat regions within the search area, there will be regional overlap between the heat regions and the sub-regions defined by the outer region. Some recalled candidate points of interest may belong to both search sub-region 1 and another search sub-region 2. That is, these candidate points of interest can be in both queue 1 and queue 2 simultaneously. The ranking of the same candidate point of interest differs in different queues, resulting in different diversity ranking results. In other words, a candidate point of interest may correspond to two or more different diversity ranking results. In this case, these candidate points of interest corresponding to two or more diversity ranking results can be sorted as different candidate points of interest. After selecting some of the top-ranked candidate points of interest as target points of interest, if there are duplicate target points of interest among these target points of interest, deduplication can be performed, deleting the target points of interest ranked lower. Alternatively, after calculating the diversity ranking results, the top-ranked diversity ranking result can be selected from the two or more diversity ranking results corresponding to the candidate interest point as the diversity ranking result of the candidate interest point, and then the top-ranked candidate interest point in the diversity ranking results can be selected as the target interest point.
[0087] In one possible implementation, the step of sorting the candidate interest points to obtain the sorting result of the candidate interest points in the above interest point search method can be implemented by the following steps:
[0088] Based on the user's interest characteristics and the relevant characteristics of the candidate interest points, the candidate interest points are sorted to obtain the sorting result of the candidate interest points. The relevant characteristics of the candidate interest points include at least one of the following features: the correlation between the candidate interest point and the search term, the search scenario features in which the search request is located, and the spatial location features of the candidate interest points.
[0089] In this implementation, in order to search for target interest points that different users prefer, the server needs to select the most suitable target interest point from these candidate interest points that meet the search conditions. At this time, the server can comprehensively score the recalled candidate interest points based on the user's interest characteristics and the relevant characteristics of the candidate interest points to obtain the ranking result of the candidate interest points. The ranking result is the comprehensive score.
[0090] In this implementation, the aforementioned user interest features refer to relevant features that can identify user interests and preferences. For example, these may include user attribute features and user historical behavior features. User attribute features may include user identity information and user residence information, etc. User historical behavior features may include user's historical collection behavior features (information on collected points of interest, collection scenarios such as collection time and location), user's historical click behavior features (information on user's historically clicked points of interest, click scenarios such as click time and location), user's historical arrival behavior features (information on user's historically visited points of interest, click scenarios such as dwell time), and so on. The recalled candidate points of interest can be matched with these user interest features; the higher the matching degree, the more the user prefers that candidate point of interest.
[0091] In this embodiment, the relevance feature between the candidate point of interest and the search term can be the matching degree between the candidate point of interest and the search term; the search scenario feature where the search request is located can be scenario features such as search time, search location (such as home, company, or other locations); the spatial location feature of the candidate point of interest can be the distance between the user's current location and the candidate point of interest, the spatial distribution feature of the candidate point of interest within the search area, etc.
[0092] This implementation method can sort the recalled candidate points of interest according to the user's preference, and then the server can filter the user's preferred target points of interest according to the sorting results. In this way, the user can quickly decide on the points of interest they need from these preferred target points of interest, which helps the user make quick decisions and improves the user's search experience.
[0093] In one possible implementation, the above-described point of interest search method, in which the candidate points of interest are ranked based on the user's user interest features and the relevant features of the candidate points of interest to obtain the ranking result of the candidate points of interest, may include the following steps:
[0094] The user interest features and the relevant features of the candidate interest points are input into a preset ranking model, the ranking model is executed, and the ranking result of the candidate interest points output by the ranking model is obtained.
[0095] In this embodiment, the ranking model can be a pre-trained model. The input of the ranking model is the user's interest features and the relevant features of the candidate interest points. The output of the ranking model is the CTR (Click-Through-Rate) and / or CVR (Conversion Rate) of the candidate interest points. If the output of the ranking model is the CTR or CVR, then the CTR or CVR is the ranking result of the interest point. If the output of the ranking model is both the CTR and CVR, then the ranking result of the candidate interest point can be obtained by weighted averaging the CTR and CVR.
[0096] In this implementation, the ranking model can be trained using sample data, which includes user interest characteristics of sample users, relevant characteristics of sample interest points, and click-through rate and / or conversion rate of the sample interest points.
[0097] In one possible implementation, step S102 of the point of interest search method, namely, recalling points of interest within the search area that match the search term, may include the following steps:
[0098] Based on a pre-stored inverted index, using the search term and the search region as query conditions, candidate points of interest matching the search term within the search region are recalled until the number of recalled candidate points of interest meets a preset recall cutoff condition. The index entries in the inverted index include index terms and index regions, and the inverted list in the inverted index includes a list of points of interest.
[0099] In this implementation, to avoid recalling too many candidate points of interest, points of interest can be recalled sequentially based on an inverted index until the number of recalled candidate points of interest reaches the recall cutoff condition.
[0100] In this embodiment, the inverted index is a specific storage format, mainly composed of two parts: index terms and an inverted list. In this embodiment, the inverted list is a list of points of interest (POIs). Index terms include index words and index regions. The inverted index stores the list of POIs corresponding to each index term. For example, index words can be POI category terms such as "hotel" or "food," or brand terms, etc. The index region can be a grid region, identified by a grid region ID. Through the inverted index, a list of POIs containing the index term "hotel" can be quickly retrieved based on a specific index term, such as "hotel." For example, Table 1 below shows a matrix of inverted index entries.
[0101]
[0102] Table 1
[0103] As shown in Table 1, the list of points of interest containing index 1 can be quickly obtained as points of interest 2, 3, 4, 5, and 7; the list of points of interest containing index 2 is points of interest 1, 3, 4, 6, 7, and 8; and the list of points of interest containing index 3 is points of interest 2, 4, 5, 6, and 8. If the user's query conditions include both index 1 and index 2, then the list of points of interest containing both index 1 and index 2 can be retrieved: points of interest 3, 4, and 7.
[0104] In this implementation, the query conditions include the search term and the search area. First, matching index terms can be obtained, namely the index area of the search area and index terms that are the same as or similar to the search term. Then, points of interest containing these index terms can be retrieved, thus recalling points of interest located within the search area that match the search term. For example, if the user inputs the search term "food" and the search area is area A, which includes index area 1 and index area 2, the server can use the search term "food" and the search area - area A as query conditions to obtain the index term "food" that is the same as the search term "food," as well as the index terms "index area 1" and "index area 2" located within the search area. In this way, the server can recall candidate points of interest containing the index terms "food" and "index area 1," as well as other candidate points of interest containing the index terms "food" and "index area 1," based on this inverted index.
[0105] In this embodiment, when recalling candidate points of interest, a predetermined number of candidate points of interest can be recalled each time until the number of recalled points of interest meets a preset recall cutoff condition. The predetermined number can be one or more, such as 10 or 100.
[0106] In this implementation, the list of points of interest within the inverted index is stored sequentially. The list of points of interest can be sorted according to a preset sorting rule, which can be based on the importance of the points of interest, such as sorting them from highest to lowest based on their popularity, which could be historical click count, historical visit count, etc. Thus, when recalling candidate points of interest, more important points of interest can be recalled first.
[0107] In one possible implementation, the recall cutoff condition includes the total number of points of interest recalled within the search area exceeding a third threshold and the number of points of interest recalled within each search sub-region exceeding a first threshold; or, the total number of points of interest recalled within the search area exceeds a second threshold, wherein the second threshold is greater than the third threshold.
[0108] In this implementation, to ensure a more even distribution of recalled candidate points of interest within the search area and to guarantee the diversity of their geographic distribution, multiple sub-regions corresponding to the search area can be obtained. Recall is stopped only when the total number of recalled points of interest within the search area exceeds a third threshold and the number of recalled points of interest within each sub-region exceeds a first threshold. This ensures that candidate points of interest are recalled within all sub-regions, improving the spatial diversity of candidate points of interest. Of course, to avoid recalling too many candidate points of interest, a second threshold can be set, which is greater than the third threshold. When the total number of recalled candidate points of interest within the search area exceeds the second threshold, recall stops regardless of whether the number of recalled candidate points of interest within each sub-region exceeds the first threshold.
[0109] In this implementation, the first threshold, the second threshold, and the third threshold can be empirical values and are adjustable. For example, the first threshold can be set to 10, the second threshold to 10000, and the third threshold to 7000.
[0110] In this implementation, assuming that P candidate points of interest are recalled each time, the total number of candidate points of interest recalled in the search area is increased by P for each recall. At the same time, the search sub-regions are traversed, and for each search sub-region, it is determined whether the recalled candidate points of interest are in the search sub-region. If they are, the number of candidate points of interest recalled in the search sub-region is increased by 1; otherwise, the number of candidate points of interest recalled in the search sub-region remains unchanged. In this way, the total number of candidate points of interest recalled in the search area and the number of candidate points of interest recalled in each search sub-region can be obtained.
[0111] Figure 2A A schematic diagram of a point-of-interest search system according to an embodiment of the present disclosure is shown. Figure 2A As shown, Figure 2A As shown, the system includes a server 201 and a client 202. The server 201 may include a server, a server cluster, the cloud, etc. The client 202 may include electronic devices such as desktop computers, tablets, laptops, smartphones, digital assistants, smart wearable devices, etc., or logical entities written in programming languages that run on the aforementioned electronic devices. For example, the client 202 may be an APP running on a mobile phone.
[0112] Client 202 is configured to send a user's search request to server 201 in response to receiving a search instruction carrying search terms. The search request carries a search area and the search terms. The search area includes the visible area of the map area currently displayed by the client.
[0113] Server 201 is configured to receive the user's search request, obtain multiple search sub-regions corresponding to the search area, the multiple search sub-regions being distributed in multiple locations within the search area; recall candidate points of interest matching the search term within the search area, wherein the number of candidate points of interest in each search sub-region exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold; filter target points of interest from the candidate points of interest, and send the information of the target points of interest to the user's client 202, so that the client 202 can display the target points of interest to the user.
[0114] In this embodiment, Figure 2B A schematic diagram showing the user interface of a client according to an embodiment of this disclosure is shown, such as... Figure 2B As shown, the client's user interface 21 displays an electronic map, which includes a search box icon 211 and other icons 212. When a user wants to search for a specific type of point of interest within the map area currently displayed on the user interface 21, they can enter a search term, such as "hot pot," in the input box of the search box icon 211. The client 202 then receives the user's search command containing this search term. In response to this search command, the client 202 retrieves the visible area 213 within the currently displayed map area. This visible area 213 refers to the area in the map area that is not obscured by the search box icon 211 above the user interface 21 and the other icons 212 below. Since areas covered by the search box icon 211 and other icons 212 would be obscured even if points of interest were displayed, making them inconvenient for the user to view, the client 202 retrieves this visible area 213 as the search area. Then, the client 202 can send a search request containing the search area and search term to the server 201.
[0115] In this embodiment, such as Figure 2A As shown, after receiving the search request, the server 201 can recall candidate points of interest that match the search term in the search area from the point of interest database 203, filter out the target point of interest, and send the information of the target point of interest to the client 202. The client 202 can then display the information of the target point of interest on the visible area 213. The user can select the point of interest they need based on the information of the target point of interest displayed by the client 202.
[0116] This disclosure also provides a location-based service provision method, which uses the points of interest search method described above to provide location-based services to the service recipient. The location-based services include one or more of the following: point of interest search, map rendering, and route planning.
[0117] In this embodiment of the disclosure, during location-based service processes, the point of interest (POI) search can be used to provide better location services to the served object, such as POI search services, route planning services, and / or map rendering services. The served object can be a mobile phone, iPad, computer, smartwatch, vehicle, robot, etc. When performing POI search, route planning, or road rendering on a map for the served object, the POI search can be performed based on the above method, and the information of the target POI can be rendered on the electronic map. After the user selects the desired POI, a route to the POI can be planned for the user, the route can be rendered on the electronic map, and navigation can be provided. For specific details, please refer to the description of the POI search method above, which will not be repeated here.
[0118] Figure 3 A structural block diagram of a point-of-interest (POI) search device according to an embodiment of the present disclosure is shown. This device can be implemented as part or all of an electronic device through software, hardware, or a combination of both. Figure 3 As shown, the point of interest search device includes:
[0119] The receiving module 301 is configured to receive a user's search request, the search request carrying a search area and search terms;
[0120] The acquisition module 302 is configured to acquire multiple search sub-regions corresponding to the search region;
[0121] The recall module 303 is configured to recall candidate points of interest that match the search term within the search area, wherein the number of candidate points of interest in each search sub-area exceeds a first threshold or the number of candidate points of interest in the search area exceeds a second threshold.
[0122] The filtering module 304 is configured to filter target points of interest from the candidate points of interest and send the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
[0123] In one possible implementation, the acquisition module is configured as follows:
[0124] Obtain the outer region of the search region, and divide the outer region into a preset number of search sub-regions;
[0125] And / or, obtain hotspot areas within the search area and determine the hotspot areas as search sub-regions.
[0126] In one possible implementation, the recall module is configured as follows:
[0127] Recall alternative points of interest within the outer region of the search area that match the search term;
[0128] Determine whether the backup point of interest is located within the search area;
[0129] If the backup point of interest is located within the search area, then the backup point of interest is determined as the candidate point of interest.
[0130] In one possible implementation, the portion of the acquisition module that acquires the hotspot region within the search area is configured as follows:
[0131] Obtain popularity data within the search area, the popularity data including the location of points of interest and / or the number of searches within the search area;
[0132] Based on the popularity data, the points of interest within the search area are clustered to obtain the popularity region.
[0133] In one possible implementation, the filtering module is configured as follows:
[0134] The candidate interest points are sorted to obtain the sorting result of the candidate interest points;
[0135] Divide the candidate points of interest within each search sub-region into a queue;
[0136] The candidate points of interest in the queue are sorted according to the sorting result of the candidate points of interest to obtain the sorting result of the candidate points of interest in the queue.
[0137] Based on the ranking results of the candidate interest points and the ranking results within the queue, the diversity ranking results of the candidate interest points are obtained;
[0138] Target interest points are selected from the candidate interest points based on the diversity ranking results.
[0139] In one possible implementation, the part of the filtering module that sorts the candidate interest points to obtain the sorted result of the candidate interest points is configured as follows:
[0140] Based on the user's interest characteristics and the relevant characteristics of the candidate interest points, the candidate interest points are sorted to obtain the sorting result of the candidate interest points. The relevant characteristics of the candidate interest points include at least one of the following features: the correlation between the candidate interest point and the search term, the search scenario features in which the search request is located, and the spatial location features of the candidate interest points.
[0141] In one possible implementation, the recall module is configured as follows:
[0142] Based on a pre-stored inverted index, using the search term and the search region as query conditions, candidate points of interest matching the search term within the search region are recalled until the number of recalled candidate points of interest meets a preset recall cutoff condition. The index entries in the inverted index include index terms and index regions, and the inverted list in the inverted index includes a list of points of interest.
[0143] In one possible implementation, the recall cutoff condition includes the total number of points of interest recalled within the search area exceeding a third threshold and the number of points of interest recalled within each search sub-region exceeding a first threshold; or, the total number of points of interest recalled within the search area exceeds a second threshold, wherein the second threshold is greater than the third threshold.
[0144] The technical terms and features mentioned in this device embodiment are the same as or similar to those mentioned in the above method embodiment. For explanations and descriptions of the technical terms and features involved in this device, please refer to the explanations of the above method embodiment. They will not be repeated here.
[0145] This disclosure also discloses an electronic device. Figure 4 A structural block diagram of an electronic device according to an embodiment of the present disclosure is shown.
[0146] like Figure 4 As shown, the electronic device 400 includes a memory 401 and a processor 402, wherein the memory 401 is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor 402 to implement the method according to an embodiment of the present disclosure.
[0147] Figure 5 A schematic diagram of the structure of a computer system suitable for implementing the method according to embodiments of the present disclosure is shown.
[0148] like Figure 5 As shown, the computer system 500 includes a processing unit 501, which can execute various processes described in the above embodiments according to a program stored in a read-only memory (ROM) 502 or a program loaded from a storage section 508 into a random access memory (RAM) 503. The RAM 503 also stores various programs and data required for the operation of the computer system 500. The processing unit 501, ROM 502, and RAM 503 are interconnected via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0149] The following components are connected to I / O interface 505: an input section 506 including a keyboard, mouse, etc.; an output section 507 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 508 including a hard disk, etc.; and a communication section 509 including a network interface card such as a LAN card, modem, etc. The communication section 509 performs communication processing via a network such as the Internet. A drive 510 is also connected to I / O interface 505 as needed. A removable medium 511, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on drive 510 as needed so that computer programs read from it can be installed into storage section 508 as needed. The processing unit 501 can be implemented as a CPU, GPU, TPU, FPGA, NPU, etc.
[0150] In particular, according to embodiments of this disclosure, the methods described above can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising computer instructions that, when executed by a processor, implement the steps of the methods described above. In such embodiments, the computer program product can be downloaded and installed from a network via communication section 509, and / or installed from removable media 511.
[0151] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0152] The units or modules described in the embodiments of this disclosure can be implemented in software or programmable hardware. The described units or modules can also be located in a processor, and the names of these units or modules do not necessarily constitute a limitation on the unit or module itself.
[0153] In another aspect, this disclosure also provides a computer-readable storage medium, which may be a computer-readable storage medium included in the electronic device or computer system described above; or it may be a standalone computer-readable storage medium not assembled into a device. The computer-readable storage medium stores one or more programs, which are used by one or more processors to perform the methods described in this disclosure.
[0154] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the invention involved in this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the inventive concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
Claims
1. A method for searching points of interest, comprising: Receive a user's search request, which carries a search area and search terms; Obtain multiple sub-regions corresponding to the search area, and the multiple sub-regions are distributed in multiple locations of the search area; Recall candidate points of interest that match the search term within the search area, wherein the total number of candidate points of interest within the search area exceeds a third threshold and the number of candidate points of interest in each search sub-area exceeds a first threshold, or the total number of candidate points of interest within the search area exceeds a second threshold, wherein the second threshold is greater than the third threshold; The system filters target points of interest from the candidate points of interest and sends the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
2. The method according to claim 1, wherein, The step of obtaining multiple search sub-regions corresponding to the search region includes: Obtain the outer region of the search region, and divide the outer region into a preset number of search sub-regions; And / or, obtain hotspot areas within the search area and determine the hotspot areas as search sub-regions.
3. The method according to claim 1, wherein, The recall of candidate points of interest matching the search term within the search area includes: Recall alternative points of interest within the outer region of the search area that match the search term; Determine whether the backup point of interest is located within the search area; If the backup point of interest is located within the search area, then the backup point of interest is determined as the candidate point of interest.
4. The method according to claim 2, wherein, The step of obtaining the hotspot areas within the search area includes: Obtain popularity data within the search area, the popularity data including the location of points of interest and / or the number of searches within the search area; Based on the popularity data, the points of interest within the search area are clustered to obtain the popularity region.
5. The method according to claim 1, wherein, The step of filtering target interest points from the candidate interest points includes: The candidate interest points are sorted to obtain the sorting result of the candidate interest points; Divide the candidate points of interest within each search sub-region into a queue; The candidate points of interest in the queue are sorted according to the sorting result of the candidate points of interest to obtain the sorting result of the candidate points of interest in the queue. Based on the ranking results of the candidate interest points and the ranking results within the queue, the diversity ranking results of the candidate interest points are obtained; Target interest points are selected from the candidate interest points based on the diversity ranking results.
6. The method according to claim 5, wherein, The step of sorting the candidate interest points to obtain the sorting result of the candidate interest points includes: Based on the user's interest characteristics and the relevant characteristics of the candidate interest points, the candidate interest points are sorted to obtain the sorting result of the candidate interest points. The relevant characteristics of the candidate interest points include at least one of the following features: the correlation between the candidate interest point and the search term, the search scenario features in which the search request is located, and the spatial location features of the candidate interest points.
7. The method according to claim 1, wherein, The recall of candidate points of interest matching the search term within the search area includes: Based on a pre-stored inverted index, using the search term and the search region as query conditions, candidate points of interest matching the search term within the search region are recalled until the number of recalled candidate points of interest meets a preset recall cutoff condition. The index entries in the inverted index include index terms and index regions, and the inverted list in the inverted index includes a list of points of interest.
8. The method according to claim 7, wherein, The recall cutoff conditions include the total number of points of interest recalled within the search area exceeding a third threshold and the number of points of interest recalled within each search sub-region exceeding a first threshold; or, the total number of points of interest recalled within the search area exceeding a second threshold, wherein the second threshold is greater than the third threshold.
9. An interest point search system, comprising: The client is configured to send a user's search request to the server in response to receiving a search instruction carrying search terms, the search request carrying a search area and the search terms, the search area including the visible area of the map area currently displayed by the client; The server is configured to receive the user's search request, obtain multiple search sub-regions corresponding to the search area, the multiple search sub-regions being distributed in multiple locations within the search area; recall candidate points of interest matching the search term within the search area, wherein the total number of candidate points of interest within the search area exceeds a third threshold and the number of candidate points of interest in each search sub-region exceeds a first threshold, or the total number of candidate points of interest within the search area exceeds a second threshold, the second threshold being greater than the third threshold; filter target points of interest from the candidate points of interest, and send the information of the target points of interest to the user's client so that the client can display the target points of interest to the user.
10. An electronic device comprising a memory and a processor; wherein, The memory is used to store one or more computer instructions, which are executed by the processor to implement the steps of the method according to any one of claims 1 to 8.
11. A computer program product comprising computer instructions that, when executed by a processor, implement the steps of the method according to any one of claims 1 to 8.