WO2022262621A1 - 信息点搜索的方法和装置 - Google Patents

信息点搜索的方法和装置 Download PDF

Info

Publication number
WO2022262621A1
WO2022262621A1 PCT/CN2022/097656 CN2022097656W WO2022262621A1 WO 2022262621 A1 WO2022262621 A1 WO 2022262621A1 CN 2022097656 W CN2022097656 W CN 2022097656W WO 2022262621 A1 WO2022262621 A1 WO 2022262621A1
Authority
WO
WIPO (PCT)
Prior art keywords
poi
search
text
address
user
Prior art date
Application number
PCT/CN2022/097656
Other languages
English (en)
French (fr)
Inventor
刘文杰
冯乐天
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP22824101.4A priority Critical patent/EP4354323A1/en
Publication of WO2022262621A1 publication Critical patent/WO2022262621A1/zh
Priority to US18/541,155 priority patent/US20240111797A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Definitions

  • the present application relates to the technical field of search, and more specifically, to a method and device for searching information points.
  • Point of information (POI) search is the basic needs of users in the mobile Internet era, and has been integrated into every aspect of life, such as daily travel, tourism, catering, etc.
  • the process of POI search is roughly as follows: the client sends the search text input by the user to the server, the server analyzes the search text, uses the user portrait of the server to search for a search result that matches the search text, and The search results are sorted and fed back to the client. Since the user portrait on the server side cannot reflect the personal information of the user well, in some scenarios, the search results fed back by the server side may not meet the individual needs of the user, and the user experience is not high.
  • the present application provides a POI search method and device, which can output search results that conform to the user's real search intention based on the search text input by the user, meet the personalized needs of the user, and improve user experience.
  • a method for searching information points which is characterized in that it includes:
  • the first user data includes an address set
  • the second search text includes the first search text and first address information
  • the first address information represents at least one address
  • the information point POI corresponding to each address matches the first search text, and each address is related to an address in the address set;
  • the first search text is content related to POIs.
  • the first search text may be at least one of the name of the POI, the type of the POI, or the address of the POI.
  • the first user data is local data stored in the client, and the first user data records a large amount of personal information of the user.
  • the first user data may include application data including local personal information such as short messages and memos.
  • the POI corresponding to each address indicates the POI with the address, or the address of the POI is the address corresponding to the POI.
  • the POI corresponding to each address matches the first search text. It can be understood that the relevant content of the POI corresponding to each address is related to the first search text. Exemplarily, the relevant content of the POI is related to the first search text, which can be expressed by the same or partially identical content of the relevant content of the POI and the content of the first search text, and the relevant content of the POI can be the type of POI, the name of the POI, or the POI at least one of the addresses in .
  • Each address represented by the first address information is related to addresses in the address set, and there are two interpretations as follows.
  • each address represented by the first address information is an address in the address set.
  • each address represented by the first address information is obtained based on the address corresponding to each address in the address set, where the address corresponding to each address in the address set is the address in the address set corresponding to the address Each of these addresses has the same range of addresses.
  • the client performs address expansion on the first search text according to the first search text input by the user and the first user data stored in the client, and obtains the information including the first search text and
  • the second search text of the first address information obtained based on the first user data is sent to the server through a search request, and the server feeds back a plurality of POI search results based on the second search text. Since the second search text is the search text including the first address information obtained based on the first user data of the client, the first address information is closely related to the user, and the address represented by the first address information has a high probability of representing what the user expects to search for.
  • the POI search results fed back by the server based on the second search text will most likely include the search results of POIs that the user is interested in or expect, which conforms to the user's real search intention, meets the user's individual needs, and improves Improve user experience while improving search performance.
  • the first user data is stored in the user's personal client, the problem of leakage of user privacy is avoided as much as possible.
  • the determining the second search text according to the first search text and the first user data of the client includes:
  • each candidate POI text in the set of candidate POI texts matches the first search text and includes address information, so The address represented by the address information in each candidate POI text is an address in the address set;
  • the second search text determine the second search text, each address represented by the first address information and the address represented by the address information in the candidate POI text set relevant.
  • the candidate POI text matches the first search text, it means that the candidate POI text includes part or all of the same content as the first search text.
  • the information point search method provided by the embodiment of the present application, based on the candidate POI text set screened in the first user data, expands the address of the first search text to obtain the second search text, and can obtain a relatively effective address to obtain a relatively effective The second search text, reducing the search cost on the server side.
  • this method has good applicability, and can also reduce the long processing delay caused by the client's additional multiple screenings.
  • the set of candidate POIs includes a plurality of candidate POI texts; and, determining the second search text according to the first search text and the set of candidate POI texts includes:
  • the effective time of the POI corresponding to each candidate POI text and/or the popularity of the POI corresponding to each candidate POI text select the final candidate POI text from the candidate POI text set;
  • each address represented by the first address information is the same as that represented by the address information in the final candidate POI text address related.
  • the information point search method provided in the embodiment of the present application performs a second screening on the candidate POI text set based on the screening in the first user data, which can further reduce the number of candidate POI texts, obtain more effective addresses, and better Reduce search text on the server side.
  • the valid time of the POI corresponding to the candidate POI text is used to filter the candidate POI text set for the second time.
  • invalid POIs can be effectively excluded, and the popularity of the POI corresponding to the candidate POI text is used for the second screening. Screening, taking into account the user's attention to POIs, can effectively sort POIs that users are not interested in.
  • the popularity of the POI corresponding to each candidate POI text includes: the frequency at which the POI appears in the client.
  • the method also includes:
  • the number of historical clicks, the number of historical clicks is obtained based on the SDK log data of the software development kit of the client, and the SDK log data records the user's click operation on the POI in each APP;
  • the multiple POI search results are sorted to determine the recommended ranking.
  • the client performs feature extraction on each POI search, and obtains at least the historical click times of the POI corresponding to each POI search result.
  • a feature value based on the at least one feature value, the multiple POI search results are sorted to obtain the final recommendation ranking. Since the user's historical clicks on POIs can reflect the user's attention to POIs, multiple POI search results can be sorted based on the historical clicks of POIs corresponding to each POI search result, and a more user-personalized ranking can be obtained .
  • the embodiment of this application can obtain all the user's history of POIs through the SDK log data that records the click operations of each APP on POIs.
  • the number of clicks realizes the data sharing between each APP, and can get a more personalized sorting to meet the individual needs of users; moreover, in this sorting, the POI search results expected by users are likely to be multiple POI searches
  • the first POI search result in the result can enable the user to quickly see the POI search result he expects, further improving the user experience.
  • the sorting the multiple POI search results according to at least one feature value corresponding to each POI search result, and determining the recommended ranking includes:
  • the first POI search result sorted by the recommendation is the first POI search result in the recommendation ranking.
  • the first POI search result sorted by the client is the first POI search result in the client ranking.
  • the client sorting since the client sorting takes into account the historical click times of the POI by the user, the first POI search result in the client sorting is most likely to be the POI search result expected by the user, so, Using the first POI search result sorted by the client as the first POI search result sorted by the recommendation can enable users to quickly see the POI search results they expect, so that the recommended sorting has user personalization characteristics and a good user experience; at the same time, Since the server-side sorting is related to user portraits, and the server-side sorting has the common characteristics of a class of users, the ranking of the other POI search results in the server-side sorting except for the first POI search result on the server side is used as the recommended ranking in the recommended ranking.
  • the sorting of the POI search results other than the first sorted POI search result can satisfy the user's common experience. Therefore, the recommended ranking obtained by integrating the client-side sorting and server-side sorting not only has the characteristics of user personalization, but also has the characteristics of user commonality. The comprehensive performance of recommendation ranking is better, and the user experience is better.
  • the at least one feature value corresponding to each POI search result further includes at least one of the following:
  • a feature value used to represent the correlation between the second search text and the POI corresponding to each POI search result or,
  • the client ranking is obtained according to a learned ranking LTR model; and, the method further includes:
  • the SDK log data is updated to update the LTR model according to a user's click operation on at least one POI search result among the plurality of POI search results.
  • the information point search method provided by the embodiment of the present application updates the SDK log data according to the user's click operation on the POI search result to update the LTR model, which can make the LTR model learn the user's click behavior in real time, which can be faster, better, and more accurate. Effectively learn the user's personal habits, further improve the user's personalized needs, and further improve the user experience.
  • the search request further includes the first search text; and,
  • the multiple POI search results also include N POI search results that match the first search text except for the M POI search results, where N is an integer greater than or equal to 1.
  • the information point search method provided by the embodiment of the present application is a kind of guessing behavior because the first address information in the second search text is a possible search intention of the user obtained by the client based on the address expansion of the first user data.
  • the reserved first search text reflects the original intention of the user
  • the second search text reflects the user's real search intention, so that the server can feed back all possible search results as much as possible to fully reflect all the user's intentions, and improve the comprehensiveness of the search results while realizing personalized search and accuracy, further improving the user experience.
  • the second search text is encrypted search text.
  • the second search text since the second search text includes the first address information related to user privacy, in order to avoid user privacy from being leaked during data transmission, the second search text can be encrypted to avoid User privacy is leaked during data transmission, improving security.
  • the second aspect provides an information point search device, characterized in that it includes: a processing unit and a transceiver unit,
  • the processing unit is configured to acquire the first search text input by the user
  • the processing unit is further configured to determine a second search text according to the first search text and first user data of the device, the first user data includes an address set, and the second search text includes the first search text and first address information, the first address information represents at least one address, the information point POI corresponding to each address matches the first search text, and each address is related to an address in the address set ;
  • the transceiving unit is configured to send a search request to the server, where the search request includes the second search text;
  • the transceiving unit is further configured to receive a plurality of POI search results sent by the server in response to the search request, the plurality of POI search results include M POI search results matching the second search text, M is an integer greater than or equal to 1.
  • processing unit is specifically configured to:
  • each candidate POI text in the set of candidate POI texts matches the first search text and includes address information, so The address represented by the address information in each candidate POI text is an address in the address set;
  • the second search text determine the second search text, each address represented by the first address information and the address represented by the address information in the candidate POI text set relevant.
  • the set of candidate POIs includes multiple candidate POI texts; and, the processing unit is specifically configured to:
  • the effective time of the POI corresponding to each candidate POI text and/or the popularity of the POI corresponding to each candidate POI text select the final candidate POI text from the candidate POI text set;
  • each address represented by the first address information is the same as that represented by the address information in the final candidate POI text address related.
  • processing unit is also used for:
  • the number of historical clicks, the number of historical clicks is obtained based on the SDK log data of the software development kit of the device, and the SDK log data records the user's click operation on the POI in each APP;
  • the multiple POI search results are sorted to determine the recommended ranking.
  • processing unit is specifically configured to:
  • the at least one feature value corresponding to each POI search result further includes at least one of the following:
  • a feature value used to represent the correlation between the second search text and the POI corresponding to each POI search result or,
  • the client ranking is obtained according to a learned ranking LTR model; and, the processing unit is further configured to:
  • the SDK log data is updated to update the LTR model according to a user's click operation on at least one POI search result among the plurality of POI search results.
  • the search request further includes the first search text; and,
  • the multiple POI search results also include N POI search results that match the first search text except for the M POI search results, where N is an integer greater than or equal to 1.
  • the second search text is encrypted search text.
  • an information point search device is provided, and the device is used to execute the method provided in the first aspect above.
  • the apparatus may include a module for executing any possible implementation manner of any aspect of the foregoing first aspect.
  • an information point search device including a processor.
  • the processor is coupled with the memory, and may be used to execute instructions in the memory, so as to implement the method in any possible implementation manner of the above first aspect.
  • the device further includes a memory.
  • the device further includes a communication interface, and the processor is coupled to the communication interface.
  • a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a device, the device implements the method in the above-mentioned first aspect or any possible implementation manner.
  • a computer program product including instructions, and when the instructions are executed by a computer, the device implements the method in any possible implementation manner of the above first aspect.
  • a chip including: an input interface, an output interface, a processor, and a memory, the input interface, the output interface, the processor, and the memory are connected through an internal connection path, and the processor uses For executing the code in the memory, when the code is executed, the processor is configured to execute the method in any possible implementation manner of the above first aspect.
  • FIG. 1 is a schematic diagram of a search system provided by an embodiment of the present application.
  • Fig. 2 is a schematic flow chart of a POI search method provided by an embodiment of the present application.
  • Fig. 3 is the GUI of the map provided by the embodiment of the present application.
  • Fig. 4 is a schematic diagram of converting the hotel reservation message in the short message into semi-structured POI text provided by the embodiment of the present application.
  • Fig. 5 is a schematic flow chart of determining the second search text according to the first search text and the first user data by the client according to the embodiment of the present application.
  • Fig. 6 is another schematic flow chart for the client to determine the second search text according to the first search text and the first user data according to the embodiment of the present application.
  • FIG. 10 is a schematic diagram of a POI search system provided by an embodiment of the present application.
  • FIG. 11 is a schematic diagram of the interaction between the OS module and the TEE module of the server provided by the embodiment of the present application.
  • Fig. 12 is a schematic block diagram of a POI search device provided by an embodiment of the present application.
  • Fig. 13 is a schematic structural diagram of a POI search device provided by an embodiment of the present application.
  • the client sends the search text entered by the user to the server, and the server analyzes the search text, uses the user portrait of the server to search for search results that match the search text, sorts the search results and gives feedback to the client.
  • user portrait is a tagged portrait abstracted based on user demographic information, social relationship, preference habits, consumption behavior and other information. For example, if someone’s user tag is foodie, the server will give priority to feedback on restaurants when searching and sorting. POIs. Since user portraits represent the characteristics of a class of people, they cannot well reflect the information related to the user. Therefore, in some scenarios, the search results fed back by the server do not meet the user's individual needs and affect the user experience. .
  • the user is resident in Shenzhen and needs to go on a business trip to Hangzhou. He has reserved an Atour Hotel on Jiangling Road, Binjiang, Hangzhou.
  • the search results that the user wants the server to feed back include Atour Hotel on Jiangling Road, Binjiang, Hangzhou. Therefore, the above search results do not meet the actual needs of the user, do not meet the personalized needs of the user, and the user experience is not high.
  • an embodiment of the present application provides a POI search method.
  • the client performs address extension on the first search text according to the first search text input by the user and the first user data stored in the client to obtain the expanded
  • the second search text includes address information obtained based on the first user data
  • the second search text is sent to the server through a search request, and the server feeds back a search result based on the second search text. Since the second search text is the search text including address information obtained based on the first user data of the client, the address information is closely related to the user, and the address indicated by the address information has a high probability of representing the address of the POI that the user expects to search for.
  • the search results obtained based on the second search text can output search results that meet the user's real search intention with a high probability, meet the actual needs of the user, meet the personalized needs of the user, and improve user experience.
  • the user data is stored on the client side, the problem that the user's privacy cannot be protected due to the user data being stored on the server side is avoided.
  • FIG. 1 is a schematic diagram of a search system provided by an embodiment of the present application.
  • the search system 100 includes a client 110 and a server 120.
  • the client 110 can be connected to the server 120 through a wired or wireless network.
  • the client 110 has functions of requesting search data, data storage, data processing, and the like.
  • the client 110 may be a mobile phone, a tablet computer, an e-reader, a personal computer, a vehicle device, a wearable device, a smart home device, and other devices that can directly interact with the user.
  • user data is stored in the client 110, and the user data includes two types of data.
  • the first type of data is recorded as first user data
  • the first user data is application data including local personal information such as short messages and memos.
  • the second type of data can be understood as the user's behavior data, which can be software development kit (software development kit, SDK) log data, which mainly records the usage of the user's operation of the application program (application, APP) on the client, including but not Limited to: what time did the user open an app, when did the app close, what time did the app crash, how often did the user click on the app, how often did the user click on some content of the app, etc.
  • SDK software development kit
  • the client 110 may perform address expansion on the first search text input by the user based on the first user data to obtain a second search text including address information, so that the server can feed back search results based on the second search text .
  • the client 110 may combine the SDK log data to reorder the search results fed back by the server, so as to obtain more accurate search results that meet the actual needs of the user.
  • the server 120 has a data search function, a data storage function, and a function of feeding back search results according to a search request sent from the client 110 .
  • the server 120 may be a device for searching data such as a computing device or a server.
  • the server 120 may be a server running in a remote server cluster in a data center in various places.
  • FIG. 2 is a schematic flowchart of a POI search method 200 provided by an embodiment of the present application.
  • the client acquires the first search text input by the user.
  • the first search text is content related to POI.
  • the first search text may be at least one of the name of the POI, the type of the POI, or the address of the POI. Take Atour Hotel on Jiangling Road, Binjiang, Hangzhou as an example.
  • the name of the POI is Atour
  • the type of POI is Hotel
  • the address of the POI is Jiangling Road, Binjiang, Hangzhou, or Hangzhou.
  • the user may input the first search text through the search box of the APP of the client.
  • FIG. 3 shows a graphical user interface (graphical user interface, GUI) of a map, the GUI includes a search box 301, and the user can manually or voice input the first search text (for example, Atour) in the search box 301.
  • GUI graphical user interface
  • the client determines a second search text according to the first search text and the first user data of the client, the first user data includes an address set, and the second search text includes the first search text and the first address Information, the first address information indicates at least one address, the information point POI corresponding to each address matches the first search text, and each address is related to the addresses in the address set.
  • the purpose is to perform address expansion on the first search text based on the first search text and the first user data, to obtain the second search text including the first address information and the first search text, and to figure out as accurately as possible The user's real search intent.
  • the first user data is the local data stored in the client.
  • the first user data records a large amount of personal information of the user.
  • multiple POI texts used to represent POIs can be obtained.
  • Each POI text corresponds to a POI.
  • Each POI text includes at least one of the following items of the corresponding POI: source (source) information indicating the source of the POI (for example, SMS, memo), indicating the name (name) information of the POI (for example, Atour, Shangri-La), indicating Type (type) information of the type of POI (for example, hotel, restaurant, scenic spot, shopping mall), address (address) information indicating the address of POI (for example, Hangzhou Binjiang Jiangling Road), time information indicating the valid time of POI, indicating Heat information of POI heat.
  • the address information of the POI can represent an address
  • the effective time of the POI can be represented by a start time (start_time) and an end time (end_time)
  • the popularity information of the POI can reflect the popularity of a user concerned about a certain POI.
  • the popularity of a POI can be represented by the frequency (frequency) at which the POI appears in the client.
  • the collection formed by the above-mentioned multiple POI texts is recorded as a POI text collection.
  • some POI texts may include address information, and other POI texts may not include address information. It is also possible that all POI texts include address information. Therefore, each POI text in at least some POI texts in the POI text collection A POI text includes an address information, and the address represented by all the address information in the at least part of the POI text can be formed as an address in the address set, wherein the at least part of the POI text includes part or all of the POI text in the POI text set .
  • the POI text set includes 5 POI texts, of which 3 POI texts include address information, and the remaining 2 POI texts do not include address information, so some POI texts in the POI text set include address information, and 3 POI texts include address information.
  • All address information is three pieces of address information, and the addresses indicated by the three pieces of address information are formed as addresses in the address set.
  • the POI text set includes 8 POI texts, and each POI text includes address information. Therefore, all POI texts in the POI text set include address information, and there are 8 address information in total. The 8 address information represents The addresses of are formed as addresses in this set of addresses.
  • the first user data may include application data including local personal information such as short messages and memos.
  • application data including local personal information such as short messages and memos.
  • the user's recent itinerary is recorded in the user's memo
  • the itinerary is data of the first user data.
  • the contents of the user's booking of hotels, transportation, etc. recorded in the short message are the data of the first user data.
  • the client may filter and extract the first user data to obtain multiple POI texts.
  • the client when filtering the first user data, may filter out some useless information not related to POIs by means of keywords or mobile phone number segments. For example, in a short message, bank notification information and advertisement information are filtered out.
  • the client may use natural language processing (natural language processing, NLP) technology to extract the filtered first user data to obtain multiple POI texts.
  • natural language processing natural language processing, NLP
  • Fig. 4 is a schematic diagram of converting the hotel reservation message in the short message into semi-structured POI text provided by the embodiment of the present application.
  • (a) in Figure 4 is the content of the text message
  • (b) in Figure 4 is a semi-structured POI text
  • the source information indicates that the text source is a text message
  • the name information indicates that the name of the POI is "Atour Hotel”
  • the type information Indicates that the type of POI is "hotel”
  • address information indicates that the detailed address of the POI is "Hangzhou Binjiang”
  • time information includes start_time and end_time
  • start_time indicates that the starting time of the valid time is "2021.4.3”
  • end_time indicates the end of the valid time
  • the time is "2021.4.5"
  • the frequency information indicates that the frequency of POI appearing locally on the client is "3", indicating the popularity of POI.
  • the POI corresponding to each address means the POI with the address, or the address of the POI is the address corresponding to the POI.
  • the POI corresponding to each address matches the first search text.
  • the relevant content of the POI corresponding to each address is related to the first search text.
  • the relevant content of the POI is related to the first search text, which can be expressed by the same or partially identical content of the relevant content of the POI and the content of the first search text, and the relevant content of the POI can be the type of POI, the name of the POI, or the POI at least one of the addresses in .
  • the first search text is "Atour”
  • the address represented by the first address information is the address of the Atour Hotel that matches "Atour”
  • "Atour" is the name of the POI
  • the content of the first search text Same name as POI, with relevance.
  • the addresses in the address set represent at least part of the addresses in the address set, and the at least part of the addresses are part or all of the addresses in the address set.
  • Each address represented by the first address information is related to addresses in the address set, and there are two interpretations as follows.
  • each address represented by the first address information is an address in the address set.
  • the address set includes 4 addresses, one of which is "Zhangba 5th Road, Gaoxin District, Xi'an City", and the first address information indicates 1 address, and the address represented by the first address information is also "Xi'an High-tech Zone”. District Zhang Bawu Road", the address represented by the first address information is an address in the address set.
  • each address represented by the first address information is obtained based on the address corresponding to each address in the address set, where the address corresponding to each address in the address set is the address in the address set corresponding to the address
  • Each of these addresses has the same range of addresses.
  • the address corresponding to each address in the address set is simply described as “the corresponding address in the address set”.
  • the area range of each address represented by the first address information is larger than the area range of the corresponding addresses in the address set.
  • the address set includes 4 addresses, 2 of which are "Zhangba 5th Road, High-tech Zone, Xi'an City” and “Chongye Road, Yanta District, Xi'an City”, and the first address information indicates 2 addresses, one of which is The address is "Xi'an High-tech Zone", the area of "Xi'an High-tech Zone” is larger than the area of "Xi'an High-tech Zone Zhangba 5th Road”, and the other address of the first address information is "Xi'an Yanta District” , the area scope of "Yanta District, Xi'an City” is larger than the area scope of "Chongye Road, Yanta District, Xi'an City”.
  • the client in the process of determining the second search text, can perform the first screening according to the first search text and the first user data to obtain candidate POI texts that match the first search text.
  • the number of candidate POI texts after one screening is not large, and the second search text can be determined according to the candidate POI texts obtained after the first screening. If the number of candidate POI texts after the first screening is large, in order to reduce the server-side For the search load, a second screening may be performed to obtain fewer candidate POI texts, so that the second search text is determined based on the candidate POI texts after the second screening.
  • Fig. 5 is a schematic flow chart of determining the second search text according to the first search text and the first user data by the client according to the embodiment of the present application.
  • the client screens out a candidate POI text set from the first user data according to the first search text, and each candidate POI text in the candidate POI text set matches the first search text and includes address information , the address indicated by the address information in each candidate POI text is the address in the address set.
  • the client can obtain the POI text set based on the first user data, and the client can perform text matching between the first search text and the POI text in the POI text set, and filter out the POI text set that includes address information and matches the POI text set. At least one candidate POI text matched by the first search text, the at least one candidate POI text forms a candidate POI text set.
  • each candidate POI text in the candidate POI text set matches the first search text
  • each candidate POI text includes an address information
  • the address information of each candidate POI text indicates an address
  • each filtered POI text candidate includes address information.
  • the candidate POI text described in the embodiment of the present application matches the first search text, which means that the candidate POI text includes part or all of the same content as the first search text.
  • the first search text is "Atour”
  • the selected candidate POI texts include "Atour”.
  • each candidate POI text in the candidate POI text set is greater than 1, other information of POIs corresponding to each candidate POI text is not limited in any way.
  • the first search text is "Atour”
  • each candidate POI text can be "Atour” in different addresses, for example, each candidate POI text can be Atour Hotel in different areas of Hangzhou, Atour Hotel in different areas of Xi'an hotel etc.
  • the POI text set includes 4 POI texts, and the 4 POI texts are as follows:
  • POI text 1 Atour, hotel, Hangzhou xxx1, valid time 1, frequency 3;
  • POI text 2 Atour, hotel, Hangzhou xxx2, valid time 2, frequency 2;
  • POI text 3 seven days, hotel, Shenzhen xxx3, valid time 3, frequency 3;
  • the first search text is "Atour"
  • 2 candidate POI texts are obtained based on the 4 POI texts and the first search text
  • the 2 candidate POI texts are POI text 1 and POI text 2.
  • the client may include an index module, and the index module includes an index library corresponding to each type of POI, and each type of index library stores POI text corresponding to the type.
  • the index module includes index libraries of types "hotel”, “attraction”, and “catering”, and the multiple POI texts obtained based on the first user data correspond to three types of POIs, and the POI text corresponding to "hotel” Store the POI text corresponding to "attraction” in the index library of type "hotel”, store the POI text corresponding to "dining" in the index library of type "dining” in the index library.
  • the client may search for candidate POI texts matching the first search text in the index database corresponding to the POI type matching the first search text.
  • the first search text is "Atour” and the type is "Hotel”
  • the client searches for the candidate POI text matching "Atour” in the index library whose type is "Hotel”.
  • the client determines the second search text according to the first search text and the candidate POI text set, each address represented by the first address information and the address information represented by the candidate POI text set Address related.
  • the client determines the first address information according to the address information in the candidate POI text set, and determines the second search text according to the first address information and the first search text.
  • the client may combine the first address information and the first search text to form the second search text.
  • the address information in the candidate POI text set represents at least part of the address information in the candidate POI text set, and the at least part of the address information is part or all of the address information of all the address information in the candidate POI text set.
  • Each address information of is a candidate POI address information in the text. It should be understood that all the address information in the candidate POI text set represents the sum of the address information of each candidate POI text in the candidate POI text set.
  • the candidate POI text set includes 3 candidate POI texts, and the 3 candidate POI texts include 3 address information, and the 3 address information is all address information in the candidate POI text set.
  • Each address represented by the first address information is related to the address represented by the address information in the candidate POI text set, which can be interpreted in two ways.
  • the first search text is "Yado”
  • the candidate POI text set includes 2 candidate POI texts
  • the address information of one candidate POI text is "Jiangling Road, Binjiang District, Hangzhou City”
  • the address information of the other candidate POI text is The address indicated by the address information is "Fuyang District, Hangzhou City”
  • the second search text can be expressed as: Atour, Hangzhou Binjiang, Hangzhou Fuyang, or the second search text can be expressed as: Atour, Hangzhou Binjiang Jiangling, Hangzhou Fuyang.
  • the second search text can be determined by performing one screening of the POI text set. In this way, the long processing delay caused by additional screening by the client can be reduced.
  • the candidate POI text sets can be further screened to reduce the number of candidate POI texts to obtain concise and effective address information, thereby reducing the search load on the server.
  • Fig. 6 is another schematic flow chart for the client to determine the second search text according to the first search text and the first user data according to the embodiment of the present application.
  • the client screens out a candidate POI text set from the first user data according to the first search text, and each candidate POI text in the candidate POI text set matches the first search text and includes address information , the address indicated by the address information in each candidate POI text is the address in the address set.
  • this step is the first screening process of the secondary screening.
  • step S22 For a specific description of step S221, reference may be made to the relevant description of step S221 in Mode 1, and details are not repeated here.
  • the client selects the final candidate POI text from the candidate POI text set according to the effective time of the POI corresponding to each candidate POI text and/or the popularity of the POI corresponding to each candidate POI text.
  • this step is the second screening process in the secondary screening.
  • the final candidate POI text includes at least one candidate POI text. Ideally, the final candidate POI text includes one candidate POI text, or in other words, the number of final candidate POI texts is one.
  • the valid time of the POI corresponding to each candidate POI text and/or the popularity of the POI corresponding to each candidate POI text have three situations: the valid time of the POI corresponding to each candidate POI text alone, The popularity of POIs corresponding to each POI text candidate exists separately, and the effective time of POIs corresponding to each POI text candidate and the popularity of POIs corresponding to each POI text candidate exist.
  • the client can filter out the final candidate POI text from the candidate POI text set according to the valid time of the POI, the popularity of the POI, or, the valid time of the POI and the popularity of the POI.
  • the client selects the final candidate POI text from the candidate POI text set according to the effective time of the POI corresponding to each candidate POI text.
  • the client can compare the search time of the first search text with the valid time of the POI corresponding to each candidate POI text, and if the search time is within the valid time of the POI, it means that the POI may be a valid POI , then keep the candidate POI text corresponding to the POI, if the search time is outside the valid time of the POI, it means that the POI may be an invalid POI, then discard the candidate POI text corresponding to the POI.
  • the client finally screens out the final candidate POI texts that meet the above conditions.
  • the candidate POI text set includes 2 candidate POI texts, namely: POI text 1: Atour, Hotel, Hangzhou xxx1, valid time 1 (2021.4.3-4.5), frequency 3; POI text 2: Atour , hotel, Hangzhou xxx2, valid time 2 (2020.10.5-10.9), frequency 2; the search time of the first search text is 2021.4.3, and the search time is within the valid time of the POI corresponding to POI text 1 (2021.4. 3-4.5), so POI text 1 is selected from the candidate POI text set, and the final candidate POI text is POI text 1.
  • POI text 1 Atour, Hotel, Hangzhou xxx1, valid time 1 (2021.4.3-4.5), frequency 3
  • POI text 2 Atour , hotel, Hangzhou xxx2, valid time 2 (2020.10.5-10.9), frequency 2
  • the search time of the first search text is 2021.4.3, and the search time is within the valid time of the POI corresponding to POI text 1 (2021.4. 3-4.5)
  • POI text 1 is
  • the client screens out the final candidate POI text from the candidate POI text set according to the popularity of the POI corresponding to each candidate POI text.
  • the client compares the popularity of the POIs corresponding to the various candidate POI texts, and screens out the candidate POI texts corresponding to the POIs with the highest popularity, so as to obtain the final candidate POI text.
  • the client takes the candidate POI text corresponding to the most popular POI as the final candidate POI text.
  • the popularity of the POI corresponding to the candidate POI text may include: the frequency at which the POI corresponding to the candidate POI text appears in the client. It should be understood that the higher the frequency of the POI, the higher the interest of the user in paying attention to the POI; on the contrary, the lower the frequency of the POI, the lower the enthusiasm of the user in paying attention to the POI.
  • the candidate POI text set includes 2 candidate POI texts, namely: POI text 1: Atour, hotel, Hangzhou xxx1, valid time 1, frequency 3; POI text 2: Atour, hotel, Hangzhou xxx2, The effective time is 2 and the frequency is 2; the frequency "3" of the POI corresponding to POI text 1 is greater than the frequency "2" of the POI corresponding to POI text 2, which means that the POI corresponding to POI text 1 is more popular. Therefore, from the candidate POI text POI text 1 is screened out from the collection and the final candidate POI text is POI text 1.
  • the client may filter out the final candidate POI text from the candidate POI text set according to the validity time of the POI corresponding to each candidate POI text and the popularity of the POI corresponding to each candidate POI text.
  • the client may set the search time of the first search text within the valid time of the POI Candidate POI texts with high POI popularity are selected as the final candidate POI texts.
  • the candidate POI text with higher POI popularity may be used as the final candidate POI text.
  • the client determines the second search text according to the first search text and the final candidate POI text, and each address represented by the first address information matches the address information in the final candidate POI text.
  • the indicated address is relative.
  • the client may determine the first address information according to the address information of the final candidate POI text, and determine the second search text according to the first address information and the first search text.
  • the client may combine the first address information and the first search text to form the second search text.
  • the address information of the final candidate POI text represents at least part of the address information in the final candidate POI text, the at least part of the address information is part or all of the address information in the final candidate POI text, and the at least part of the address information
  • Each address information in the message is address information in a candidate POI text. It should be understood that all the address information in the final candidate POI text represents the sum of the address information of each candidate POI text in the final candidate POI text.
  • the final candidate POI text set includes 2 candidate POI texts, and the 2 candidate POI texts include 2 address information, and the 2 address information is all address information in the final candidate POI text.
  • Each address represented by the first address information is related to the address represented by the address information in the final candidate POI text, and there are two interpretations. For specific descriptions, please refer to the above "Each address represented by the first address information address is related to the address represented by the address information in the candidate POI text set", just replace the above “candidate POI text set” with "final candidate POI text", and the rest will not be repeated.
  • the address information of the final candidate POI text is the address information of the candidate POI text
  • the client can use the address information of the candidate POI text As the first address information, or, the client obtains the first address information based on the address information of the candidate POI text, and combines the first address information with the first search text to obtain the second search text.
  • the first search text is "Yado”
  • the final candidate POI text only includes one candidate POI text
  • the address information of the candidate POI text indicates the address is "Jiangling Road, Binjiang District, Hangzhou City”
  • the first address The address indicated by the information can be "Hangzhou Binjiang”
  • the second search text can be expressed as: Atour, Hangzhou Binjiang; or, the address indicated by the first address information can be "Hangzhou Binjiang Jiangling”, and the second search text can be expressed as: Atour , Hangzhou Binjiang Jiangling.
  • the client sends a search request to the server, where the search request includes the second search text.
  • the second search text is encrypted search text.
  • the client may store the second search text in a trusted execution environment (trusted execution environment, TEE) within the client, and encrypt the second search text in the TEE .
  • TEE trusted execution environment
  • the second search text includes the first address information related to user privacy, in order to avoid leakage of user privacy during data transmission, the second search text can be encrypted to avoid leakage of user privacy during data transmission and improve security .
  • the search request includes first search text and second search text.
  • the first search text and the second search text are encrypted search texts.
  • the client may save the first search text and the second search text in the TEE of the client, and encrypt the first search text and the second search text in the TEE.
  • the first address information in the second search text is a possible search intention of the user obtained by the client based on the address extension of the first user data, it is a guessing behavior.
  • the reserved first search text reflects the user's original intention
  • the second search text reflects the user's real search intention, so that the server can Feedback all possible search results as much as possible to fully reflect all the user's intentions, while realizing personalized search, improve the comprehensiveness and accuracy of search results, and further improve user experience.
  • the server sends a plurality of POI search results to the client in response to the search request, the plurality of POI search results include M POI search results matching the second search text, where M is greater than or equal to 1 integer.
  • the client receives the multiple POI search results.
  • the server searches the database for POI search results that meet the search request, wherein the POI search results that meet the search request represent POI search results that match the search text in the search request.
  • the search request includes a second search text
  • the plurality of POI search results include M POI search results matching the second search text
  • the server decrypts the second search text, and searches the database for POI search results matching the second search text.
  • the server may save the second search text in the TEE, and decrypt the second search text in the TEE.
  • the POI search result matching the second search text means that the second search text matches the POI search result.
  • the second search text matches the POI search result.
  • the second search text is related to the POI search result.
  • the second search text is related to the POI search result. It means that the content of the search text is identical or partially identical to the related content of the POI corresponding to the POI search result. For example, taking the second search text as "Atour, Hangzhou Binjiang" as an example, the POI corresponding to the POI search result matching "Atour, Hangzhou Binjiang” is Atour Hotel located in Hangzhou Binjiang area.
  • the search text is "Atour, Hangzhou Binjiang”
  • send the second search text "Atour, Hangzhou Binjiang” to the server through the search request
  • the server feedback matches the second search text "Atour, Hangzhou Binjiang”
  • the POI search result is shown in the result list box 302 of Figure 3
  • a POI search result corresponds to a POI
  • the POI corresponding to each POI search result is Atour Hotel in Binjiang, Hangzhou (for the sake of brevity, only the specific address of POI2 is shown in the figure), where POI2 is the hotel that the user expects to search for.
  • the POI search results fed back by the embodiment of the present application can better reflect the user's real behavioral intentions , meet the actual needs of users, meet the user's personalization, and improve user experience.
  • the search request includes the first search text and the second search text. Since the second search text includes the first search text, the search results that match the second search text must also match the first search text. Therefore, the multiple POI search results all match the first search text, M POI search texts also match the second search text, and the remaining N search texts only match the first search text. Therefore, the multiple POI search texts include: M POI search results, and N POI search results that match the first search text except for the M POI search results.
  • the server decrypts the first search text and the second search text, and searches the database for POI search results and POI search results matching the second search text.
  • the server can save the first search text and the second search text in the TEE, and decrypt them in the TEE The first search text and the second search text.
  • the POI search result matching the first search text means that the first search text matches the POI search result, and the specific details of "the first search text matches the POI search result"
  • Fig. 7 is another GUI of the map provided by the embodiment of the present application.
  • the user is in Shenzhen, has booked the Atour Hotel on Jiangling Road, Binjiang, Hangzhou, and has received a text message indicating that the hotel reservation is successful.
  • the user enters the first search text "Atour Hotel" in the search box 401 in the GUI shown in Figure 7 ", the second search text obtained by the client based on the first search text and the first user data (including the short message of Hangzhou hotel reservation success) is "Atour, Hangzhou Binjiang", and the first search text is "Yado" through the search request.
  • the server can sort the multiple POI search texts, and feed back multiple POI search results with sorting to the client, as shown in Figure 3 or Figure 7 , the result list box displays 7 POI search results sorted by order.
  • the server can perform feature extraction on each POI search result to obtain the feature value, use the feature value as the input of the sorting model, obtain the result value corresponding to each POI search result through the sorting model, and search according to each POI
  • the result value corresponding to the result sorts the multiple POI search results to obtain the multiple POI search results with sorting.
  • the specific implementation process can refer to the existing sorting technology. It should be understood that the sorting model adopted by the server may be various sorting models capable of sorting, and the input of each sorting model is different, which is not limited in this embodiment of the present application.
  • the sorting of the multiple POI search results shown in Figure 3 and Figure 7 is only a schematic illustration and should not be construed as a limitation, as long as there is a POI search result matching the second search text among the multiple POI search results That's it.
  • the POI search result corresponding to POI2 may also be the first POI search result in the ranking.
  • the client performs address expansion on the first search text according to the first search text input by the user and the first user data stored in the client to obtain the The text and the second search text of the first address information obtained based on the first user data, the second search text is sent to the server through a search request, and the server feeds back a plurality of POI search results based on the second search text. Since the second search text is the search text including the first address information obtained based on the first user data of the client, the first address information is closely related to the user, and the address represented by the first address information has a high probability of representing what the user expects to search for.
  • the POI search results fed back by the server based on the second search text will most likely include the search results of POIs that the user is interested in or expect, which conforms to the user's real search intention, meets the user's individual needs, and improves Improve user experience while improving search performance.
  • the first user data is stored in the user's personal client, the problem of leakage of user privacy is avoided as much as possible.
  • the server will feed back multiple POI search results with sorting.
  • the server uses only the data on the server corresponding to the APP currently used by the user, and cannot realize the corresponding Data sharing between servers.
  • the server corresponding to application A cannot use the data in the server corresponding to application B. Therefore, although the POI search results fed back by the server will have a high probability of including the POI search results expected by the user,
  • the sorting of POI search results may not be optimal, and cannot provide users with personalized sorting.
  • the server corresponding to the map cannot use the data in the server corresponding to other applications such as Taobao and Meituan when sorting the POI search results, and the POI search results fed back by the server corresponding to the map
  • the ordering of may not be optimal.
  • the search results of the POIs they are interested in are at the top of the ranking.
  • the search results of the POIs they are interested in are expected to be at the top of the rankings.
  • the user expects that the POI search result corresponding to POI2 (Atour Hotel, Jiangling Road, Binjiang, Hangzhou) is the first POI search result in the sorting, but actually corresponds to The POI search result in POI2 is the second POI search result in the ranking.
  • the ranking has insufficient personalized features and is not the optimal ranking.
  • the embodiment of the present application proposes that the number of historical clicks on POIs can be further obtained according to the SDK log data representing user behavior, and the multiple POI search results can be reordered to obtain POI search results with a relatively accurate order, which is more accurate.
  • Personalized features with the user's personal style can well meet the user's needs and further improve the user experience.
  • the client performs feature extraction on each POI search result, and determines at least one feature value corresponding to each POI search result, and the at least one feature value includes the POI corresponding to each POI search result
  • the number of historical clicks is obtained based on the SDK log data of the client, and the SDK log data records the user's click operations on POIs in various APPs.
  • SDK log data is a kind of data that records user behavior, mainly records the usage of the user's operation APP, including the user's click operation on POI in each APP.
  • each APP corresponds to one SDK log data.
  • the embodiment of this application records the SDK log data corresponding to each APP as sub-SDK log data.
  • the SDK log data in the embodiment of this application includes the corresponding Sub-SDK log data, one sub-SDK log data corresponds to one APP.
  • the client For any APP, if the user clicks a POI displayed on an APP, the client will record the user's click operation on the POI in the corresponding sub-SDK log data of the APP. Since the SDK log data includes the sub-SDK log data corresponding to each APP, for a certain POI, the client can obtain the user's historical clicks on the POI through the user's click operations on the POI in each APP in the SDK log data frequency. Therefore, for the POI corresponding to each POI search result in the embodiment of the present application, the user can obtain the corresponding POI corresponding to each POI search result through the user's click operation on the POI corresponding to each POI search result in each APP in the SDK log data. The historical click count of the POI.
  • the historical number of clicks on the POI corresponding to each POI search result is the sum of the number of clicks by the user on the POI corresponding to each POI search result in each APP.
  • the SDK log data records that the user clicked POI1 twice in APP1, clicked POI1 once in APP2, and clicked POI1 in APP3.
  • sorting the search results of multiple POIs based on the number of historical clicks can be Get a more user-specific sort. More importantly, compared to the fact that the server can only obtain the number of clicks on POIs in a certain APP, the embodiment of this application obtains all historical clicks on POIs through the SDK log data that records the click operations of each APP on POIs , to achieve data sharing between APPs, and to obtain a more personalized sorting to meet the individual needs of users. Moreover, in this sorting, the POI search results expected by the user are likely to be among the multiple POI search results The first POI search result of , allows users to quickly see the POI search results they expect, further improving user experience.
  • At least one characteristic value corresponding to each POI search result includes a characteristic value, and the characteristic value is the number of historical clicks of the POI corresponding to each POI search result.
  • At least one feature value corresponding to each POI search result is a plurality of feature values, including not only the number of historical clicks of the POI corresponding to each POI search result, but also at least one of the following:
  • a feature value used to represent the correlation between the second search text and the POI corresponding to each POI search result or,
  • the client can obtain the second search text and each POI search result to represent the second The feature value of the correlation between the search text and the POI corresponding to each POI search result.
  • the feature value used to indicate the degree of relevance between the second search text and the POI corresponding to each POI search result may include: the maximum number of the name (name) of the POI corresponding to the second search text and each POI search result.
  • the second search text is "Yado, Hangzhou Binjiang”
  • the name of the POI corresponding to a certain POI search result is “Yado”
  • the address is "Hangzhou Binjiang Jiangling”
  • the second search text and the name of the POI The length of the longest common substring is 2, and the length of the longest common substring between the second search text and the address of the POI is 4.
  • the current address of the client may also be understood as the current address of the user holding the client. It should also be understood that the distance between the current address of the client and the POI corresponding to each POI search result indicates the distance between the current address of the client and the address of the POI corresponding to each POI search result.
  • the client may determine whether the POI type corresponding to each POI search result is the same as the POI type corresponding to the second search text.
  • the feature value of the POI type corresponding to the POI search result may be determined whether the POI type corresponding to each POI search result is the same as the POI type corresponding to the second search text.
  • the characteristic value of the POI type corresponding to the POI search result may be 1, if each POI search If the type of POI corresponding to the result is different from the type of POI corresponding to the second search text, then the feature value of the type of POI corresponding to the POI search result may be 0.
  • the second search text is "Atour, Hangzhou Binjiang”
  • the type of POI is hotel
  • the feature value of the type of POI corresponding to the POI search result is 0
  • the POI type corresponding to a certain POI search result is a hotel
  • the feature value of the POI type corresponding to the POI search result is 1.
  • the client sorts the plurality of POI search results according to at least one feature value corresponding to each POI search result, and determines the recommended ranking.
  • the client terminal can display the multiple POI search results for the user according to the recommended ranking.
  • the embodiment of the present application also defines two rankings other than the recommended ranking, which are respectively recorded as server-side ranking and client-side ranking.
  • the server-side sorting means the sorting result obtained by the server side sorting the search results of multiple POIs.
  • the client sorting means the sorting result obtained by the client sorting multiple POI search results.
  • the server sorting Since the client sorting uses the historical clicks on POIs obtained based on the click operations on POIs in each APP recorded in the SDK log data, and the click operations of each APP cannot be used by the server, so the server sorting is the same as The sorting results of client-side sorting are likely to be different, but in some practical special cases, the sorting results of client-side sorting and server-side sorting may also be the same.
  • the client sorting can be used as the recommended ranking, and in another way, the client sorting and the server sorting can be considered comprehensively to obtain the recommended Sort.
  • the client determines the client recommendation according to at least one characteristic value corresponding to each POI search result, and presents the client recommendation as the final recommendation ranking to the user.
  • At least one feature value corresponding to each POI search result includes multiple feature values, and the multiple feature values include the number of historical clicks of the POI corresponding to each POI search result and at least one of the following: used to represent the second The feature value of the correlation between the search text and the POI corresponding to each POI search result, or, the distance between the current address of the client and the POI corresponding to each POI search result, or, each POI search result The characteristic value of the corresponding POI type.
  • the client can adopt a sorting model, and use multiple feature values corresponding to each POI search result as the input of the sorting model, and the multiple feature values are calculated by the sorting model to obtain an output result.
  • the output result corresponding to each POI search result is sorted by multiple POI search results to obtain the client-side ranking.
  • the output results are sorted in descending order to obtain the client-side sorting.
  • POI search results may be further sorted according to lexicographical order.
  • the output results of POI search result 1 and POI search result 2 are the same, POI1 corresponding to POI search result 1 is "Tiananmen”, POI2 corresponding to POI search result 2 is "Forbidden City”, the first letter of "Tian” in “Tiananmen” The first letter of "Gu” in "Forbidden City” is "g”, and "g” is before “t”, so the sorting of "Forbidden City” is before “Tiananmen”.
  • the number of historical clicks of the POI corresponding to each POI search result is represented by x 1i
  • the length of the longest common substring between the second search text and the name of the POI is represented by x 2i
  • the second search text and the address of the POI The length of the longest common substring is x 3i
  • the distance between the current address of the client and the POI is x 4i
  • the characteristic value of the POI type is x 5i , based on the above x 1i , x 2i , x 3i
  • the output results obtained by , x 4i and x 5i are represented by y i
  • i represents the number of the POI search result.
  • POI search results include 4 POI search results, recorded as POI search result 1, POI search result 2, POI search result 3, and POI search result 4, wherein,
  • the multiple eigenvalues corresponding to POI search result 1 are: x 11 , x 21 , x 31 , x 41 and x 51 , and the output result is y 1 ,
  • the multiple eigenvalues corresponding to POI search result 2 are: x 12 , x 22 , x 32 , x 42 and x 52 , and the output result is y 2 ,
  • the multiple eigenvalues corresponding to POI search result 3 are: x 13 , x 23 , x 33 , x 43 and x 53 , and the output result is y 3 ,
  • the multiple eigenvalues corresponding to POI search result 4 are: x 14 , x 24 , x 34 , x 44 and x 54 , and the output result is y 4 ,
  • each feature value corresponds to a weight according to the degree of importance.
  • the historical clicks of the POI are mainly used. Therefore, the historical clicks of the POI may have the highest importance and the highest weight.
  • the ranking model of the client may be a learning to rank (LTR) model
  • the LTR model is an algorithm using machine learning, and may be a model automatically trained by a machine learning algorithm.
  • the input of the LTR model may be feature values with different weights, and the output is the output result.
  • At least one feature value corresponding to each POI search result includes a feature value, and the feature value is the number of historical clicks of the POI corresponding to each POI search result.
  • the client ranks the multiple POI search results according to the historical click times of the POI corresponding to each POI search result, to obtain the client rank.
  • sorting is performed in descending order of the number of historical clicks to obtain a client-side ranking.
  • POI search results with the same number of historical clicks they may be sorted in lexicographical order.
  • the first POI search result obtained in the recommendation ranking has a high probability of being the POI search result desired by the user.
  • Fig. 8 is another GUI of the map provided by the embodiment of the present application.
  • the obtained clients are sorted as shown in Figure 8, and the POI search result corresponding to POI2 is the search that the user expects The result, is the first POI search result among the plurality of POI search results. It should be understood that the sorting of clients shown in FIG. 8 is only for schematic illustration, and should not limit this embodiment of the present application.
  • the client performs feature extraction on each POI search, and obtains at least one of the historical click times of the POI corresponding to each POI search result.
  • a characteristic value sorting a plurality of POI search results based on the at least one characteristic value, to obtain a final recommendation ranking. Since the user's historical clicks on POIs can reflect the user's attention to POIs, multiple POI search results can be sorted based on the historical clicks of POIs corresponding to each POI search result, and a more user-personalized ranking can be obtained .
  • the embodiment of this application obtains all the user's clicks on POIs through the SDK log data that records the click operations of each APP on POIs.
  • the number of historical clicks realizes the data sharing between each APP, and can get a more personalized sorting to meet the individual needs of users.
  • the POI search results expected by users are likely to be multiple POIs
  • the first POI search result in the search results can enable the user to quickly see the desired POI search result, further improving user experience.
  • Method B The recommended sorting is based on client-side sorting and server-side sorting
  • the client sorts the plurality of POI search results according to at least one characteristic value corresponding to each POI search result, and determines the client sorting
  • the recommended ranking is determined according to the client ranking and the server ranking obtained by the server sorting the multiple POI search results, wherein the first POI search result in the recommended ranking is the first POI sorted by the client For search results, the ranking of the POI search results other than the first POI search result in the recommended ranking in the recommended ranking is the ranking of the POI search results in the server ranking except the first POI search result in the recommended ranking.
  • the first POI search result sorted by the recommendation is the top POI search result in the recommendation ranking
  • the first POI search result sorted by the client is the top POI search result in the client ranking
  • the first POI search result sorted by the client may be the same as or different from the first POI search result sorted by the server, but whether they are the same or not, in the implementation, the first POI search result sorted by the client needs to
  • the POI search result is the first POI search result sorted by recommendation, and does not need to consider the first POI search result sorted by the server.
  • the multiple POI search results include 4 POI search results, which are POI search result 1, POI search result 2, POI search result 3, and POI search result 4, respectively.
  • the server-side sorting is: POI search result 2, POI search result 1, POI search result 3, POI search result 4,
  • the clients are sorted as: POI search result 1, POI search result 2, POI search result 2, POI search result 4,
  • the recommended ranking is: POI search result 1, POI search result 2, POI search result 3, POI search result 4.
  • the first POI search result sorted by the client is POI search result 1, which is the first POI search result sorted by recommendation.
  • the ranking of POI search results other than 1" is: POI search result 2, POI search result 3, POI search result 4, as the ranking of POI search results other than the first POI search result "POI search result 1" in the recommended ranking , which are located behind "POI search result 1" according to the order.
  • Fig. 9 is another GUI of the map provided by the embodiment of the present application. Continue assuming that the user is in Shenzhen and has booked the Atour Hotel on Jiangling Road, Binjiang, Hangzhou, and has received a text message indicating that the hotel reservation is successful.
  • the recommended ranking is shown in Figure 9, combined with the server sorting shown in Figure 3 and Figure 8
  • the POI search result corresponding to POI2 is a POI search result sorted by the client shown in Figure 8, which is the search result expected by the user, POI1, POI3, POI4, POI5, POI6 and POI7
  • the ranking of the corresponding POI search results is the ranking of POI search results other than the POI search results corresponding to POI2 in the server ranking shown in FIG. 3 .
  • the server-side sorting has the common characteristics of a class of users, so the ranking of the other POI search results in the server-side sorting except the first POI search result on the server side is used as the first POI search in the recommended sorting except for the recommended sorting
  • the sorting of POI search results other than results can meet the common experience of users. Therefore, the recommendation ranking obtained by combining the user-individualized client-side sorting and the globalized server-side sorting not only has the characteristics of user personalization, but also has the characteristics
  • the client can use the LTR model to sort multiple POI search results.
  • the client will record the user's click operation on the POI search results in the SDK log data to update SDK log data, and the client can update the LTR model in real time based on the updated SDK log data, so that the LTR model can learn the user's click behavior in real time, and can learn the user's personal habits faster, better, and more effectively. Further improve the personalized needs of users and further improve user experience.
  • the method further includes:
  • the client updates the SDK log data to update the LTR model according to the user's click operation on at least one POI search result among the plurality of POI search results.
  • the user clicks at least one POI search result of interest, and the client records the user's click operation on each POI search result in the SDK log data, thereby updating the SDK log data to update the LTR model.
  • the client obtains POI click information according to the updated SDK log data
  • the POI click information includes the number of times the user clicks each POI
  • each POI includes the POI corresponding to the at least one POI search result
  • the POI click information The number of clicks is used as input to the LTR model to update the LTR model.
  • the POI click information is information used to record the click operation of the user clicking on each POI, including the number of clicks the user clicks on each POI. content such as time.
  • At least one POI search result among the multiple POI search results is the POI search result clicked by the user, and is part or all of the multiple POI search results, including the POI search result that the user finally expects, and the user
  • the final desired POI search result is a certain search result among the multiple POI search results.
  • the user will not only click on the desired POI search result, but may also click on other POI search results due to other factors. Therefore, the at least one POI search result is all the POI search results clicked by the user.
  • the client may also add the second search text to the search text set used to update the LTR model, and add the POI corresponding to at least one POI search result clicked by the user to the POI set used to update the LTR model , based on the search text set and POI set, get the feature value of the correlation between each search text and each POI, the feature value of the POI type corresponding to each POI search result, etc., combined with each POI obtained based on the SDK log data
  • the number of clicks of POI, these feature values and the number of clicks of each POI are used as the input of the LTR model to update the LTR model.
  • search text collection can be understood as training data for updating the LTR model.
  • each feature value input in the LTR model has a corresponding weight
  • updating the LTR model is actually equivalent to updating the weight corresponding to each feature value.
  • FIG. 10 is a POI search system 300 provided by an embodiment of the present application, including: a client 310 and a server 320 .
  • the client 310 includes: a data management module 311 , an address extension module 312 , a TEE module 313 , and a sorting model 314 .
  • the system 300 will be introduced in combination with the POI search method described above.
  • Data management module 311 uniformly manages user data related to POI search in client 310, provides data and interface support to address extension module 312 and sorting module 314, and is mainly divided into three parts: data source layer, data processing layer and index layer .
  • Data source layer includes two categories: the first user data and SDK log data, among which, the first user data is mainly SMS, memo and other application data containing local personal information, and the SDK log data is the log information of the client APP calling the sdk .
  • the first user data is mainly SMS, memo and other application data containing local personal information
  • the SDK log data is the log information of the client APP calling the sdk .
  • Data processing layer mainly process the data in the data source layer according to the rules and use it for the upper layer.
  • the data processing layer is used to filter and extract the first user data and submit the processed data to the index library of the index layer.
  • the data processing layer is used to filter noise data, and filter advertisement information or useless data in the first user data by means of keywords or mobile phone number segments. For example, bank notification information and advertisement information are filtered out in text messages.
  • the data processing layer is used to extract POI texts, and extract multiple POI texts related to POIs from the first user data by using NLP technology.
  • the data processing layer is also used to store multiple POI texts in index libraries of different POI types in the index layer according to the POI type corresponding to each POI text.
  • the data processing layer is used to click on POIs in the SDK log data by means of log analysis to obtain the number of clicks of each POI, and use the number of clicks of each POI as a sorting module 314 Input to the ranking model in to update the ranking model.
  • the index layer includes index libraries corresponding to various types of POIs, and each type of index library stores POI text corresponding to the type. As shown in FIG. 10 , the index layer includes index libraries whose types are "hotel", “attraction”, and "catering".
  • the address expansion module 312 is configured to perform address expansion on the first search text input by the user according to the first user data to obtain the second search text, and finally realize user-oriented personalized recall.
  • address expansion by the address expansion module 312 to obtain the second search text reference may be made to the relevant description of step S220 in the method 200 above, and details will not be repeated here.
  • the TEE module 313 is configured to encrypt the second search text, or, the second search text and the first search text in the TEE, and send it to the TEE module 321 of the server 320 .
  • the purpose of the ranking module 314 is to sort the POI search results, and a ranking model is configured in the ranking module 314 .
  • the sorting module 314 is used to perform feature extraction on a plurality of POI search results fed back by the server 320, obtain at least one feature value including the number of historical clicks of the POI corresponding to each POI search result, and use the at least one feature value as a sorting
  • the input of the model uses the ranking model to reorder multiple POI search results, and returns the recommended ranking that meets the user's search intent.
  • the server 320 may include a TEE module 321 and an operating system (operation system, OS) module 322.
  • the TEE module 321 and the OS module 322 are operating environments that coexist on the server.
  • the TEE module 321 provides security for the OS module 322.
  • FIG. 11 is a schematic diagram of the interaction between the OS module 321 and the TEE module 322 of the server provided by the embodiment of the present application. In this process, it is explained by taking the search request including the first search text and the second search text as an example.
  • TEE module 321 since the purpose of the TEE module 321 is to protect user privacy in consideration of security, as long as the process involving the need to use the first search text and the second search text is executed in the TEE module 321, based on the first search text and the second search text The process of searching the database for matching POI search results is performed in the OS module 322.
  • the OS module 322 receives the encrypted first search text and the second search text, decrypts the first search text and the second search text in the TEE module 321 , and stores them in the TEE module 321 .
  • the OS module 322 sends the recall template with default values to the TEE module 321, and the TEE module 321 inputs the first search text and the second search text into the default values of the recall template to construct a complete recall request, And the recall request is output and sent to the OS module 322, and the OS module 322 outputs a plurality of POI search results matching the recall request based on the recall request.
  • the recall template can also be understood as a request template with default values, and the recall request is used to request search results from the database.
  • the OS module 322 sends multiple POI search results to the TEE module 321, and the TEE module 321 calculates the feature value of the POI corresponding to each POI search result based on the first search text, the second search text, and multiple POI search results , sending the feature value of the POI corresponding to the POI search result to the OS module 322, and the OS module 322 completes the sorting of the multiple POI search results, and outputs the multiple POI search results with server-side sorting.
  • FIG. 12 shows an apparatus 500 for searching information points provided by an embodiment of the present application.
  • the apparatus 500 may be the client described above, or a chip in the client.
  • the apparatus 500 includes: a processing unit 510 and a transceiver unit 520 .
  • the apparatus 500 is configured to execute various processes and steps corresponding to the client in the above method 200 .
  • the processing unit 510 is configured to acquire the first search text input by the user
  • the processing unit 510 is further configured to determine a second search text according to the first search text and the first user data of the device, the first user data includes an address set, and the second search text includes the first A search text and first address information, the first address information represents at least one address, the information point POI corresponding to each address matches the first search text, and each address matches the address in the address set relevant;
  • the transceiving unit 520 is configured to send a search request to the server, where the search request includes the second search text;
  • the transceiving unit 520 is further configured to receive a plurality of POI search results sent by the server in response to the search request, the plurality of POI search results include M POI search results matching the second search text , M is an integer greater than or equal to 1.
  • processing unit 510 can be used to execute the processes and steps of steps S210 and S220 in the method 200
  • transceiving unit 520 can be used to execute the processes and steps corresponding to the client in steps S230 and S240 in the method 200 .
  • the apparatus 500 here is embodied in the form of functional units.
  • the term "unit” here may refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor for executing one or more software or firmware programs (such as a shared processor, a dedicated processor, or a group processor, etc.) and memory, incorporated logic, and/or other suitable components to support the described functionality.
  • ASIC application specific integrated circuit
  • processor for executing one or more software or firmware programs (such as a shared processor, a dedicated processor, or a group processor, etc.) and memory, incorporated logic, and/or other suitable components to support the described functionality.
  • the apparatus 500 in each of the above solutions has the function of implementing the corresponding steps performed by the access network device or the core network device in the above method; the function can be realized by hardware, or by executing corresponding software on the hardware.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions; for example, the communication unit can be replaced by a transmitter and a receiver, and other units, such as a processing unit, can be replaced by a processor, respectively executing the method in each method embodiment. Sending and receiving operations and related processing operations.
  • the communication unit in device 500 can also be composed of a sending unit and a receiving unit. For performing operations related to receiving, the function of the communication unit can be understood as receiving operations performed by the receiving unit.
  • the function of the communication unit can be understood as a sending operation performed by the sending unit.
  • the device in FIG. 12 may also be a chip or a chip system, for example: system on chip (system on chip, SoC).
  • the transceiver unit may be a transceiver circuit of the chip, which is not limited here.
  • FIG. 13 shows another apparatus 600 for searching information points provided by the embodiment of the present application.
  • the apparatus 600 may specifically be the client in the foregoing embodiments, and may be configured to execute various steps and/or processes corresponding to the clients in the foregoing method embodiments.
  • Apparatus 600 includes a processor 610 , a transceiver 620 and a memory 630 .
  • the processor 610, the transceiver 620 and the memory 630 communicate with each other through an internal connection path, the processor 610 can realize the functions of the processing unit 420 in various possible implementation modes in the device 600, and the transceiver 620 can realize various functions in the device 600. Functions of the transceiver unit 620 in a possible implementation manner.
  • the memory 630 is used to store instructions, and the processor 610 is used to execute the instructions stored in the memory 630. In other words, the processor 610 can call these stored instructions to realize the functions of the processor 620 in the device 600, so as to control the transceiver 620 to send signals and/or receive signal.
  • the memory 630 may include read-only memory and random-access memory, and provides instructions and data to the processor.
  • a portion of the memory may also include non-volatile random access memory.
  • the memory may also store device type information.
  • the processor 610 may be used to execute the instructions stored in the memory, and when the processor 610 executes the instructions stored in the memory, the processor 610 is used to execute the above method embodiments corresponding to the access network device or the core network device individual steps and/or processes.
  • the apparatus 600 is configured to execute various processes and steps corresponding to the client in the above method 200 .
  • the processor 610 is configured to acquire the first search text input by the user
  • the processor 610 is further configured to determine a second search text according to the first search text and the first user data of the device, the first user data includes an address set, and the second search text includes the first search text text and first address information, the first address information represents at least one address, the information point POI corresponding to each address matches the first search text, and each address is related to an address in the address set;
  • the transceiver 620 is configured to send a search request to the server, where the search request includes the second search text;
  • the transceiver 620 is further configured to receive a plurality of POI search results sent by the server in response to the search request, the plurality of POI search results include M POI search results matching the second search text, M is an integer greater than or equal to 1.
  • the processor of the above-mentioned device may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSP digital signal processor
  • ASIC application-specific integrated circuits
  • FPGA Field Programmable Gate Array
  • a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
  • each step of the above method can be completed by an integrated logic circuit of hardware in a processor or an instruction in the form of software.
  • the steps of the methods disclosed in connection with the embodiments of the present application may be directly implemented by a hardware processor, or implemented by a combination of hardware and software units in the processor.
  • the software unit may be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, register.
  • the storage medium is located in the memory, and the processor executes the instructions in the memory, and completes the steps of the above method in combination with its hardware. To avoid repetition, no detailed description is given here.
  • first and second are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of indicated technical features.
  • Features defined as “first” and “second” may explicitly or implicitly include one or more of these features.
  • At least one means one or more, and “multiple” means two or more.
  • At least part of an element means part or all of the element.
  • And/or describes the association relationship of associated objects, indicating that there may be three types of relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the contextual objects are an "or" relationship.
  • the disclosed systems, devices and methods may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the functions described above are realized in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Remote Sensing (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种信息点搜索的方法和装置,客户端根据用户输入的第一搜索文本和客户端中存储的第一用户数据,对该第一搜索文本进行地址扩展,得到包括第一搜索文本和基于第一用户数据得到的第一地址信息的第二搜索文本,由于该第二搜索文本中的第一地址信息与用户个人信息息息相关,第一地址信息表示的地址大概率会代表用户期望搜索到的POI的地址,因此,服务端基于该第二搜索文本反馈的POI搜索结果中大概率会包括用户感兴趣或期望的POI的搜索结果,符合用户真实的搜索意图,满足用户的个性化需求,提高了用户体验。

Description

信息点搜索的方法和装置
本申请要求于2021年06月17日提交中国专利局、申请号为202110670104.3、申请名称为“信息点搜索的方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及搜索技术领域,更具体地,涉及一种信息点搜索的方法和装置。
背景技术
信息点(point of information,POI)搜索是移动互联网时代用户的基本需求,已经融入生活的每一个方面,例如日常出行、旅游、餐饮等方面。
在现有技术中,POI搜索的流程大致为:客户端将用户输入的搜索文本发送给服务端,服务端对搜索文本分析,利用服务端的用户画像搜索到与该搜索文本匹配的搜索结果,对搜索结果进行排序后反馈给客户端。由于服务端的用户画像并不能很好地反映与用户个人相关的信息,因此,在一些场景中,服务端反馈的搜索结果可能无法满足用户的个性化需求,用户体验不高。
基于此,需要提供一种技术,可以尽可能满足用户的个性化需求,提高用户体验。
发明内容
本申请提供了一种POI搜索的方法和装置,基于用户输入的搜索文本可以输出符合用户真实搜索意图的搜索结果,满足用户的个性化需求,可提高用户体验。
第一方面,提供了一种信息点搜索的方法,其特征在于,包括:
获取用户输入的第一搜索文本;
根据所述第一搜索文本和客户端的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述第一搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
第一搜索文本是与POI相关的内容。示例性地,该第一搜索文本可以是POI的名称、POI的类型或POI的地址等中的至少一个。
第一用户数据是存储在客户端的本地数据,该第一用户数据记录了用户大量的个人信息。示例性地,第一用户数据可以包括例如短信、备忘录等包括本地个人信息的应用数据。
每个地址对应的POI表示具备该地址的POI,或者,POI的地址即为对应于该POI的 地址。
每个地址对应的POI与第一搜索文本匹配,可以理解为,每个地址对应的POI的相关内容与第一搜索文本具有相关性。示例性地,POI的相关内容与第一搜索文本具有相关性可以采用POI的相关内容与第一搜索文的内容相同或部分相同表示,POI的相关内容可以是POI的类型、POI的名称或POI的地址中的至少一个。
第一地址信息所表示的每个地址与地址集合中的地址相关,有如下两种解释。
第一种解释:第一地址信息所表示的每个地址是地址集合中的地址。
第二种解释:该第一地址信息所表示的每个地址是基于地址集合中与该每个地址对应的地址得到的,其中,地址集合中与该每个地址对应的地址是地址集合中与该每个地址具有相同区域范围的地址。
本申请实施例提供的信息点搜索的方法,客户端根据用户输入的第一搜索文本和客户端中存储的第一用户数据,对该第一搜索文本进行地址扩展,得到包括第一搜索文本和基于第一用户数据得到的第一地址信息的第二搜索文本,通过搜索请求将该第二搜索文本发送给服务端,服务端基于该第二搜索文本反馈多个POI搜索结果。由于该第二搜索文本是基于客户端的第一用户数据得到的包括第一地址信息的搜索文本,第一地址信息与用户个人息息相关,第一地址信息表示的地址大概率会代表用户期望搜索到的POI的地址,因此,服务端基于该第二搜索文本反馈的POI搜索结果中大概率会包括用户感兴趣或期望的POI的搜索结果,符合用户真实的搜索意图,满足用户的个性化需求,提高了用户体验,同时提升了搜索性能。此外,由于第一用户数据存储在用户个人的客户端,尽可能避免了用户隐私泄露的问题。
可选地,所述根据所述第一搜索文本和客户端的第一用户数据,确定第二搜索文本,包括:
根据所述第一搜索文本,从所述第一用户数据中筛选出候选POI文本集合,所述候选POI文本集合中的每个候选POI文本与所述第一搜索文本匹配且包括地址信息,所述每个候选POI文本中的地址信息所表示的地址是所述地址集合中的地址;
根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述候选POI文本集合中的地址信息所表示的地址相关。
其中,候选POI文本与第一搜索文本匹配,表示的是,候选POI文本中包括与第一搜索文本的部分或全部内容相同的内容。
本申请实施例提供的信息点搜索的方法,根据基于第一用户数据中筛选的候选POI文本集合对第一搜索文本进行地址扩展,得到第二搜索文本,可以得到相对有效的地址以得到相对有效的第二搜索文本,减少服务端的搜索成本。此外,在候选POI文本的数量较少时,该方法具有很好的适用性,也能减少客户端由于额外进行多次筛选造成的较长的处理时延。
可选地,所述候选POI集合包括多个候选POI文本;以及,所述根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,包括:
根据所述每个候选POI文本对应的POI的有效时间和/或所述每个候选POI文本对应的POI的热度,从所述候选POI文本集合中筛选出最终的候选POI文本;
根据所述第一搜索文本和所述最终的候选POI文本,确定所述第二搜索文本,所述第 一地址信息所表示的每个地址与所述最终的候选POI文本中的地址信息所表示的地址相关。
本申请实施例提供的信息点搜索的方法,对基于第一用户数据中筛选的候选POI文本集合进行第二次筛选,可以进一步减少候选POI文本的数量,得到更有效的地址,以更好地减少服务端的搜索文本。此外,采用候选POI文本对应的POI的有效时间对候选POI文本集合进行第二次筛选,考虑了POI的时效性,可以有效排除无效的POI,采用候选POI文本对应的POI的热度进行第二次筛选,考虑了用户对POI的关注度,可以有效排序用户不感兴趣的POI。
可选地,所述每个候选POI文本对应的POI的热度包括:所述POI在所述客户端中出现的频率。
可选地,所述方法还包括:
对每个POI搜索结果进行特征提取,确定所述每个POI搜索结果对应的至少一个特征值,所述每个POI搜索结果对应的至少一个特征值包括所述每个POI搜索结果对应的POI的历史点击次数,所述历史点击次数是基于所述客户端的软件开发工具包SDK日志数据得到的,所述SDK日志数据记录有用户在各个APP中对POI的点击操作;
根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序。
本申请实施例提供的信息点搜索的方法,针对服务端反馈的多个POI搜索结果,客户端对每个POI搜索进行特征提取,得到包括每个POI搜索结果对应的POI的历史点击次数的至少一个特征值,基于该至少一个特征值对多个POI搜索结果进行排序,得到最终的推荐排序。由于用户对POI的历史点击次数可以反映用户对POI的关注度,所以,基于每个POI搜索结果对应的POI的历史点击次数对多个POI搜索结果进行排序,可以得到更具用户个性化的排序。更重要的是,相比于服务端只能获取某个APP中关于POI的点击次数,本申请实施例通过记录有各个APP对POI的点击操作的SDK日志数据可以得到用户针对POI的所有的历史点击次数,实现了各个APP之间的数据共享,可以得到更具用户个性化的排序,满足用户的个性化需求;而且,在该排序中,用户期望的POI搜索结果大概率是多个POI搜索结果中的第一个POI搜索结果,可以使得用户能够快速看到自己期望的POI搜索结果,进一步提高用户体验。
可选地,所述根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序,包括:
根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定客户端排序;
根据所述客户端排序和服务端针对所述多个POI搜索结果进行排序得到的服务端排序,确定所述推荐排序,其中,所述推荐排序的第一个POI搜索结果是所述客户端排序的第一个POI搜索结果,所述推荐排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序是所述服务端排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序。
其中,推荐排序的第一个POI搜索结果是该推荐排序中位于首位的POI搜索结果,同理,客户端排序的第一个POI搜索结果是该客户端排序中位于首位的POI搜索结果。
本申请实施例提供的信息点搜索的方法,由于客户端排序考虑了用户对POI的历史点击次数,客户端排序中的第一个POI搜索结果最有可能是用户期望的POI搜索结果,所以,将客户端排序的第一个POI搜索结果作为推荐排序的第一个POI搜索结果,可以使得用户快速看到自己期望的POI搜索结果,使得推荐排序具有用户个性化特性,用户体验好;同时,由于服务端排序与用户画像有关,服务端排序具有一类用户的共性特点,所以,将服务端排序中除服务端的第一个POI搜索结果以外的其余POI搜索结果的排序作为推荐排序中除推荐排序的第一个POI搜索结果以外的POI搜索结果的排序,可以满足用户的共性体验。因此,综合客户端排序和服务端排序得到推荐排序,不仅具有用户个性化特性,也具有用户共性特征,推荐排序的综合性能更好,用户体验更好。
可选地,所述每个POI搜索结果对应的至少一个特征值还包括以下至少一项:
用于表示所述第二搜索文本与所述每个POI搜索结果对应的POI的相关度的特征值,或,
所述客户端当前所处的地址与所述每个POI搜索结果对应的POI的距离,或,
所述每个POI搜索结果对应的POI的类型的特征值。
可选地,所述客户端排序是根据学习排序LTR模型得到的;以及,所述方法还包括:
根据用户对所述多个POI搜索结果中至少一个POI搜索结果的点击操作,更新所述SDK日志数据,以更新所述LTR模型。
本申请实施例提供的信息点搜索的方法,根据用户对POI搜索结果的点击操作更新SDK日志数据,以更新LTR模型,可以使得LTR模型实时学习用户的点击行为,能更快、更好、更有效地学习用户个人的习惯,进一步提高用户的个性化需求,进一步提高用户体验。
可选地,所述搜索请求还包括所述第一搜索文本;以及,
所述多个POI搜索结果中还包括除所述M个POI搜索结果以外的与所述第一搜索文本匹配的N个POI搜索结果,N为大于或等于1的整数。
本申请实施例提供的信息点搜索的方法,由于第二搜索文本中的第一地址信息是客户端基于第一用户数据进行地址扩展得到的用户可能的一种搜索意图,是一种猜测行为,为了避免意图猜测失误,在该实施例中,通过在搜索请求中同时携带用户输入的第一搜索文本和进行地址扩展得到的第二搜索文本,保留的第一搜索文本反映了用户的原始意图,第二搜索文本反映了用户真实的搜索意图,这样,可以使得服务端尽可能反馈所有可能的搜索结果,以全面反映用户的所有意图,在可以实现个性化搜索的同时,提高搜索结果的全面性和准确性,进一步提高用户体验。
可选地,所述第二搜索文本是被加密的搜索文本。
本申请实施例提供的信息点搜索的方法,由于第二搜索文本中包括涉及用户隐私的第一地址信息,为了避免数据传输过程中用户隐私被泄露,通过将第二搜索文本进行加密,可避免数据传输过程中用户隐私被泄露,提高安全性。
第二方面,提供了一种信息点搜索的装置,其特征在于,包括:处理单元和收发单元,
所述处理单元用于,获取用户输入的第一搜索文本;
所述处理单元还用于,根据所述第一搜索文本和装置的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述第一 搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
所述收发单元用于,向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;
所述收发单元还用于,接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
可选地,所述处理单元具体用于:
根据所述第一搜索文本,从所述第一用户数据中筛选出候选POI文本集合,所述候选POI文本集合中的每个候选POI文本与所述第一搜索文本匹配且包括地址信息,所述每个候选POI文本中的地址信息所表示的地址是所述地址集合中的地址;
根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述候选POI文本集合中的地址信息所表示的地址相关。
可选地,所述候选POI集合包括多个候选POI文本;以及,所述处理单元具体用于:
根据所述每个候选POI文本对应的POI的有效时间和/或所述每个候选POI文本对应的POI的热度,从所述候选POI文本集合中筛选出最终的候选POI文本;
根据所述第一搜索文本和所述最终的候选POI文本,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述最终的候选POI文本中的地址信息所表示的地址相关。
可选地,所述处理单元还用于:
对每个POI搜索结果进行特征提取,确定所述每个POI搜索结果对应的至少一个特征值,所述每个POI搜索结果对应的至少一个特征值包括所述每个POI搜索结果对应的POI的历史点击次数,所述历史点击次数是基于所述装置的软件开发工具包SDK日志数据得到的,所述SDK日志数据记录有用户在各个APP中对POI的点击操作;
根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序。
可选地,所述处理单元具体用于:
根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定客户端排序;
根据所述客户端排序和服务端针对所述多个POI搜索结果进行排序得到的服务端排序,确定所述推荐排序,其中,所述推荐排序的第一个POI搜索结果是所述客户端排序的第一个POI搜索结果,所述推荐排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序是所述服务端排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序。
可选地,所述每个POI搜索结果对应的至少一个特征值还包括以下至少一项:
用于表示所述第二搜索文本与所述每个POI搜索结果对应的POI的相关度的特征值,或,
所述装置当前所处的地址与所述每个POI搜索结果对应的POI的距离,或,
所述每个POI搜索结果对应的POI的类型的特征值。
可选地,所述客户端排序是根据学习排序LTR模型得到的;以及,所述处理单元还用于:
根据用户对所述多个POI搜索结果中至少一个POI搜索结果的点击操作,更新所述SDK日志数据,以更新所述LTR模型。
可选地,所述搜索请求还包括所述第一搜索文本;以及,
所述多个POI搜索结果中还包括除所述M个POI搜索结果以外的与所述第一搜索文本匹配的N个POI搜索结果,N为大于或等于1的整数。
可选地,所述第二搜索文本是被加密的搜索文本。
第三方面,提供一种信息点搜索的装置,所述装置用于执行上述第一方面提供的方法。具体地,所述装置可以包括用于执行上述第一方面中任一方面中任一种可能实现方式的模块。
第四方面,提供一种信息点搜索的装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被装置执行时,使得所述装置实现上述第一方面或中任一种可能实现方式中的方法。
第六方面,提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得装置实现上述第一方面中任一种可能实现方式中的方法。
第七方面,提供一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1本申请实施例提供的搜索***的示意图。
图2是本申请实施例提供的POI搜索的方法的示意性流程图。
图3是本申请实施例提供的地图的GUI。
图4是本申请实施例提供的将短信中预定酒店的消息转化为半结构化的POI文本的示意图。
图5是本申请实施例提供的客户端根据第一搜索文本和第一用户数据确定第二搜索文本的示意性流程图。
图6是本申请实施例提供的客户端根据第一搜索文本和第一用户数据确定第二搜索文本的另一示意性流程图。
图7至图9是本申请实施例提供的地图的另一GUI。
图10是本申请实施例提供的POI搜索的***的示意图。
图11是本申请实施例提供的服务端的OS模块与TEE模块之间交互的示意图。
图12是本申请实施例提供的POI搜索的装置的示意性框图。
图13是本申请实施例提供的POI搜索的装置的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
现有的POI搜索中,客户端将用户输入的搜索文本发送给服务端,服务端对搜索文本分析,利用服务端的用户画像搜索到与该搜索文本匹配的搜索结果,对搜索结果进行排序后反馈给客户端。其中,用户画像是根据用户人口统计学信息、社交关系、偏好习惯和消费行为等信息而抽象出来的标签化画像,例如,某人的用户标签为吃货,服务端搜索排序时优先反馈餐厅类的POI。由于用户画像表示的是一类人的特点,并不能很好地反映与用户个人相关的信息,因此,在一些场景中,服务端反馈的搜索结果并不满足用户的个性化需求,影响用户体验。
示例性地,在一种场景中,用户常驻深圳,需要去杭州出差,预定了杭州滨江江陵路的一个亚朵酒店,收到平台发送的酒店预定成功的短信后,用户在出发之前,想要调用地图搜索在杭州预定好的亚朵酒店,在地图的搜索界面上,用户输入“亚朵”,由于用户当前位于深圳,所以,搜索界面上显示的都是深圳的亚朵酒店,实际上,用户希望服务端反馈的搜索结果包括杭州滨江江陵路的亚朵酒店。因此,上述搜索结果并不满足用户的实际需求,不满足用户的个性化需求,用户体验不高。
基于此,本申请实施例提供了一种POI搜索的方法,客户端根据用户输入的第一搜索文本和存储在客户端的第一用户数据,对该第一搜索文本进行地址扩展,得到扩展后的第二搜索文本,该第二搜索文本包括基于第一用户数据得到的地址信息,通过搜索请求将该第二搜索文本发送给服务端,服务端基于该第二搜索文本反馈搜索结果。由于该第二搜索文本是基于客户端的第一用户数据得到的包括地址信息的搜索文本,地址信息与用户个人息息相关,地址信息表示的地址大概率会代表用户期望搜索到的POI的地址,所以,基于该第二搜索文本得到的搜索结果大概率可以输出符合用户真实搜索意图的搜索结果,符合用户的实际需求,满足用户的个性化需求,可提高用户体验。此外,由于用户数据存储在客户端,避免了用户数据存储在服务端而造成用户的隐私得不到保护的问题。
需要说明的是,本申请实施例可以应用于任意可能的搜索领域,例如,可以应用于地图搜索领域。
图1本申请实施例提供的搜索***的示意图。该搜索***100包括客户端110和服务端120,客户端110可以通过有线或无线网络与服务端120连接。
客户端110具有请求搜索数据、数据存储、数据处理功能等。示例性地,客户端110可以是手机、平板电脑、电子阅读器、个人计算机、车载设备、可穿戴设备、智能家居设备等可以和用户直接交互的设备。
在本申请实施例中,客户端110中存储有用户数据,该用户数据包括两类数据。第一类数据记为第一用户数据,该第一用户数据是例如短信、备忘录等包括本地个人信息的应用数据。第二类数据可以理解为用户的行为数据,可以是软件开发工具包(software development kit,SDK)日志数据,主要记录用户在客户端上操作应用程序(application,APP)的使用情况,包括但不限于:用户几点几分打开了某个APP,什么时候关闭了该APP,该APP几点几分崩溃,用户点击该APP的频率,用户点击该APP某些内容的频率等。
在一些实施例中,客户端110可以基于第一用户数据对用户输入的第一搜索文本进行地址扩展,得到包括地址信息的第二搜索文本,以使得服务端基于该第二搜索文本反馈搜索结果。
在另一些实施例中,客户端110可以结合SDK日志数据对服务端反馈的搜索结果重新排序,以得到满足用户实际需求的具有更为准确排序的搜索结果。
服务端120具有数据搜索功能、数据存储功能、以及根据来自客户端110发送的搜索请求反馈搜索结果的功能。服务端120可以为计算设备或服务器等用于搜索数据的设备。示例性地,服务端120可以是运行在各地数据中心的远程服务器集群中的服务器。
以下,结合图2至图9,对本申请实施例的POI搜索的方法做详细说明。
图2是本申请实施例提供的POI搜索的方法200的示意性流程图。
在S210中,客户端获取用户输入的第一搜索文本。
其中,第一搜索文本是与POI相关的内容。示例性地,该第一搜索文本可以是POI的名称、POI的类型或POI的地址等中的至少一个。以杭州滨江江陵路的亚朵酒店作为一个POI为例,POI的名称是亚朵,POI的类型是酒店,POI的地址为杭州滨江江陵路、杭州滨江或杭州。
在该步骤中,示例性地,用户可以通过客户端的APP的搜索框输入第一搜索文本。例如,图3所示为地图的图形用户界面(graphical user interface,GUI),该GUI包括搜索框301,用户可以在搜索框301中手动输入或语音输入第一搜索文本(例如,亚朵)。
在S220中,客户端根据该第一搜索文本和客户端的第一用户数据,确定第二搜索文本,该第一用户数据包括地址集合,该第二搜索文本包括该第一搜索文本和第一地址信息,该第一地址信息表示至少一个地址,每个地址对应的信息点POI与该第一搜索文本匹配,该每个地址与该地址集合中的地址相关。
在该步骤中,目的是基于第一搜索文本和第一用户数据,对第一搜索文本进行地址扩展,得到包括第一地址信息和第一搜索文本的第二搜索文本,尽可能准确地揣摩出用户真实的搜索意图。
第一用户数据是存储在客户端的本地数据,该第一用户数据记录了用户大量的个人信息,基于第一用户数据可得到多个用于表示POI的POI文本,每个POI文本对应一个POI,每个POI文本包括对应的POI的以下至少一项:表示POI的来源的来源(source)信息(例如,短信、备忘录)、表示POI的名称(name)信息(例如,亚朵、香格里拉)、表示POI的类型的类型(type)信息(例如,酒店、餐厅、景点、商场)、表示POI的地址的地址(address)信息(例如,杭州滨江江陵路)、表示POI的有效时间的时间信息,表示POI的热度的热度信息。其中,POI的地址信息可以表示一个地址,POI的有效时间可以采用起始时间(start_time)和结束时间(end_time)表示,POI的热度信息可以反映出用户关注某个POI的热度,示例性地,POI的热度可以采用该POI在客户端中出现的频率(frequency)表示。
为了便于描述,将上述多个POI文本形成的集合记为POI文本集合。
在POI文本集合中,可能有一部分POI文本包括地址信息,另一部分POI文本中不包括地址信息,也有可能所有的POI文本都包括地址信息,所以,POI文本集合中的至少部分POI文本中的每个POI文本包括一个地址信息,该至少部分POI文本中所有的地址信息所表示的地址可以形成为上述地址集合中的地址,其中,该至少部分POI文本包括POI文本集合中的部分或全部POI文本。例如,POI文本集合包括5个POI文本,其中的3个POI文本包括地址信息,其余的2个POI文本不包括地址信息,所以,POI文本集合的部分POI文本包括地址信息,3个POI文本的所有地址信息是3个地址信息,该3个地 址信息所表示的地址形成为地址集合中的地址。再例如,POI文本集合包括8个POI文本,每个POI文本中都包括地址信息,所以,POI文本集合中的全部POI文本包括地址信息,总共有8个地址信息,该8个地址信息所表示的地址形成为该地址集合中的地址。
示例性地,第一用户数据可以包括例如短信、备忘录等包括本地个人信息的应用数据。例如,用户的备忘录中记录了用户近期的行程安排,该行程安排是第一用户数据的数据。再例如,短信中记录的用户出行中订酒店、订交通工具等的内容是第一用户数据的数据。
在一些实施例中,客户端可以对第一用户数据过滤、抽取,得到多个POI文本。
在一示例中,客户端对第一用户数据过滤时,可以通过关键字或手机号段等方式过滤掉一些与POI无关的无用信息。例如,在短信中,过滤掉银行通知信息和广告信息。
在一示例中,客户端可以采用自然语言处理(natural language processing,NLP)技术对过滤后的第一用户数据进行抽取得到多个POI文本。
为了便于处理数据,客户端可以采用半结构化数据表示POI文本,采用半结构化数据表示的POI文本可以称为半结构化的POI文本。图4是本申请实施例提供的将短信中预定酒店的消息转化为半结构化的POI文本的示意图。图4中的(a)是短信内容,图4中的(b)半结构化的POI文本,其中,source信息表示文本来源是短信,name信息表示POI的名称是“亚朵酒店”,type信息表示POI的类型是“酒店”,address信息表示POI的详细地址是“杭州滨江”,time信息包括start_time和end_time,start_time表示有效时间的起始时间是“2021.4.3”,end_time表示有效时间的结束时间是“2021.4.5”,frequency信息表示POI在客户端本地出现的频率是“3”,表示POI的热度。
在本申请实施例中,每个地址对应的POI表示具备该地址的POI,或者,POI的地址即为对应于该POI的地址。
每个地址对应的POI与第一搜索文本匹配,可以理解为,每个地址对应的POI的相关内容与第一搜索文本具有相关性。示例性地,POI的相关内容与第一搜索文本具有相关性可以采用POI的相关内容与第一搜索文的内容相同或部分相同表示,POI的相关内容可以是POI的类型、POI的名称或POI的地址中的至少一个。例如,第一搜索文本是“亚朵”,第一地址信息所表示的地址则为与“亚朵”匹配的亚朵酒店的地址,“亚朵”为POI的名称,第一搜索文本的内容与POI的名称相同,具有相关性。
地址集合中的地址表示的是地址集合中的至少部分地址,该至少部分地址是该地址集合中的部分或全部地址。
第一地址信息所表示的每个地址与地址集合中的地址相关,有如下两种解释。
第一种解释:第一地址信息所表示的每个地址是地址集合中的地址。例如,地址集合包括4个地址,其中的1个地址为“西安市高新区丈八五路”,第一地址信息表示1个地址,该第一地址信息所表示的地址也为“西安市高新区丈八五路”,该第一地址信息所表示的地址是地址集合中的地址。
第二种解释:该第一地址信息所表示的每个地址是基于地址集合中与该每个地址对应的地址得到的,其中,地址集合中与该每个地址对应的地址是地址集合中与该每个地址具有相同区域范围的地址。为了便于描述,将“地址集合中与该每个地址对应的地址”简述为“地址集合中对应的地址”。示例性地,该第一地址信息所表示的每个地址的区域范围大于该地址集合中对应的地址的区域范围。例如,地址集合包括4个地址,其中的2个地址 分别为“西安市高新区丈八五路”、“西安市雁塔区崇业路”,第一地址信息表示2个地址,其中的一个地址为“西安市高新区”,“西安市高新区”的区域范围大于“西安市高新区丈八五路”的区域范围,该第一地址信息的另一个地址为“西安市雁塔区”,“西安市雁塔区”的区域范围大于“西安市雁塔区崇业路”的区域范围。
在本申请实施例中,客户端在确定第二搜索文本的过程中,可以根据第一搜索文本和第一用户数据进行第一次筛选,得到与第一搜索文本匹配的候选POI文本,若第一次筛选后的候选POI文本的数量不多,可根据第一次筛选后得到的候选POI文本确定第二搜索文本,若第一次筛选后的候选POI文本的数量较多,为了减轻服务端的搜索负荷,可进行第二次筛选,得到更少的候选POI文本,从而,基于第二次筛选后的候选POI文本确定第二搜索文本。
下面,基于一次筛选和二次筛选,分别对客户端根据第一搜索文本和第一用户数据确定第二搜索文本的两种方式做详细说明。
方式1:一次筛选
图5是本申请实施例提供的客户端根据第一搜索文本和第一用户数据确定第二搜索文本的示意性流程图。
在S221中,客户端根据该第一搜索文本,从该第一用户数据中筛选出候选POI文本集合,该候选POI文本集合中的每个候选POI文本与该第一搜索文本匹配且包括地址信息,该每个候选POI文本中的地址信息表示的地址是该地址集合中的地址。
如前所述,客户端基于第一用户数据可得到POI文本集合,客户端可以将第一搜索文本与POI文本集合中的POI文本进行文本匹配,从POI文本集合中筛选出包括地址信息且与该第一搜索文本匹配的至少一个候选POI文本,该至少一个候选POI文本形成候选POI文本集合。
其中,候选POI文本集合中的每个候选POI文本与该第一搜索文本匹配,每个候选POI文本包括一个地址信息,每个候选POI文本的地址信息表示一个地址。
应理解,在该过程中,客户端已经过滤掉了不存在地址信息的POI文本,筛选出的每个候选POI文本都包括地址信息。
还应理解,本申请实施例描述的候选POI文本与第一搜索文本匹配,表示的是,候选POI文本中包括与第一搜索文本的部分或全部内容相同的内容。例如,第一搜索文本是“亚朵”,筛选出的候选POI文本包括“亚朵”。
在候选POI文本集合中的候选POI文本的数量大于1时,各个候选POI文本对应的POI的其他信息不做任何限定。继续以第一搜索文本是“亚朵”为例,各个候选POI文本可以是不同地址的“亚朵”,例如,各个候选POI文本可以是杭州不同区域的亚朵酒店、西安不同区域的亚朵酒店等。
假设,POI文本集合包括4个POI文本,该4个POI文本分别如下所示:
POI文本1:亚朵、酒店、杭州市xxx1、有效时间1、频率为3;
POI文本2:亚朵、酒店、杭州市xxx2、有效时间2、频率为2;
POI文本3:七天、酒店、深圳市xxx3、有效时间3、频率为3;
POI文本4:香格里拉、酒店、深圳市xxx4、有效时间4、频率为3;
第一搜索文本是“亚朵”,基于4个POI文本和第一搜索文本得到2个候选POI文本, 2个候选POI文本为POI文本1和POI文本2。
在本申请实施例中,示例性地,客户端可以包括索引模块,索引模块包括对应于各个类型的POI的索引库,每个类型的索引库中存储有对应该类型的POI文本。例如,索引模块中包括类型为“酒店”、“景点”、“餐饮”的索引库,基于第一用户数据得到的多个POI文本对应3种类型的POI,将对应于“酒店”的POI文本存储至类型为“酒店”的索引库中,将对应于“景点”的POI文本存储至类型为“景点”的索引库中,将对应于“餐饮”的POI文本存储至类型为“餐饮”的索引库中。
基于此,客户端基于第一搜索文本,可以在与第一搜索文本匹配的POI的类型对应的索引库中查找与第一搜索文本匹配的候选POI文本。例如,第一搜索文本为“亚朵”,类型为“酒店”,客户端在类型为“酒店”的索引库中查找与“亚朵”匹配的候选POI文本。
在S222中,客户端根据该第一搜索文本和该候选POI文本集合,确定该第二搜索文本,该第一地址信息所表示的每个地址与该候选POI文本集合中的地址信息所表示的地址相关。
在该步骤中,客户端根据候选POI文本集合中的地址信息确定第一地址信息,根据该第一地址信息和该第一搜索文本,确定第二搜索文本。示例性地,客户端可以将该第一地址信息和该第一搜索文本组合在一起,形成第二搜索文本。
候选POI文本集合中的地址信息表示的是候选POI文本集合中的至少部分地址信息,该至少部分地址信息是该候选POI文本集合中所有地址信息的部分或全部地址信息,该至少部分地址信息中的每个地址信息是一个候选POI文本中的地址信息。应理解,候选POI文本集合中所有地址信息表示的是候选POI文本集合中各个候POI文本的地址信息的总和。例如,候选POI文本集合包括3个候选POI文本,3个候选POI文本包括3个地址信息,该3个地址信息即为候选POI文本集合中的所有地址信息。
第一地址信息所表示的每个地址与该候选POI文本集合中的地址信息所表示的地址相关,可以有两种解释。第一种解释:第一地址信息所表示的每个地址是候选POI文本集合中的地址信息所表示的地址。第二种解释:第一地址信息所表示的每个地址是基于该候选POI文本集合的地址信息所表示的地址中与该每个地址对应的地址得到的,其中,该候选POI文本集合的地址信息所表示的地址中与该每个地址对应的地址是候选POI文本集合的地址信息所表示的地址中与该每个地址具有相同区域范围的地址。关于这两种解释的具体举例描述可参考上文关于“第一地址信息所表示的每个地址与地址集合中的地址相关”的相关描述,将上文中的“地址集合中的地址”替换为“候选POI文本集合中的地址信息所表示的地址”即可,其余不再赘述。
例如,第一搜索文本是“亚朵”,候选POI文本集合中包括2个候选POI文本,一个候选POI文本的地址信息表示的地址是“杭州市滨江区江陵路”,另一个候选POI文本的地址信息表示的地址是“杭州市富阳区”,那么,第二搜索文本可以表示为:亚朵、杭州滨江、杭州富阳,或者,第二搜索文本可以表示为:亚朵、杭州滨江江陵、杭州富阳。
应理解,候选POI文本的数量越少越好,在候选POI文本的数量较少或者很少时,对POI文本集合进行一次筛选就可确定第二搜索文本。这样,可以减少客户端由于额外进行多次筛选造成的较长的处理时延。
方式2:二次筛选
在候选POI文本集合的数量较多时,可以对候选POI文本集合进一步筛选,减少候选POI文本的数量,以得到简洁有效的地址信息,从而减少服务端的搜索负荷。
图6是本申请实施例提供的客户端根据第一搜索文本和第一用户数据确定第二搜索文本的另一示意性流程图。
在S221中,客户端根据该第一搜索文本,从该第一用户数据中筛选出候选POI文本集合,该候选POI文本集合中的每个候选POI文本与该第一搜索文本匹配且包括地址信息,该每个候选POI文本中的地址信息表示的地址是该地址集合中的地址。
应理解,该步骤是二次筛选的第一次筛选过程。
关于步骤S221的具体描述可参考方式1中关于步骤S221的相关描述,不再赘述。
在S2221中,客户端根据该每个候选POI文本对应的POI的有效时间和/或该每个候选POI文本对应的POI的热度,从该候选POI文本集合中筛选出最终的候选POI文本。
应理解,该步骤是二次筛选中的第二次筛选过程。
最终的候选POI文本包括至少一个候选POI文本。理想情况下,该最终的候选POI文本包括一个候选POI文本,或者说,最终的候选POI文本的数量为1。
应理解,每个候选POI文本对应的POI的有效时间和/或每个候选POI文本对应的POI的热度,有三种情况的关系:单独存在每个候选POI文本对应的POI的有效时间的情况、单独存在每个候选POI文本对应的POI的热度的情况,同时存在每个候选POI文本对应的POI的有效时间和每个候选POI文本对应的POI的热度的情况。
在该步骤中,客户端可以根据POI的有效时间、POI的热度、或、POI的有效时间和POI的热度从候选POI文本集合中筛选出最终的候选POI文本。
在一些实施例中,客户端根据每个候选POI文本对应的POI的有效时间,从候选POI文本集合中筛选出最终的候选POI文本。示例性地,客户端可以将第一搜索文本的搜索时间和每个候选POI文本对应的POI的有效时间比较,若该搜索时间在该POI的有效时间内,意味着该POI可能是有效的POI,则保留该POI对应的候选POI文本,若该搜索时间在该POI的有效时间以外,意味着该POI可能是无效的POI,则放弃该POI对应的候选POI文本。客户端最终筛选出满足上述条件的最终的候选POI文本。
例如,候选POI文本集合包括2个候选POI文本,分别是:POI文本1:亚朵、酒店、杭州市xxx1、有效时间1(2021.4.3-4.5)、频率为3;POI文本2:亚朵、酒店、杭州市xxx2、有效时间2(2020.10.5-10.9)、频率为2;第一搜索文本的搜索时间是2021.4.3,该搜索时间在POI文本1对应的POI的有效时间(2021.4.3-4.5)内,所以,从候选POI文本集合中筛选出POI文本1,最终的候选POI文本为POI文本1。
在另一些实施例中,客户端根据每个候选POI文本对应的POI的热度,从候选POI文本集合中筛选出最终的候选POI文本。示例性地,客户端将各个候选POI文本对应的POI的热度进行比较,筛选出热度靠前的POI对应的候选POI文本,以得到最终的候选POI文本。例如,客户端将热度最高的POI对应的候选POI文本作为最终的候选POI文本。
在一示例中,候选POI文本对应的POI的热度可以包括:该候选POI文本对应的POI在客户端中出现的频率。应理解,POI的频率越高,表示用户关注该POI的热度越高,反之,POI的频率越低,表示用户关注该POI的热度越低。
例如,候选POI文本集合包括2个候选POI文本,分别是:POI文本1:亚朵、酒店、 杭州市xxx1、有效时间1、频率为3;POI文本2:亚朵、酒店、杭州市xxx2、有效时间2、频率为2;POI文本1对应的POI的频率“3”大于POI文本2对应的POI的频率“2”,意味着POI文本1对应的POI的热度高,所以,从候选POI文本集合中筛选出POI文本1最终的候选POI文本为POI文本1。
在另一些实施例中,客户端可以根据每个候选POI文本对应的POI的有效时间和每个候选POI文本对应的POI的热度,从候选POI文本集合中筛选出最终的候选POI文本。
在一示例中,在第一搜索文本的搜索时间在候选POI文本集合中部分候选POI文本对应的POI的有效时间内的情况下,客户端可以将第一搜索文本的搜索时间在POI的有效时间内且POI的热度较高的候选POI文本作为最终的候选POI文本。
在另一示例中,在第一搜索文本的搜索时间都在所有候选POI文本对应的POI的有效时间内或都不在所有候选POI文本对应的POI的有效时间内的情况下,由于无法有效筛选出最终的候选POI文本,可以将POI的热度较高的候选POI文本作为最终的候选POI文本。
在S2222中,客户端根据该第一搜索文本和该最终的候选POI文本,确定该第二搜索文本,该第一地址信息所表示的每个地址与该最终的候选POI文本中的地址信息所表示的地址相关。
在该步骤中,客户端可以根据最终的候选POI文本的地址信息确定第一地址信息,根据该第一地址信息和该第一搜索文本,确定第二搜索文本。示例性地,客户端可以将该第一地址信息和该第一搜索文本组合在一起,形成第二搜索文本。
最终的候选POI文本的地址信息表示的是最终的候选POI文本中的至少部分地址信息,该至少部分地址信息是该最终的候选POI文本中所有地址信息的部分或全部地址信息,该至少部分地址信息中的每个地址信息是一个候选POI文本中的地址信息。应理解,最终的候选POI文本中所有地址信息表示的是最终的候选POI文本中各个候POI文本的地址信息的总和。例如,最终的候选POI文本集合包括2个候选POI文本,2个候选POI文本包括2个地址信息,该2个地址信息即为最终的候选POI文本中的所有地址信息。
该第一地址信息所表示的每个地址与该最终的候选POI文本中的地址信息所表示的地址相关,可以有两种解释,具体描述可参考上文关于“第一地址信息所表示的每个地址与该候选POI文本集合中的地址信息所表示的地址相关”的相关描述,将上文的“候选POI文本集合”替换为“最终的候选POI文本”即可,其余不再赘述。
需要说明的是,在最终的候选POI文本仅包括一个候选POI文本的情况下,最终的候选POI文本的地址信息即为该候选POI文本的地址信息,客户端可以将该候选POI文本的地址信息作为第一地址信息,或者,客户端基于该候选POI文本的地址信息得到第一地址信息,将第一地址信息和第一搜索文本进行组合,得到第二搜索文本。例如,第一搜索文本是“亚朵”,最终的候选POI文本仅包括1个候选POI文本,该候选POI文本的地址信息表示的地址是“杭州市滨江区江陵路”,那么,第一地址信息表示的地址可以是“杭州滨江”,第二搜索文本表示为:亚朵、杭州滨江,或者,第一地址信息表示的地址可以是“杭州滨江江陵”,第二搜索文本表示为:亚朵、杭州滨江江陵。
在S230中,客户端向服务端发送搜索请求,该搜索请求包括该第二搜索文本。
在一些实施例中,该第二搜索文本是被加密的搜索文本。
示例性地,为了更好地保护用户隐私,客户端可将第二搜索文本保存在客户端内的可信执行环境(trusted execution environment,TEE)中,且在TEE中对第二搜索文本进行加密。由于第二搜索文本中包括涉及用户隐私的第一地址信息,为了避免数据传输过程中用户隐私被泄露,通过将第二搜索文本进行加密,可避免数据传输过程中用户隐私被泄露,提高安全性。
在另一些实施例中,该搜索请求包括第一搜索文本和第二搜索文本。示例性地,第一搜索文本和第二搜索文本是被加密的搜索文本。
示例性地,为了更好地保护用户隐私,客户端可将第一搜索文本和第二搜索文本保存至客户端的TEE内,且在TEE中对第一搜索文本和第二搜索文本进行加密。
由于第二搜索文本中的第一地址信息是客户端基于第一用户数据进行地址扩展得到的用户可能的一种搜索意图,是一种猜测行为,为了避免意图猜测失误,通过在搜索请求中同时携带用户输入的第一搜索文本和进行地址扩展得到的第二搜索文本,保留的第一搜索文本反映了用户的原始意图,第二搜索文本反映了用户真实的搜索意图,这样,可以使得服务端尽可能反馈所有可能的搜索结果,以全面反映用户的所有意图,在可以实现个性化搜索的同时,提高搜索结果的全面性和准确性,进一步提高用户体验。
在S240中,服务端响应于该搜索请求,向客户端发送多个POI搜索结果,该多个POI搜索结果包括与该第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
对应地,客户端接收该多个POI搜索结果。
在该步骤中,服务端基于搜索请求,从数据库中搜索满足搜索请求的POI搜索结果,其中,满足搜索请求的POI搜索结果表示的是与搜索请求中的搜索文本匹配的POI搜索结果。
在一些实施例中,搜索请求包括第二搜索文本,对应地,多个POI搜索结果包括与该第二搜索文本匹配的M个POI搜索结果。
在一示例中,若第二搜索文本被加密,则服务端解密该第二搜索文本,在数据库中搜索与该第二搜索文本匹配的POI搜索结果。
示例性地,为了使得第二搜索文本不被泄露,以更好地保护用户隐私,服务端可将第二搜索文本保存在TEE中,且在TEE中解密该第二搜索文本。应理解,与第二搜索文本匹配的POI搜索结果,表示该第二搜索文本与该POI搜索结果匹配。示例性地,第二搜索文本与POI搜索结果匹配,可以理解为,该第二搜索文本与该POI搜索结果具有相关性,例如,第二搜索文本与POI搜索结果具有相关性可以通过该第二搜索文本的内容与该POI搜索结果对应的POI的相关内容相同或部分相同表示。例如,以第二搜索文本为“亚朵、杭州滨江”为例,与“亚朵、杭州滨江”匹配的POI搜索结果对应的POI是位于杭州滨江区域内的亚朵酒店。
继续以上文所示的图3和图4为例,假设,用户处在深圳,预定了图4所示的杭州滨江江陵路的亚朵酒店,且收到了表示酒店预定成功的短信。用户在图3所示的GUI中的搜索框301中输入第一搜索文本“亚朵”,客户端基于该第一搜索文本和第一用户数据(包括杭州酒店预定成功的短信)得到的第二搜索文本为“亚朵、杭州滨江”,通过搜索请求将该第二搜索文本“亚朵、杭州滨江”发送给服务端,服务端反馈的与第二搜索文本“亚朵、杭州滨江”匹配的POI搜索结果如图3的结果列表框302所示,结果列表框302包括7(即, M=7)个POI搜索结果,一个POI搜索结果对应一个POI,每个POI搜索结果对应的POI都是杭州滨江的亚朵酒店(为了简洁,图中仅示出了POI2的具体地址),其中,POI2是用户期望搜索到的酒店。可以看出,相比于如图1所示的现有技术基于第一搜索文本“亚朵”反馈的POI搜索结果,本申请实施例反馈的POI搜索结果能更好地反映用户真实的行为意图,符合用户的实际需求,满足用户的个性化,提高用户体验。
在另一些实施例中,搜索请求包括第一搜索文本和第二搜索文本,由于第二搜索文本中包括第一搜索文本,所以,与第二搜索文本匹配的搜索结果也必然与第一搜索文本匹配,所以,该多个POI搜索结果都与第一搜索文本匹配,其中的M个POI搜索文本也与第二搜索文本匹配,其余的N个搜索文本仅与第一搜索文本匹配。因此,该多个POI搜索文本包括:M个POI搜索结果、除M个POI搜索结果以外的与该第一搜索文本匹配的N个POI搜索结果。
在一示例中,若第一搜索文本和第二搜索文本被加密,则服务端解密该第一搜索文本和该第二搜索文本,在数据库中搜索与该第一搜索文本匹配的POI搜索结果和与该第二搜索文本匹配的POI搜索结果。
示例性地,为了使得第二搜索文本和第一搜索文本不被泄露,以更好地保护用户隐私,服务端可将第一搜索文本和第二搜索文本保存在TEE中,且在TEE中解密该第一搜索文本和该第二搜索文本。
应理解,在本申请实施例中,与第一搜索文本匹配的POI搜索结果,表示该第一搜索文本与该POI搜索结果匹配,关于“该第一搜索文本与该POI搜索结果匹配”的具体描述可参考上文中关于“该第二搜索文本与该POI搜索结果匹配”的相关描述,不再赘述。
图7是本申请实施例提供的地图的另一GUI。继续假设用户处在深圳,预定了杭州滨江江陵路的亚朵酒店,且收到了表示酒店预定成功的短信,用户在图7所示的GUI中的搜索框401中输入第一搜索文本“亚朵”,客户端基于该第一搜索文本和第一用户数据(包括杭州酒店预定成功的短信)得到的第二搜索文本为“亚朵、杭州滨江”,通过搜索请求将该第一搜索文本“亚朵”和该第二搜索文本“亚朵、杭州滨江”发送给服务端,服务端反馈的POI搜索结果如图7的结果列表框402所示,结果列表框402包括7个POI搜索结果,一个POI搜索结果对应一个POI,其中前5(即,M=5)个POI搜索结果与第二搜索文本和第一搜索文本都匹配,前5个POI搜索结果对应的POI是POI1~POI5,表示的都是杭州滨江的亚朵酒店(为了简洁,图中仅示出了POI2的具体地址),其中的后2(即,N=2)个POI搜索结果是仅与第一搜索文本“亚朵”匹配的POI搜索结果,表示的都是深圳的亚朵酒店。
应理解,在服务端基于搜索请求反馈POI搜索结果的过程中,服务端可以为该多个POI搜索文本进行排序,向客户端反馈具有排序的多个POI搜索结果,如图3或图7所示,结果列表框中按照排序显示出7个POI搜索结果。
一般情况下,服务端可对每个POI搜索结果进行特征提取,得到特征值,将特征值作为排序模型的输入,通过排序模型得到对应于每个POI搜索结果的结果值,根据每个POI搜索结果对应的结果值对该多个POI搜索结果进行排序,得到具有排序的多个POI搜索结果,具体实现过程可参考现有的排序技术。应理解,服务端采用的排序模型可以是各种能够进行排序的排序模型,各个排序模型的输入各有不同,本申请实施例不做任何限定。
需要说明的是,图3和图7所示的多个POI搜索结果的排序仅为示意性说明,不应对其构成限定,只要多个POI搜索结果中存在与第二搜索文本匹配的POI搜索结果即可。例如,以图4为例,POI2对应的POI搜索结果也可能位于排序中的第一个POI搜索结果。
综上,本申请实施例提供的POI搜索的方法,客户端根据用户输入的第一搜索文本和客户端中存储的第一用户数据,对该第一搜索文本进行地址扩展,得到包括第一搜索文本和基于第一用户数据得到的第一地址信息的第二搜索文本,通过搜索请求将该第二搜索文本发送给服务端,服务端基于该第二搜索文本反馈多个POI搜索结果。由于该第二搜索文本是基于客户端的第一用户数据得到的包括第一地址信息的搜索文本,第一地址信息与用户个人息息相关,第一地址信息表示的地址大概率会代表用户期望搜索到的POI的地址,因此,服务端基于该第二搜索文本反馈的POI搜索结果中大概率会包括用户感兴趣或期望的POI的搜索结果,符合用户真实的搜索意图,满足用户的个性化需求,提高了用户体验,同时提升了搜索性能。此外,由于第一用户数据存储在用户个人的客户端,尽可能避免了用户隐私泄露的问题。
如前所述,服务端会反馈具有排序的多个POI搜索结果,服务端在排序过程中,采用的数据都仅限于用户当前使用的APP对应的服务端上的数据,无法实现不同APP对应的服务端之间的数据共享,例如,应用A对应的服务端无法使用应用B对应的服务端中的数据,所以,虽然服务端反馈的POI搜索结果会大概率包括用户期望的POI的搜索结果,但POI搜索结果的排序可能不是最优的,不能很好地为用户提供个性化的排序。例如,用户当前正在使用地图,地图对应的服务端在对POI搜索结果进行排序时,无法使用例如淘宝、美团等其他应用对应的服务端中的数据,地图对应的服务端反馈的POI搜索结果的排序可能不是最优的。
对于用户来说,期望自己感兴趣的POI的搜索结果在排序中靠前,理想情况下,期望自己感兴趣的POI的搜索结果位于排序中的首位。例如,以图3所示的多个POI搜索结果为例,用户期望对应于POI2(杭州滨江江陵路的亚朵酒店)的POI搜索结果是排序中的第一个POI搜索结果,但实际上对应于POI2的POI搜索结果是排序中的第二个POI搜索结果,对于用户个人而言,该排序的个性化特征不足,并不是最优的排序。
因此,本申请实施例提出,可以进一步根据表示用户行为的SDK日志数据得到关于POI的历史点击次数,对该多个POI搜索结果重新排序,得到具有较为准确排序的POI搜索结果,该排序更具带有用户个人风格的个性化特征,可以很好地满足用户需求,进一步提高用户体验。
继续参考图2,在S250中,客户端对每个POI搜索结果进行特征提取,确定该每个POI搜索结果对应的至少一个特征值,该至少一个特征值包括该每个POI搜索结果对应的POI的历史点击次数,该历史点击次数是基于该客户端的SDK日志数据得到的,该SDK日志数据记录有用户在各个APP中对POI的点击操作。
SDK日志数据是一种记录用户行为的数据,主要记录用户操作APP的使用情况,包括用户在各个APP中对POI的点击操作。实现中,每个APP对应有一个SDK日志数据,为了便于描述,本申请实施例将每个APP对应的SDK日志数据记为子SDK日志数据,本申请实施例的SDK日志数据包括各个APP对应的子SDK日志数据,一个子SDK日志数据对应一个APP。
对于任一个APP,用户若点击显示在某个APP上的某个POI,客户端会将用户对该POI的点击操作记录在该APP对应的子SDK日志数据中。由于SDK日志数据包括各个APP对应的子SDK日志数据,所以,对于某个POI,客户端可以通过该SDK日志数据中用户在各个APP中对该POI的点击操作,得到用户对该POI的历史点击次数。因此,针对本申请实施例的每个POI搜索结果对应的POI,用户可通过该SDK日志数据中用户在各个APP中对每个POI搜索结果对应的POI的点击操作,得到每个POI搜索结果对应的POI的历史点击次数。
应理解,每个POI搜索结果对应的POI的历史点击次数是用户在各个APP中对每个POI搜索结果对应的POI的点击次数的总和。例如,以某个POI搜索结果对应的POI1为例,SDK日志数据记录了用户在APP1中对POI1进行了2次点击操作,用户在APP2中对POI1进行了1次点击操作,用户在APP3中POI1进行了2次点击操作,其余APP的SDK日志数据中不存在用户点击POI1的操作,因此,客户端该SDK日志数据得到用户在APP1~APP3中对POI1的历史点击次数为5。
需要说明的是,若一个POI被用户点击的次数越多,则说明用户对该POI的关注度越高,该POI就越重要,所以,基于历史点击次数对多个POI搜索结果进行排序,可以得到更具用户个性化的排序。更重要的是,相比于服务端只能获取某个APP中关于POI的点击次数,本申请实施例通过记录有各个APP对POI的点击操作的SDK日志数据得到针对POI的所有的历史点击次数,实现了各个APP之间的数据共享,可以得到更具用户个性化的排序,满足用户的个性化需求,而且,在该排序中,用户期望的POI搜索结果大概率是多个POI搜索结果中的第一个POI搜索结果,可以使得用户快速看到自己期望的POI搜索结果,进一步提高用户体验。
在一些实施例中,每个POI搜索结果对应的至少一个特征值包括一个特征值,该特征值为该每个POI搜索结果对应的POI的历史点击次数。
在另一些实施例中,每个POI搜索结果对应的至少一个特征值是多个特征值,不仅包括每个POI搜索结果对应的POI的历史点击次数,还包括以下至少一项:
用于表示该第二搜索文本与该每个POI搜索结果对应的POI的相关度的特征值,或,
该客户端当前所处的地址与该每个POI搜索结果对应的POI的距离,或,
该每个POI搜索结果对应的POI的类型的特征值。
针对用于表示该第二搜索文本与该每个POI搜索结果对应的POI的相关度的特征值,示例性地,客户端可以根据第二搜索文本和每个POI搜索结果得到用于表示第二搜索文本与每个POI搜索结果对应的POI的相关度的特征值。
在一示例中,用于表示第二搜索文本与每个POI搜索结果对应的POI的相关度的特征值可以包括:第二搜索文本与每个POI搜索结果对应的POI的名称(name)的最长公共子串长度,和/或,第二搜索文本与每个POI搜索结果对应的POI的地址(address)的最长公共子串长度。例如,若第二搜索文本为“亚朵、杭州滨江”,某个POI搜索结果对应的POI的名称为“亚朵”、地址为“杭州滨江江陵”,第二搜索文本与该POI的名称的最长公共子串长度为2,第二搜索文本与该POI的地址的最长公共子串长度为4。
针对客户端当前所处的地址与每个POI搜索结果对应的POI的距离,应理解,客户端当前所处的地址也可以理解为手持该客户端的用户当前所处的地址。还应理解,客户端当 前所处的地址与每个POI搜索结果对应的POI的距离,表示的是,客户端当前所处的地址与每个POI搜索结果对应的POI的地址的距离。
针对每个POI搜索结果对应的POI的类型的特征值,示例性地,客户端可以根据每个POI搜索结果对应的POI的类型与第二搜索文本对应的POI的类型是否相同来确定该每个POI搜索结果对应的POI的类型的特征值。
在一示例中,若每个POI搜索结果对应的POI的类型与第二搜索文本对应的POI的类型相同时,该POI搜索结果对应的POI的类型的特征值可以为1,若每个POI搜索结果对应的POI的类型与第二搜索文本对应的POI的类型不同,则该POI搜索结果对应的POI的类型的特征值可以为0。例如,第二搜索文本为“亚朵、杭州滨江”,POI的类型为酒店,若某个POI搜索结果对应的POI的类型为餐饮,则该POI搜索结果对应的POI的类型的特征值为0,若某个POI搜索结果对应的POI的类型为酒店,则该POI搜索结果对应的POI的类型的特征值为1。
在S260中,客户端根据该每个POI搜索结果对应的至少一个特征值,对该多个POI搜索结果进行排序,确定推荐排序。
这样,客户端可以按照该推荐排序为用户展示该多个POI搜索结果。
为了便于描述客户端根据每个POI搜索结果对应的至少一个特征值确定推荐排序的过程,本申请实施例还定义了除推荐排序以外的两个排序,分别记为服务端排序和客户端排序。服务端排序表示服务端对多个POI搜索结果进行排序得到的排序结果。客户端排序表示客户端对多个POI搜索结果进行排序得到的排序结果。由于客户端排序采用了基于SDK日志数据中记录的各个APP中对POI的点击操作得到的关于POI的历史点击次数,而该各个APP的点击操作是服务端无法利用的,所以,服务端排序与客户端排序的排序结果大概率不同,但是,在一些实际特例中,客户端排序与服务端排序的排序结果也可能相同。
在客户端根据至少一个特征值确定推荐排序的过程中,在一种方式中,可以将客户端排序作为推荐排序,在另一种方式中,可以综合考虑客户端排序和服务端排序,得到推荐排序。
下面,基于上述两种方式,对客户端确定推荐排序的过程做说明。
方式A、推荐排序是客户端排序
在该方式中,客户端根据每个POI搜索结果对应的至少一个特征值,确定客户端推荐,将客户端推荐作为最终的推荐排序展示给用户。
情况1、每个POI搜索结果对应的至少一个特征值包括多个特征值,该多个特征值包括每个POI搜索结果对应的POI的历史点击次数和以下至少一项:用于表示该第二搜索文本与该每个POI搜索结果对应的POI的相关度的特征值,或,该客户端当前所处的地址与该每个POI搜索结果对应的POI的距离,或,该每个POI搜索结果对应的POI的类型的特征值。
在该情况中,客户端可以采用一个排序模型,将每个POI搜索结果对应的多个特征值作为排序模型的输入,该多个特征值经过排序模型的计算,得到一个输出结果,客户端根据每个POI搜索结果对应的输出结果,对多个POI搜索结果进行排序,得到客户端排序。示例性地,排序过程中,按照输出结果从高到低的顺序进行排序,得到客户端排序。
示例性地,若存在输出结果相同的POI搜索结果,可以进一步按照字典序进行排序。例如,POI搜索结果1和POI搜索结果2的输出结果相同,POI搜索结果1对应的POI1为“天安门”,POI搜索结果2对应的POI2为“故宫”,“天安门”的“天”的首字母为“t”,“故宫”的“故”的首字母为“g”,“g”在“t”之前,所以,“故宫”的排序位于“天安门”之前。
为了便于描述,每个POI搜索结果对应的POI的历史点击次数采用x 1i表示,第二搜索文本与POI的名称的最长公共子字符串长度采用x 2i表示,第二搜索文本与POI的地址的最长公共子字符串长度为x 3i表示,客户端当前所处的地址与POI的距离为x 4i表示,POI的类型的特征值为x 5i表示,基于上述x 1i、x 2i、x 3i、x 4i和x 5i得到的输出结果采用y i表示,i表示POI搜索结果的编号。
假设,多个POI搜索结果包括4个POI搜索结果,记为POI搜索结果1、POI搜索结果2、POI搜索结果3、POI搜索结果4,其中,
POI搜索结果1对应的多个特征值是:x 11、x 21、x 31、x 41和x 51,输出结果是y 1
POI搜索结果2对应的多个特征值是:x 12、x 22、x 32、x 42和x 52,输出结果是y 2
POI搜索结果3对应的多个特征值是:x 13、x 23、x 33、x 43和x 53,输出结果是y 3
POI搜索结果4对应的多个特征值是:x 14、x 24、x 34、x 44和x 54,输出结果是y 4
对于上述4个输出结果,y 1>y 2>y 3>y 4,所以,推荐排序依次按照POI搜索结果1、POI搜索结果2、POI搜索结果3、POI搜索结果4的顺序进行排序。
在一些实施例中,客户端在通过排序模型对多个POI搜索结果进行排序的过程中,每个特征值按照重要程度对应一个权重,重要程度越高,权重越高,在客户端进行排序的过程中,主要利用了POI的历史点击次数,因此,POI的历史点击次数的重要程度可以最高,权重也最高。
示例性地,采用简化的公式,输出结果、特征值和权重的关系可以是:y i=x 1i*a 1、x 2i*a 2、x 3i*a 3、x 4i*a 4和x 5i*a 5,a 1表示特征值x 1i对应的权重,a 2表示特征值x 2i对应的权重,a 3表示特征值x 3i对应的权重,a 4表示特征值x 4i对应的权重,a 5表示特征值x 5i对应的权重。
在一些实施例中,客户端的排序模型可以是学习排序(learning to rank,LTR)模型,LTR模型是采用机器学习的一种算法,可以是通过机器学习算法自动训练出来的模型。示例性地,LTR模型的输入可以是各个具有不同权重的特征值,输出的是输出结果。
情况2、每个POI搜索结果对应的至少一个特征值包括一个特征值,该特征值为每个POI搜索结果对应的POI的历史点击次数。
在该情况中,客户端根据每个POI搜索结果对应的POI的历史点击次数,对多个POI搜索结果排序,得到客户端排序。示例性地,排序过程中,按照历史点击次数从高到低的顺序进行排序,得到客户端排序。示例性地,若存在历史点击次数相同的POI搜索结果,可以按照字典序进行排序。
应理解,基于本申请实施例得到的推荐排序,由于考虑了每个POI搜索结果对应的POI的历史点击次数,得到的推荐排序的第一个POI搜索结果大概率是用户期望的POI搜索结果。
图8是本申请实施例提供的地图的另一GUI。继续假设用户处在深圳,预定了杭州滨江江陵路的亚朵酒店,且收到了表示酒店预定成功的短信,得到的客户端排序如图8所示,POI2对应的POI搜索结果是用户期望的搜索结果,是多个POI搜索结果中的第一个POI 搜索结果。应理解,图8所示的客户端排序仅为示意性说明,不应对本申请实施例构成限定。
本申请实施例提供的POI搜索的方法,针对服务端反馈的多个POI搜索结果,客户端对每个POI搜索进行特征提取,得到包括每个POI搜索结果对应的POI的历史点击次数的至少一个特征值,基于该至少一个特征值对多个POI搜索结果进行排序,得到最终的推荐排序。由于用户对POI的历史点击次数可以反映用户对POI的关注度,所以,基于每个POI搜索结果对应的POI的历史点击次数对多个POI搜索结果进行排序,可以得到更具用户个性化的排序。更重要的是,相比于服务端只能获取某个APP中关于POI的点击次数,本申请实施例通过记录有各个APP对POI的点击操作的SDK日志数据得到的是用户针对POI的所有的历史点击次数,实现了各个APP之间的数据共享,可以得到更具用户个性化的排序,满足用户的个性化需求,而且,在该排序中,用户期望的POI搜索结果大概率是多个POI搜索结果中的第一个POI搜索结果,可以使得用户能够快速看到自己期望的POI搜索结果,进一步提高用户体验。
方式B、推荐排序是基于客户端排序和服务端排序得到的
在一些实施例中,客户端根据该每个POI搜索结果对应的至少一个特征值,对该多个POI搜索结果进行排序,确定客户端排序;
根据该客户端排序和服务端针对该多个POI搜索结果进行排序得到的服务端排序,确定该推荐排序,其中,该推荐排序的第一个POI搜索结果是该客户端排序的第一个POI搜索结果,该推荐排序中除该推荐排序的第一个POI搜索结果以外的POI搜索结果的排序是该服务端排序中除该推荐排序的第一个POI搜索结果以外的POI搜索结果的排序。
其中,关于客户端排序的具体描述可参考上文方式A的相关描述,不再赘述。
应理解,推荐排序的第一个POI搜索结果是该推荐排序中位于首位的POI搜索结果,同理,客户端排序的第一个POI搜索结果是该客户端排序中位于首位的POI搜索结果。
还应理解,客户端排序的第一个POI搜索结果与服务端排序的第一个POI搜索结果可能相同,也可能不同,但无论是否相同,实现中,都需要将客户端排序的第一个POI搜索结果作为推荐排序的第一个POI搜索结果,不需要考虑服务端排序的第一个POI搜索结果。
例如,多个POI搜索结果包括4个POI搜索结果,分别是POI搜索结果1、POI搜索结果2、POI搜索结果3、POI搜索结果4。
服务端排序为:POI搜索结果2、POI搜索结果1、POI搜索结果3、POI搜索结果4,
客户端排序为:POI搜索结果1、POI搜索结果2、POI搜索结果2、POI搜索结果4,
推荐排序为:POI搜索结果1、POI搜索结果2、POI搜索结果3、POI搜索结果4。
在该举例中,客户端排序的第一个POI搜索结果是POI搜索结果1,作为推荐排序的第一个POI搜索结果,服务端排序中除推荐排序的第一个POI搜索结果“POI搜索结果1”以外的POI搜索结果的排序为:POI搜索结果2、POI搜索结果3、POI搜索结果4,作为推荐排序中除第一个POI搜索结果“POI搜索结果1”以外的POI搜索结果的排序,按照该排序依次位于“POI搜索结果1”的后面。
图9是本申请实施例提供的地图的另一GUI。继续假设用户处在深圳,预定了杭州滨江江陵路的亚朵酒店,且收到了表示酒店预定成功的短信,得到的推荐排序如图9所示,结合图3所示的服务端排序和图8所示的客户端排序,可以看出,POI2对应的POI搜索 结果是图8所示的客户端排序的一个POI搜索结果,是用户期望的搜索结果,POI1、POI3、POI4、POI5、POI6和POI7对应的POI搜索结果的排序是图3所示的服务端排序中除POI2对应的POI搜索结果以外的POI搜索结果的排序。
在该方式中,由于客户端排序考虑了用户对POI的历史点击次数,客户端排序中的第一个POI搜索结果最有可能是用户期望的POI搜索结果,所以,将客户端排序的第一个POI搜索结果作为推荐排序的第一个POI搜索结果,可以使得用户快速看到自己期望的POI搜索结果,使得推荐排序具有用户个性化特性,用户体验好;同时,由于服务端排序与用户画像有关,服务端排序具有一类用户的共性特点,所以,将服务端排序中除服务端第一个POI搜索结果以外的其余POI搜索结果的排序作为推荐排序中除推荐排序的第一个POI搜索结果以外的POI搜索结果的排序,可以满足用户的共性体验。因此,综合具有用户个性化的客户端排序和具有全局化的服务端排序得到推荐排序,不仅具有用户个性化特性,也具有用户共性特征,推荐排序的综合性能更好,用户体验更好。
如前所述,客户端可以采用LTR模型对多个POI搜索结果进行排序,当用户点击某些POI搜索结果时,客户端会在SDK日志数据中记录用户对POI搜索结果的点击操作,以更新SDK日志数据,并且,客户端可以基于更新后的SDK日志数据,实时更新LTR模型,以使得LTR模型可以实时学习用户的点击行为,能更快、更好、更有效地学习用户个人的习惯,进一步提高用户的个性化需求,进一步提高用户体验。
因此,在一些实施例中,在客户端按照推荐排序为用户展示多个POI搜索结果后,该方法还包括:
客户端根据用户对该多个POI搜索结果中至少一个POI搜索结果的点击操作,更新SDK日志数据,以更新LTR模型。
在该过程中,针对该多个POI搜索结果,用户点击感兴趣的至少一个POI搜索结果,客户端将用户对每个POI搜索结果的点击操作都记录在SDK日志数据中,从而,更新SDK日志数据,以更新LTR模型。
示例性地,客户端根据更新后的SDK日志数据得到POI点击信息,该POI点击信息包括用户点击各个POI的点击次数,该各个POI包括该至少一个POI搜索结果对应的POI,将该各个POI的点击次数作为LTR模型的输入,以更新LTR模型。
应理解,POI点击信息是用于记录用户点击各个POI的点击操作的信息,包括用户点击各个POI的点击次数,示例性地,该POI点击信息还可以其他内容,例如,包括用户点击各个POI的时间等的内容。
还应理解,多个POI搜索结果中的至少一个POI搜索结果是被用户点击的POI搜索结果,是该多个POI搜索结果中的部分或全部搜索结果,包括用户最终期望的POI搜索结果,用户最终期望的POI搜索结果是多个POI搜索结果中的某个搜索结果。在实际情况中,用户不仅会点击期望的POI的搜索结果,出于其他因素会也可能点击其他的POI搜索结果,因此,该至少一个POI搜索结果是被用户点击的所有的POI搜索结果。
示例性地,客户端还可以将第二搜索文本添加至用于更新LTR模型的搜索文本集合中,将被用户点击的至少一个POI搜索结果对应的POI添加至用于更新LTR模型的POI集合中,基于搜索文本集合和POI集合得到每个搜索文本与每个POI的相关度的特征值、每个POI搜索结果对应的POI的类型的特征值等特征值,结合基于SDK日志数据得到的 各个POI的点击次数,将这些特征值和各个POI的点击次数作为LTR模型的输入,以更新LTR模型。
应理解,搜索文本集合、POI集合和SDK日志数据可以理解为用于更新LTR模型的训练数据。
需要说明的是,如前所述,LTR模型中输入的各个特征值都有对应的权重,更新LTR模型,实际上相当于更新各个特征值对应的权重。
图10是本申请实施例提供的POI搜索的***300,包括:客户端310和服务端320。其中,客户端310包括:数据管理模块311、地址扩展模块312、TEE模块313、排序模型314。下面,结合上文描述的POI搜索的方法对***300做介绍。
1、数据管理模块311
数据管理模块311统一管理客户端310中与POI搜索相关的用户数据,向地址扩展模块312和排序模块314提供数据以及接口支撑,主要分为三个部分:数据源层,数据处理层以及索引层。
数据源层:包含了第一用户数据和SDK日志数据两大类,其中,第一用户数据主要为短信,备忘录等包含本地个人信息的应用数据,SDK日志数据为客户端的APP调用sdk的日志信息。关于这两类数据的具体描述可参考上文的相关描述,不再赘述。
数据处理层:主要对数据源层中的数据按照规则进行处理并供上层使用。
(1)针对第一用户数据,示例性地,数据处理层用于对第一用户数据进行过滤、抽取并将处理后的数据递交至索引层的索引库中。
在一示例中,数据处理层用于进行噪声数据过滤,通过关键字或者手机号段等方式过滤第一用户数据中的广告信息或者无用的数据。例如在短信中过滤掉银行通知信息和广告信息。
在一示例中,数据处理层用于抽取POI文本,利用NLP技术从第一用户数据中抽取与POI相关的多个POI文本。
数据处理层还用于,按照各个POI文本对应的POI的类型,将多个POI文本分别存储至索引层中不同POI类型的索引库中。
(2)针对SDK日志数据,示例性地,数据处理层用于通过日志分析的手段,对SDK日志数据中POI的点击操作,得到各个POI的点击次数,将各个POI的点击次数作为排序模块314中排序模型的输入,以更新排序模型。
关于数据处理层对第一用户数据和SDK日志数据的处理过程可参考上文方法的相关描述,不再赘述。
索引层:索引层中包括对应于各个类型的POI的索引库,每个类型的索引库中存储有对应该类型的POI文本。如图10所示,索引层中包括类型为“酒店”、“景点”、“餐饮”的索引库。
2、地址扩展模块312
地址扩展模块312用于根据第一用户数据,对用户输入的第一搜索文本进行地址扩展,得到第二搜索文本,最终实现面向用户的个性化召回。关于地址扩展模块312进行地址扩展得到第二搜索文本的过程可参考上文方法200中关于步骤S220的相关描述,不再赘述。
3、TEE模块313
TEE模块313用于将第二搜索文本、或,第二搜索文本和第一搜索文本在TEE中进行加密,并发送至服务端320的TEE模块321。
4、排序模块314
排序模块314的目的在于对POI搜索结果进行排序,排序模块314内配置有排序模型。排序模块314用于对服务端320反馈的多个POI搜索结果进行特征提取,得到包括每个POI搜索结果对应的POI的历史点击次数在内的至少一个特征值,将该至少一个特征值作为排序模型的输入,利用排序模型对多个POI搜索结果进行重新排序,返回符合用户搜索意图的推荐排序。
关于排序模块314对多个POI搜索结果进行排序确定推荐排序的过程可参考上文方法200中关于步骤S250和S260的相关描述,不再赘述。
服务端320中可以包括TEE模块321和操作***(operation system,OS)模块322,TEE模块321和OS模块322是服务端上并存的运行环境,TEE模块321为OS模块322提供安全保障。下面,结合图11,对服务端320的TEE模块321与OS模块322之间的交互做说明。
图11是本申请实施例提供的服务端的OS模块321与TEE模块322之间交互的示意图。在该过程中,以搜索请求包括第一搜索文本和第二搜索文本为例做说明。
应理解,由于TEE模块321的目的是处于安全性考虑,保护用户隐私,只要涉及到需要使用第一搜索文本和第二搜索文本的过程都在TEE模块321中执行,基于第一搜索文本和第二搜索文本在数据库中搜索匹配的POI搜索结果的过程在OS模块322中执行。
在S401中,OS模块322接收被加密的第一搜索文本和第二搜索文本,在TEE模块321中解密第一搜索文本和第二搜索文本,并存储在TEE模块321中。
在S402中,OS模块322将带有缺省值的召回模板发送至TEE模块321,TEE模块321将第一搜索文本和第二搜索文本输入召回模板的缺省值中以构造完整的召回请求,且输出该召回请求并发送至OS模块322中,OS模块322基于该召回请求,输出与该召回请求匹配的多个POI搜索结果。应理解,召回模板也可以理解为带有缺省值的请求模板,召回请求用于从数据库中请求搜索结果。
在S403中,OS模块322将多个POI搜索结果发送至TEE模块321,TEE模块321基于第一搜索文本、第二搜索文本和多个POI搜索结果计算每个POI搜索结果对应的POI的特征值,将POI搜索结果对应的POI的特征值发送至OS模块322中,OS模块322完成多个POI搜索结果的排序,输出具有服务端排序的多个POI搜索结果。
下面,结合图12至图13,描述本申请实施例提供的信息点搜索的装置。
图12示出了本申请实施例提供的信息点搜索的装置500,该装置500可以是上文所述的客户端,也可以为客户端中的芯片。该装置500包括:处理单元510和收发单元520。
在一种可能的实现方式中,装置500用于执行上述方法200中客户端对应的各个流程和步骤。
所述处理单元510用于,获取用户输入的第一搜索文本;
所述处理单元510还用于,根据所述第一搜索文本和装置的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述 第一搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
所述收发单元520用于,向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;
所述收发单元520还用于,接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
其中,处理单元510可用于执行方法200中步骤S210和S220的流程和步骤,收发单元520可用于执行方法200中的步骤S230和S240中客户端对应的流程和步骤。
应理解,各单元执行上述各个方法中相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,此处不再赘述。
应理解,这里的装置500以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
上述各个方案的装置500具有实现上述方法中接入网设备或核心网设备执行的相应步骤的功能;所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块;例如通信单元可以由发射机和接收机替代,其它单元,如处理单元等可以由处理器替代,分别执行各个方法实施例中的收发操作以及相关的处理操作。此外,装置500中的通信单元也可以由发送单元和接收单元组成,对于执行与接收相关的操作,可以将该通信单元的功能理解为接收单元执行的接收操作,对于执行与发送相关的操作,可以将该通信单元的功能理解为发送单元执行的发送操作。在本申请的实施例,图12中的装置也可以是芯片或者芯片***,例如:片上***(system on chip,SoC)。对应的,收发单元可以是该芯片的收发电路,在此不做限定。
图13示出了本申请实施例提供的另一信息点搜索的装置600。应理解,装置600可以具体为上述实施例中的客户端,并且可以用于执行上述方法实施例中与客户端对应的各个步骤和/或流程。
装置600包括处理器610、收发器620和存储器630。其中,处理器610、收发器620和存储器630通过内部连接通路互相通信,处理器610可以实现装置600中各种可能的实现方式中处理单元420的功能,收发器620可以实现装置600中各种可能的实现方式中收发单元620的功能。存储器630用于存储指令,处理器610用于执行存储器630存储的指令,或者说,处理器610可以调用这些存储指令实现装置600中处理器620的功能,以控制收发器620发送信号和/或接收信号。
可选地,该存储器630可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器610可以用于执行存储器中存储的指令,并且当该处理器610执行存储器中存储的指令时,该处理器610用于执行上述与接入网设备或核心网设备对应的方法实施例的各个步骤和/或流程。
在一种可能的实现方式中,装置600用于执行上述方法200中客户端对应的各个流程和步骤。
处理器610用于,获取用户输入的第一搜索文本;
处理器610还用于,根据所述第一搜索文本和装置的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述第一搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
收发器620用于,向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;
收发器620还用于,接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
应理解,各个器件执行上述各个方法中相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,此处不再赘述。
应理解,在本申请实施例中,上述装置的处理器可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“元件的至少部分”是指元件的部分或全部。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (22)

  1. 一种信息点搜索的方法,其特征在于,包括:
    获取用户输入的第一搜索文本;
    根据所述第一搜索文本和客户端的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述第一搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
    向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;
    接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述第一搜索文本和客户端的第一用户数据,确定第二搜索文本,包括:
    根据所述第一搜索文本,从所述第一用户数据中筛选出候选POI文本集合,所述候选POI文本集合中的每个候选POI文本与所述第一搜索文本匹配且包括地址信息,所述每个候选POI文本中的地址信息所表示的地址是所述地址集合中的地址;
    根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述候选POI文本集合中的地址信息所表示的地址相关。
  3. 根据权利要求2所述的方法,其特征在于,所述候选POI集合包括多个候选POI文本;以及,所述根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,包括:
    根据所述每个候选POI文本对应的POI的有效时间和/或所述每个候选POI文本对应的POI的热度,从所述候选POI文本集合中筛选出最终的候选POI文本;
    根据所述第一搜索文本和所述最终的候选POI文本,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述最终的候选POI文本中的地址信息所表示的地址相关。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
    对每个POI搜索结果进行特征提取,确定所述每个POI搜索结果对应的至少一个特征值,所述每个POI搜索结果对应的至少一个特征值包括所述每个POI搜索结果对应的POI的历史点击次数,所述历史点击次数是基于所述客户端的软件开发工具包SDK日志数据得到的,所述SDK日志数据记录有用户在各个APP中对POI的点击操作;
    根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序。
  5. 根据权利要求4所述的方法,其特征在于,所述根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序,包括:
    根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定客户端排序;
    根据所述客户端排序和服务端针对所述多个POI搜索结果进行排序得到的服务端排 序,确定所述推荐排序,其中,所述推荐排序的第一个POI搜索结果是所述客户端排序的第一个POI搜索结果,所述推荐排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序是所述服务端排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序。
  6. 根据权利要求4或5所述的方法,其特征在于,所述每个POI搜索结果对应的至少一个特征值还包括以下至少一项:
    用于表示所述第二搜索文本与所述每个POI搜索结果对应的POI的相关度的特征值,或,
    所述客户端当前所处的地址与所述每个POI搜索结果对应的POI的距离,或,
    所述每个POI搜索结果对应的POI的类型的特征值。
  7. 根据权利要求5或6所述的方法,其特征在于,所述客户端排序是根据学习排序LTR模型得到的;以及,所述方法还包括:
    根据用户对所述多个POI搜索结果中至少一个POI搜索结果的点击操作,更新所述SDK日志数据,以更新所述LTR模型。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述搜索请求还包括所述第一搜索文本;以及,
    所述多个POI搜索结果中还包括除所述M个POI搜索结果以外的与所述第一搜索文本匹配的N个POI搜索结果,N为大于或等于1的整数。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述第二搜索文本是被加密的搜索文本。
  10. 一种信息点搜索的装置,其特征在于,包括:处理单元和收发单元,
    所述处理单元用于,获取用户输入的第一搜索文本;
    所述处理单元还用于,根据所述第一搜索文本和装置的第一用户数据,确定第二搜索文本,所述第一用户数据包括地址集合,所述第二搜索文本包括所述第一搜索文本和第一地址信息,所述第一地址信息表示至少一个地址,每个地址对应的信息点POI与所述第一搜索文本匹配,所述每个地址与所述地址集合中的地址相关;
    所述收发单元用于,向服务端发送搜索请求,所述搜索请求包括所述第二搜索文本;
    所述收发单元还用于,接收所述服务端响应于所述搜索请求发送的多个POI搜索结果,所述多个POI搜索结果包括与所述第二搜索文本匹配的M个POI搜索结果,M为大于或等于1的整数。
  11. 根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:
    根据所述第一搜索文本,从所述第一用户数据中筛选出候选POI文本集合,所述候选POI文本集合中的每个候选POI文本与所述第一搜索文本匹配且包括地址信息,所述每个候选POI文本中的地址信息所表示的地址是所述地址集合中的地址;
    根据所述第一搜索文本和所述候选POI文本集合,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述候选POI文本集合中的地址信息所表示的地址相关。
  12. 根据权利要求11所述的装置,其特征在于,所述候选POI集合包括多个候选POI文本;以及,所述处理单元具体用于:
    根据所述每个候选POI文本对应的POI的有效时间和/或所述每个候选POI文本对应 的POI的热度,从所述候选POI文本集合中筛选出最终的候选POI文本;
    根据所述第一搜索文本和所述最终的候选POI文本,确定所述第二搜索文本,所述第一地址信息所表示的每个地址与所述最终的候选POI文本中的地址信息所表示的地址相关。
  13. 根据权利要求10至12中任一项所述的装置,其特征在于,所述处理单元还用于:
    对每个POI搜索结果进行特征提取,确定所述每个POI搜索结果对应的至少一个特征值,所述每个POI搜索结果对应的至少一个特征值包括所述每个POI搜索结果对应的POI的历史点击次数,所述历史点击次数是基于所述装置的软件开发工具包SDK日志数据得到的,所述SDK日志数据记录有用户在各个APP中对POI的点击操作;
    根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定推荐排序。
  14. 根据权利要求13所述的装置,其特征在于,所述处理单元具体用于:
    根据所述每个POI搜索结果对应的至少一个特征值,对所述多个POI搜索结果进行排序,确定客户端排序;
    根据所述客户端排序和服务端针对所述多个POI搜索结果进行排序得到的服务端排序,确定所述推荐排序,其中,所述推荐排序的第一个POI搜索结果是所述客户端排序的第一个POI搜索结果,所述推荐排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序是所述服务端排序中除所述推荐排序的第一个POI搜索结果以外的POI搜索结果的排序。
  15. 根据权利要求13或14所述的装置,其特征在于,所述每个POI搜索结果对应的至少一个特征值还包括以下至少一项:
    用于表示所述第二搜索文本与所述每个POI搜索结果对应的POI的相关度的特征值,或,
    所述装置当前所处的地址与所述每个POI搜索结果对应的POI的距离,或,
    所述每个POI搜索结果对应的POI的类型的特征值。
  16. 根据权利要求14或15所述的装置,其特征在于,所述客户端排序是根据学习排序LTR模型得到的;以及,所述处理单元还用于:
    根据用户对所述多个POI搜索结果中至少一个POI搜索结果的点击操作,更新所述SDK日志数据,以更新所述LTR模型。
  17. 根据权利要求10至16中任一项所述的装置,其特征在于,所述搜索请求还包括所述第一搜索文本;以及,
    所述多个POI搜索结果中还包括除所述M个POI搜索结果以外的与所述第一搜索文本匹配的N个POI搜索结果,N为大于或等于1的整数。
  18. 根据权利要求10至17中任一项所述的装置,其特征在于,所述第二搜索文本是被加密的搜索文本。
  19. 一种信息点搜索的装置,其特征在于,包括:
    存储器,用于存储计算机指令;
    处理器,用于调用所述存储器中存储的计算机指令,以执行如权利要求1至9中任一项所述的方法。
  20. 一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令用于实现如权利要求1至9中任一项所述的方法。
  21. 一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于实现如权利要求1至9中任一项所述的方法。
  22. 一种芯片,其特征在于,所述芯片包括:
    存储器:用于存储指令;
    处理器,用于从所述存储器中调用并运行所述指令,使得安装有所述芯片***的通信设备执行如权利要求1至9中任一项所述的方法。
PCT/CN2022/097656 2021-06-17 2022-06-08 信息点搜索的方法和装置 WO2022262621A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22824101.4A EP4354323A1 (en) 2021-06-17 2022-06-08 Method and apparatus for searching point of information
US18/541,155 US20240111797A1 (en) 2021-06-17 2023-12-15 Method and apparatus for searching for point of information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110670104.3 2021-06-17
CN202110670104.3A CN115495674A (zh) 2021-06-17 2021-06-17 信息点搜索的方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/541,155 Continuation US20240111797A1 (en) 2021-06-17 2023-12-15 Method and apparatus for searching for point of information

Publications (1)

Publication Number Publication Date
WO2022262621A1 true WO2022262621A1 (zh) 2022-12-22

Family

ID=84464698

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/097656 WO2022262621A1 (zh) 2021-06-17 2022-06-08 信息点搜索的方法和装置

Country Status (4)

Country Link
US (1) US20240111797A1 (zh)
EP (1) EP4354323A1 (zh)
CN (1) CN115495674A (zh)
WO (1) WO2022262621A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227618A (ja) * 2010-04-16 2011-11-10 Mars Flag Corp 情報提供サーバ、クライアント端末及びコンピュータプログラム
CN103942221A (zh) * 2013-01-23 2014-07-23 百度在线网络技术(北京)有限公司 检索方法及设备
CN104615688A (zh) * 2015-01-22 2015-05-13 百度在线网络技术(北京)有限公司 一种搜索方法及装置
CN107229659A (zh) * 2016-03-25 2017-10-03 华为软件技术有限公司 一种信息搜索方法及装置
CN107315841A (zh) * 2017-07-20 2017-11-03 北京三快在线科技有限公司 一种信息搜索方法、装置及***
CN112446514A (zh) * 2019-09-03 2021-03-05 阿里巴巴集团控股有限公司 信息预订方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227618A (ja) * 2010-04-16 2011-11-10 Mars Flag Corp 情報提供サーバ、クライアント端末及びコンピュータプログラム
CN103942221A (zh) * 2013-01-23 2014-07-23 百度在线网络技术(北京)有限公司 检索方法及设备
CN104615688A (zh) * 2015-01-22 2015-05-13 百度在线网络技术(北京)有限公司 一种搜索方法及装置
CN107229659A (zh) * 2016-03-25 2017-10-03 华为软件技术有限公司 一种信息搜索方法及装置
CN107315841A (zh) * 2017-07-20 2017-11-03 北京三快在线科技有限公司 一种信息搜索方法、装置及***
CN112446514A (zh) * 2019-09-03 2021-03-05 阿里巴巴集团控股有限公司 信息预订方法、装置及电子设备

Also Published As

Publication number Publication date
US20240111797A1 (en) 2024-04-04
CN115495674A (zh) 2022-12-20
EP4354323A1 (en) 2024-04-17

Similar Documents

Publication Publication Date Title
US11681654B2 (en) Context-based file selection
CN107660284B (zh) 基于机器学习的搜索改进
EP2153354B1 (en) Enabling clustered search processing via text messaging
US8856167B2 (en) System and method for context based query augmentation
US20220365939A1 (en) Methods and systems for client side search ranking improvements
JP5819412B2 (ja) コンテキストに基づいて選択したコンテンツ項目の提供
US9396275B2 (en) Geographically partitioned online search system
TWI412943B (zh) 用以管理透過一網路之一搜尋查詢的網路裝置、電腦可讀取記錄媒體、方法以及系統
US20110289015A1 (en) Mobile device recommendations
JP2019071068A (ja) モバイル・デバイスに対する示唆された検索クエリのプッシュ
US20080168033A1 (en) Employing mobile location to refine searches
US20110113100A1 (en) System for sharing favorites and enabling in-network local search based on network rankings
US20100325127A1 (en) Method and apparatus for automatic geo-location and social group indexing
US8635062B2 (en) Method and apparatus for context-indexed network resource sections
US20200380003A1 (en) People suggester using historical interactions on a device
CN105324771A (zh) 识别用户先前交互的物理位置的个人搜索结果
US20130072233A1 (en) Geographically partitioned online content services
US12013906B2 (en) Client-side personalization of search results
WO2022262621A1 (zh) 信息点搜索的方法和装置
US20100306190A1 (en) Retrieval-Time Ranking for Community Content
WO2013044476A1 (en) Method and apparatus for recalling content based on contextual data
WO2022242315A1 (zh) 微件生成方法、装置、电子设备、存储介质
US20150154681A1 (en) Enriching product catalog with product name keywords
CN116881564A (zh) 一种专利信息的推荐方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22824101

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022824101

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022824101

Country of ref document: EP

Effective date: 20231215

NENP Non-entry into the national phase

Ref country code: DE