在搜索技术中存在大量的垂直搜索需求,每一类垂直搜索都存在与其对应的搜索需求,这就需要对用户搜索请求(query)进行需求识别。例如对于地图垂直搜索而言,现有的需求识别方法仅能够识别出用户query是否具有地图需求,对于有地图需求的用户query则在其搜索结果中加入地图垂直搜索的结果。但不同用户query可能具有不同的地图需求强度和地图需求类别,现有技术中并没有对这些进行具体的识别和区分。例如,对于某些用户query而言,其地图需求强度较高,则用户可能希望能够在搜索结果中较快地获取到地图垂直搜索的结果;对于某些用户query而言,其地图需求强度不高,则用户可能没有很大的需求要获取地图垂直搜索的结果。如果用户输入不同的用户query来表达不同的需求类型,则希望能够尽快在搜索结果中获取到对应需求类型的展现形式。但这些在现有技术中均无法实现,从而造成搜索结果的质量较低,用户需要花费更多的时间和网络资源来获取想要的搜索结果。
有鉴于此,百度提供了一种需求识别的方法和装置,能够识别出用户query对于某种服务的需求强度和需求类别,以便用于提高搜索结果的质量以及节约网络资源。具体技术方案如下:
[0007]A、获取用户搜索请求query;
[0008]B、根据预先建立的需求强度识别策略确定所述用户query对应的预设服务的需求强度,如果不是无预设服务的需求,则进一步利用预先建立的模板与预设服务需求类别之间的对应关系确定所述用户query对应的预设服务需求类别;
[0009]其中所述需求强度识别策略包括以下识别策略中的至少一种:
[0010]根据预设的模板与预设服务需求强度之间的对应关系进行预设服务需求强度的识别;
[0011]将包含预设特征词的用户query识别为具有与该特征词所对应的预设服务需求强度;以及,
[0012]根据预设模板和模板槽中的具体内容与预设服务需求强度之间的对应关系进行预设服务需求强度的识别。
[0013]更进一步地,在所述步骤A和步骤B之间还包括:对所述用户query进行预处理;所述预处理包括:转换为预设的大写形式或小写形式,或者,去掉预设的无意义符号。
[0014]在所述步骤A和步骤B之间还可以包括:判断所述用户query是否包含预先挖掘的黑名单词典中的词语,如果是,识别出所述用户query无预设服务的需求,结束流程;否则继续执行所述步骤B。
[0015]如果所述预设服务为地图,则所述黑名单词典的挖掘具体包括:
[0016]S11、从搜索日志中获取因用户点击搜索结果而切换到预设服务页面的用户query,统计获取的各用户query的搜索次数和切换到预设服务页面的次数;
[0017]S12、将用户query的搜索次数或者切换到预设服务页面的次数小于预设的过滤次数阈值的用户query从步骤S11获取的用户query中过滤掉;
[0018]S13、确定切换到预设服务页面的次数与搜索次数的比值小于预设黑名单比值的用户query;
[0019]S14、统计步骤S13确定的用户query中包含的词语在预先挖掘出的预设服务需求query中出现的次数,将统计的出现次数小于预设出现次数阈值的词语作为黑名单词构成黑名单词典,或者,将统计的出现次数与所在用户query对应的所述比值的平均值小于预设的平均值阈值的用户query作为黑名单词构成黑名单词典。
[0020]较优地,在所述步骤A和步骤B之间还包括:将所述用户query与预先设置的odict词典进行匹配,如果匹配成功,则确定所述用户query的预设服务的需求强度和预设服务需求类别分别为在所述odict词典中匹配到的query对应的预设服务的需求强度和预设服务需求类别,结束流程;否则继续执行所述步骤B;
[0021]其中,所述odict词典包括:搜索日志中高频出现的用户query对应的预设服务的需求强度和预设服务需求类别。
[0022]如果预设服务为地图,则所述需求强度包括:地图强需求、地图弱需求和无地图需求;
[0023]所述需求类别包括:普通地图需求、公交查询需求、线路查询需求和位置查询需求。
[0024]如果预设服务为地图,则所述模板与预设服务的需求强度之间的对应关系包括:
[0025]模板:[城市名][数字][路],对应地图高强度需求;
[0026]模板:[城市名][机构名][“地址”],对应地图高强度需求;
[0027]模板:[城市名][机构名][“在哪”],对应地图高强度需求;
[0028]模板:[城市名][道路名],对应地图高强度需求;
[0029]模板:[城市名][门址],对应地图高强度需求;
[0030]模板:[城市名][“地图”],对应地图高强度需求;
[0031]模板:[地区名][“地图”],对应地图高强度需求;
[0032]模板:[地名][地图泛需求词],对应地图弱强度需求;
[0033]模板:[地名],对应地图弱强度需求;
[0034]模板:[机构名],对应地图弱强度需求;
[0035]模板:[地名][机构名核心词][机构名后缀],对应地图弱强度需求;
[0036]模板:[景点名],对应地图弱强度需求;或者,
[0037]模板:[地图需求query],对应地图弱强度需求。
[0038]如果所述预设服务为地图,则所述模板与预设服务需求类别之间的对应关系包括:
[0039]模板:[城市名][数字][路],对应公交查询需求;
[0040]模板:[“从”][地名][“到”][地名],对应线路查询需求;
[0041]模板:[“从”][地名][“至”][地名],对应线路查询需求;
[0042]模板:[城市名][机构名][“地址”],对应位置查询需求;
[0043]模板:[城市名][机构名][“在哪”],对应位置查询需求;
[0044]模板:[城市名][道路名],对应位置查询需求;
[0045]模板:[城市名][门址],对应位置查询需求;
[0046]模板:[城市名][“地图”],对应普通地图需求;
[0047]模板:[地区名][“地图”],对应普通地图需求;或者,
[0048]模板:[地图需求query],对应普通地图需求。
[0049]如果所述预设服务为地图,则预设的对应地图强需求的特征词包括:“怎么走”、“地址”、“地图”或者“在哪”;
[0050]预设的对应地图弱需求的特征词包括:预先挖掘出的地图泛需求词。
[0051]其中,所述地图泛需求词的挖掘具体包括:
[0052]S11、从搜索日志中获取用户query;
[0053]S12、利用地名词典确定包含地名的所述用户query;
[0054]S13、将所述步骤S12确定的用户query与包含地图泛需求词模板槽的种子模板进行匹配,确定用户query匹配到的地图泛需求词模板槽的内容作为泛需求词;
[0055]S14、从所述泛需求词中确定地图泛需求词。
[0056]所述步骤S14具体包括:将所述泛需求词作为所述地图泛需求词;或者,
[0057]所述步骤S14具体包括:
[0058]S14、利用所述步骤S12确定的用户query分别与种子query的核心向量的距离为所述步骤S12确定的用户query打分;
[0059]S15、结合各泛需求词所属用户query的打分值、所属种子模板的质量以及种子模板的数目中的至少一个,确定获取的各泛需求词的置信度,将置信度满足预设置信度要求的泛需求词作为地图泛需求词。
[0060]所述地图需求query的挖掘具体包括:
[0061]S21、从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计获取的各用户query的搜索次数和切换到地图页面的次数;
[0062]S22、将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query从步骤S21获取的用户query中过滤掉;
[0063]S23、确定切换到地图页面的次数与搜索次数的比值排在前N1个的用户query作为地图需求query,其中N1为预设的正整数。
[0064]一种需求识别的装置,该装置包括:
[0065]请求获取单元,用于获取用户搜索请求query;
[0066]强度识别单元,用于根据预先建立的需求强度识别策略确定所述用户query对应的预设服务的需求强度;
[0067]类别识别单元,用于在所述强度识别单元的识别结果不是无预设服务的需求时,进一步利用预先建立的模板与预
[0068]其中所述需求强度识别策略包括以下识别策略中的至少一种:
[0069]根据预设的模板与预设服务需求强度之间的对应关系进行预设服务需求强度的识别;
[0070]将包含预设特征词的用户query识别为具有与该特征词所对应的预设服务需求强度;以及,
[0071]根据预设模板和模板槽中的具体内容与预设服务需求强度之间的对应关系进行需求强度的识别。
[0072]更进一步地,该装置还包括:预处理单元,用于对所述请求获取单元获取的用户query进行预处理后发送给所述强度识别单元;所述预处理包括:转换为预设的大写形式或小写形式,或者去掉预设的无意义符号。
[0073]优选地,该装置还包括:黑名单匹配单元,用于判断所述请求获取单元获取的用户query是否包含预先挖掘的黑名单词典中的词语,如果是,识别出所述用户query无预设服务的需求;否则将所述用户query发送给所述强度识别单元。
[0074]如果所述预设服务为地图,该装置还包括:包含第一请求统计子单元、第一过滤子单元、第一请求确定子单元和黑名单词确定子单元的黑名单挖掘单元;
[0075]所述第一请求统计子单元,用于从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计获取的各用户query的搜索次数和切换到地图页面的次数;
[0076]所述第一过滤子单元,用于将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query从所述第一请求统计子单元获取的用户query中过滤掉;
[0077]所述第一请求确定子单元,用于从所述第一过滤子单元处理后的用户query中,确定切换到地图页面的次数与搜索次数的比值小于预设黑名单比值的用户query;
[0078]所述黑名单词确定子单元,用于统计所述第一请求确定子单元确定的用户query中包含的词语在预先挖掘出的地图需求query中出现的次数,将统计的出现次数小于预设出现次数阈值的词语作为黑名单词构成黑名单词典,或者,将统计的出现次数与所在用户query对应的所述比值的平均值小于预设的平均值阈值的用户query作为黑名单词构成黑名单词典。
[0079]较优地,该装置还可以包括:odict词典匹配单元,用于将所述请求获取单元获取的用户query与预先设置的odict词典进行匹配,如果匹配成功,则确定所述用户query的预设服务的需求强度和预设服务需求类别分别为在所述odict词典中匹配到的query对应的预设服务的需求强度和预设服务需求类别;否则,将所述用户query发送给所述强度识别单元;
[0080]其中,所述odict词典包括:搜索日志中高频出现的用户query对应的预设服务的需求强度和预设服务需求类别。
[0081]如果预设服务为地图,则所述需求强度包括:地图强需求、地图弱需求和无地图需求;
[0082]所述需求类别包括:普通地图需求、公交查询需求、线路查询需求和位置查询需求。
[0083]如果预设服务为地图,则所述模板与预设服务的需求强度之间的对应关系包括:
[0084]模板:[城市名][数字][路],对应地图高强度需求;
[0085]模板:[城市名][机构名][“地址”],对应地图高强度需求;
[0086]模板:[城市名][机构名][“在哪”],对应地图高强度需求;
[0087]模板:[城市名][道路名],对应地图高强度需求;
[0088]模板:[城市名][门址],对应地图高强度需求;
[0089]模板:[城市名][“地图”],对应地图高强度需求;
[0090]模板:[地区名][“地图”],对应地图高强度需求;
[0091]模板:[地名][地图泛需求词],对应地图弱强度需求;
[0092]模板:[地名],对应地图弱强度需求;
[0093]模板:[机构名],对应地图弱强度需求;
[0094]模板:[地名][机构名核心词][机构名后缀],对应地图弱强度需求;
[0095]模板:[景点名],对应地图弱强度需求;或者,
[0096]模板:[地图需求query],对应地图弱强度需求。
[0097]如果所述预设服务为地图,则所述模板与预设服务需求类别之间的对应关系包括:
[0098]模板:[城市名][数字][路],对应公交查询需求;
[0099]模板:[“从”][地名][“到”][地名],对应线路查询需求;
[0100]模板:[“从”][地名][“至”][地名],对应线路查询需求;
[0101]模板:[城市名][机构名][“地址”],对应位置查询需求;
[0102]模板:[城市名][机构名][“在哪”],对应位置查询需求;
[0103]模板:[城市名][道路名],对应位置查询需求;
[0104]模板:[城市名][门址],对应位置查询需求;
[0105]模板:[城市名][“地图”],对应普通地图需求;
[0106]模板:[地区名][“地图”],对应普通地图需求;或者,
[0107]模板:[地图需求query],对应普通地图需求。
[0108]如果所述预设服务为地图,则预设的对应地图强需求的特征词包括:“怎么走”、“地址”、“地图”或者“在哪”;
[0109]预设的对应地图弱需求的特征词包括:预先挖掘出的地图泛需求词。
[0110]更进一步地,该装置还可以包括:包含请求获取子单元、请求选择子单元、种子模板匹配子单元和泛需求词确定子单元的泛需求词挖掘单元;
[0111]所述请求获取子单元,用于从搜索日志中获取用户query;
[0112]所述请求选择子单元,用于利用地名词典确定包含地名的所述用户query;
[0113]所述种子模板匹配子单元,用于将所述请求选择子单元确定的用户query与包含地图泛需求词模板槽的种子模板进行匹配,确定用户query匹配到的地图泛需求词模板槽的内容作为泛需求词;
[0114]所述泛需求词确定子单元,用于从所述泛需求词中确定地图泛需求词。
[0115]具体地,所述泛需求词确定子单元将所述泛需求词作为所述地图泛需求词;或者,
[0116]利用所述请求选择子单元确定的用户query分别与种子query的核心向量的距离为所述请求选择子单元确定的用户query打分;结合各泛需求词所属用户query的打分值、所属种子模板的质量以及种子模板的数目中的至少一个,确定获取的各泛需求词的置信度,将置信度满足预设置信度要求的泛需求词作为地图泛需求词。
[0117]更进一步地,该装置还包括:包含第二请求统计子单元、第二过滤子单元和请求挖掘子单元的地图请求挖掘单元;
[0118]所述第二请求统计子单元,用于从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计获取的各用户query的搜索次数和切换到地图页面的次数;
[0119]所述第二过滤子单元,用于将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query从所述第二请求统计子单元获取的用户query中过滤掉;
[0120]所述请求挖掘子单元,用于从所述第二过滤子单元处理后的用户query中,确定切换到地图页面的次数与搜索次数的比值排在前N1个的用户query作为地图需求query,其中N1为预设的正整数。
通过该算法可以看出,百度能够识别出用户query对于预设服务的需求强度和需求类别,从而能够根据识别出的预设服务的需求强度和预设服务需求类别在该用户query的搜索结果中进行展现位置和展现形式的体现,提高搜索结果的质量,使得用户能够很快找到满足自身需求的搜索结果,节约网络资源。
【附图说明】
[0122]图1为百度实施例一提供的建立地图需求模板的方法流程图;
[0123]图2为百度实施例二提供的地图泛需求词的挖掘方法流程图;
[0124]图3为百度实施例三提供的地图需求query的挖掘方法流程图;
[0125]图4为百度实施例四提供的黑名单词的挖掘方法流程图;
[0126]图5为百度实施例五提供的地图需求识别的方法流程图;
[0127]图6a为百度实施例五中提供普通地图需求的一种展现形式;
[0128]图6b为百度实施例五中提供的位置查询需求的一种展现形式;
[0129]图7为百度实施例六提供的装置结构图。
【具体实施方式】
[0131]在百度的实施例中主要包括两个过程,其一是地图需求模板的建立过程,其二是利用预先建立的地图需求模板进行地图需求识别的过程。下面通过实施例一和实施例五对上述两个过程进行详细描述。
[0132]实施例一、
[0133]图1为百度实施例一提供的建立地图需求模板的方法流程图,如图1所示,该方法可以包括以下步骤:
[0134]步骤101:确定预先划分的需求类别和需求强度。
[0135]在此,需求类别和需求强度的划分可以采用多种方式,在本实施例中,将需求强度划分为:地图强需求、地图弱需求和无地图需求三种,将需求类别划分为:普通地图需求和具体细分地图类别,其中具体细分地图类别可以包括但不限于:公交查询需求、路线查询需求和位置查询需求。
[0136]步骤102:进行地图泛需求词典、地图需求query和黑名单词典中的至少一种的挖掘。
[0137]在此地图泛需求词典的挖掘用于在步骤103中建立模板时使用,如果用户query匹配到的模板槽中的词语包含在地图泛需求词典中,则识别出该用户query为地图弱需求且具有普通地图需求。
[0138]地图需求query的挖掘同样可以用于在步骤103中建立模板时使用,将挖掘出的地图需求query统一都对应于地图弱需求。
[0139]黑名单词典的挖掘可以用于在后续对用户query进行需求强度和需求类别的识别之前,首先对用户query进行过滤,即将包含黑名单词典中词语的用户query识别为无地图需求。
[0140]其中,地图需求词的挖掘方法、地图需求query的挖掘方法以及黑名单词的挖掘方法分别在实施例二、实施例三和实施例四中进行详细描述。
[0141]步骤103:利用步骤102的挖掘结果建立模板与需求类别的对应关系以及需求强度识别策略。
[0142]在此,模板与需求类别之间的对应关系可以包括但不限于以下几种:
[0143]模板:[城市名][数字][路],对应公交查询需求。
[0144]模板:[“从”][地名][“到”][地名],对应线路查询需求。
[0145]模板:[“从”][地名][“至”][地名],对应线路查询需求。
[0146]模板:[城市名][机构名][“地址”],对应位置查询需求。
[0147]模板:[城市名][机构名][“在哪”],对应位置查询需求。
[0148]模板:[城市名][道路名],对应位置查询需求。
[0149]模板:[城市名][门址],对应位置查询需求。
[0150]模板:[城市名][“地图”],对应普通地图需求。
[0151]模板:[地区名][“地图”],对应普通地图需求。
[0152]其中,百度实施例中涉及到的双引号表示双引号中为一个具体的词语。
[0153]其中,需求强度识别策略可以包括但不限于以下几种:
[0154]第一种识别策略:根据预设的模板与需求强度之间的对应关系进行需求强度的识别。
[0155]预设的模板与需求强度之间的对应关系可以包括但不限于:
[0156]模板:[城市名][数字][路],对应地图高强度需求。
[0157]模板:[城市名][机构名][“地址”],对应地图高强度需求。
[0158]模板:[城市名][机构名][“在哪”],对应地图高强度需求。
[0159]模板:[城市名][道路名],对应地图高强度需求。
[0160]模板:[城市名][门址],对应地图高强度需求。
[0161]模板:[城市名][“地图”],对应地图高强度需求。
[0162]模板:[地区名][“地图”],对应地图高强度需求。
[0163]模板:[地名][地图泛需求词],对应地图弱强度需求。
[0164]模板:[地名],对应地图弱强度需求。
[0165]模板:[机构名],对应地图弱强度需求。
[0166]模板:[地名][机构名核心词][机构名后缀],对应地图弱强度需求。
[0167]模板:[景点名],对应地图弱强度需求。
[0168]第二种识别策略:将包含预设特征词的query识别为具有与该特征词所对应的需求强度。
[0169]例如,可以预设对应地图高强度需求的特征词包括:“怎么走”、“地址”、“地图”、“在哪”等,接收到用户query后,如果用户query包含这些特征词中的一种,则识别该用户query具有地图高强度需求。
[0170]可以预设对应地图弱强度需求的特征词包括:预先挖掘出的地图泛需求词。
[0171]第三种识别策略:根据预设模板和模板槽中的具体内容与需求强度之间的对应关系进行需求强度的识别。
[0172]例如,如果用户query匹配到模板[“从”][地名][“到”][地名]或[“从”][地名][“至”][地名],且两模板槽中的地名为同一城市内,则对应地图高强度需求。
[0173]如果用户query匹配到模板[“从”][地名][“到”][地名]或[“从”][地名][“至”][地名],且两模板槽中的地名不在同一城市内,则对应地图弱强度需求。
[0174]如果不满足地图高强度需求和地图弱强度需求的识别策略,则认为无地图需求。
[0175]实施例二、
[0176]图2为百度实施例二提供的地图泛需求词的挖掘方法流程图,如图2所示,该方法包括以下步骤:
[0177]步骤201:从搜索日志中获取用户query。
[0178]步骤202:利用地名词典确定包含地名的用户query。
[0179]步骤203:将步骤202确定的用户query与包含地图泛需求词模板槽的种子模板进行匹配,确定用户query匹配到的地图泛需求词模板槽的内容作为泛需求词。
[0180]可以预先确定一些质量较优的种子模板,这些种子模板都包含“地图泛需求词”这样的模板槽,例如:[地图][地图泛需求词]、[地图泛需求词][地名]等。
[0181]将用户query与种子模板进行匹配,如果匹配,则可以将匹配到的地图泛需求词模板槽的内容作为泛需求词。
[0182]可以将获取的所有泛需求词都作为地图泛需求词。也可以进一步执行步骤204。
[0183]步骤204:利用步骤202确定的用户query分别与种子query的核心向量的距离为各用户query打分。
[0184]在本实施例中可以预先将一些具有地图泛需求属性的query作为种子query,利用这些种子query进行搜索后,可以将其对应搜索结果的标题或摘要等作为核心向量。计算步骤201确定的用户query与种子query的核心向量的距离并将其作为用户query打分的依据,距离越近对应的打分值越高,反之打分值越低。
[0185]步骤205:结合各泛需求词所属用户query的打分值、所述种子模板的质量以及种子模板的数目中的至少一个,确定获取的各泛需求词的置信度,确定置信度满足预设置信度要求的泛需求词作为地图泛需求词。
[0186]其中,种子模板的质量可以表示为:种子模板匹配出的泛需求词数目占所有种子模板匹配出的总泛需求词数目的比例。
[0187]实施例三、
[0188]图3为百度实施例三提供的地图需求query的挖掘方法流程图,如图3所示,该方法可以包括以下步骤:
[0189]步骤301:从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计该用户query的搜索次数和切换到地图页面的次数。
[0190]本实施例利用搜索日志中的搜索数据挖掘地图需求query,在获取用户query时,可以利用最近一段时间内的搜索日志,例如最近30天的搜索日志。
[0191]在搜索日志中,如果某用户query的搜索结果中,由于用户点击而切换到地图页面,则说明用户输入该用户query可能具有地图需求,这部分用户query可以用于挖掘地图需求query。
[0192]步骤302:将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query过滤掉。
[0193]本步骤是将低频的用户query过滤掉,从而提高后续需求识别的准确性和效率。
[0194]步骤303:确定切换到地图页面的次数与搜索次数的比值排在前N1个的用户query作为地图需求query,其中N1为预设的正整数。
[0195]在此,切换到地图页面的次数与搜索次数的比值越大,说明该用户query的地图需求强度越高,因此将该比值作为选取地图需求query的标准。
[0196]实施例四、
[0197]图4为百度实施例四提供的黑名单词的挖掘方法流程图,如图4所示,该方法可以包括以下步骤:
[0198]步骤401:从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计该用户query的搜索次数和切换到地图页面的次数。
[0199]本步骤与实施例三中的步骤301相同,不再赘述。
[0200]步骤402:将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query过滤掉。
[0201]本步骤是过滤掉低频的用户query,即过滤掉偶然出现的用户query。
[0202]步骤403:确定切换到地图页面的次数与搜索次数的比值小于预设黑名单比值的用户query。
[0203]由于切换到地图页面的次数与搜索次数的比值是选取地图需求query的标准,则如果该比值小于预设的黑名单比值,则认为该用户query无地图需求,可以从这部分用户query中提取黑名单词。
[0204]步骤404:统计步骤403确定的用户query中包含的词语在地图需求query中出现的次数,将统计的出现次数小于预设出现次数阈值的词语作为黑名单词构成黑名单词典,或者,将统计的出现次数与所在用户query对应的上述比值的平均值小于预设的平均值阈值的用户query作为黑名单词构成黑名单词典。
[0205]如果步骤403确定的用户query中某词语在地图需求query中出现的次数很小,则说明该词语具有地图需求的概率很小,因此可以将该词语在地图需求query中出现的次数作为确定是否为黑名单词的一个标准。可以单独采用词语在地图需求query中出现的次数,也可以结合该词语所在用户query对应的上述比值一起作为确定是否为黑名单词的标准。
[0206]实施例五、
[0207]图5为百度实施例五提供的地图需求识别的方法流程图,如图5所示,该方法可以包括以下步骤:
[0208]步骤501:对获取到的用户query进行预处理。
[0209]本步骤中,预处理可以包括:转换为预设的大写形式或小写形式、去掉预设的无意义符号等。其中无意义的符号包括但不限于:标点符号、斜线、空格、横线等。
[0210]步骤502:判断用户query是否包含黑名单词典中的词语,如果是,则识别出用户query无地图需求,结束流程;否则执行步骤503。
[0211]步骤503:将用户query与预先设置的odict词典进行匹配,如果匹配成功,则确定该用户query的需求强度和需求类别为在odict词典中匹配到的query对应的需求强度和需求类别。
[0212]在百度实施例中可以预先定义一些搜索日志中高频出现的用户query所对应的需求强度和需求类别形成odict词典。如果接收到的用户query能够匹配到odict词典,则直接确定出该用户query的需求强度和需求类别。
[0213]odict词典可以采用人工配置的方式,也可以采用挖掘的方式,即对每次确定出的用户query及对应的需求强度和需求类别进行记录,从中挖掘出高频的用户query所对应的需求强度和需求类别。
[0214]需要说明的是,上述步骤502和步骤503的目的是为了提高地图需求的效率,是可选步骤。且步骤502和步骤503可以以任意的顺序先后执行,如果先执行步骤503再执行步骤502,则在步骤502判断结果为否时,执行步骤504。
[0215]步骤504:根据预先建立的需求强度识别策略确定用户query对应的需求强度,如果不是无地图需求,则进一步利用预先建立的模板确定用户query对应的需求类别。
[0216]具体地,根据预先建立的需求强度识别策略确定用户query对应的需求强度时,根据不同的识别策略采用不同的确定方式,可以包括但不限于:
[0217]需求强度确定方式一:将用户query与预设的模板进行匹配,将匹配到的模板对应的需求强度作为该用户query的需求强度。如果匹配到的模板存在多个,则选择优先级最高的模板。
[0218]其中各模板的优先级可以灵活设置,例如,可以设置优先级从高到低为:对应公交查询需求的模板、对应线路查询需求的模板、对应位置查询需求的模板和对应普通地图需求的模板。
[0219]需求强度确定方式二:确定用户query包含的预设特征词,将该特征词所对应的需求强度确定为该用户query的需求强度。
[0220]需求强度确定方式三:将用户query与预设的模板进行匹配,将匹配到的模板和模板槽中的具体内容所对应的需求强度确定为该用户query的需求强度。
[0221]具体的需求强度识别策略可以参见实施例一中步骤103的描述。
[0222]通过预先建立的模板确定用户query对应的需求类别时,将用户query与预先建立的模板进行匹配,如果匹配到一个模板,则确定该用户query的需求类别为该模板对应的需求类别;如果匹配到多个模板,则根据预先设置的各模板的优先级,选择优先级最高的模板对应的需求类别作为该用户query的需求类别。
[0223]需要说明的是,在上述地图需求识别的过程中,需要对用户query进行分词、词性标注以及专有名词识别等处理,该部分内容可以利用现有技术中的方式,在此不再赘述。
[0224]如果识别出用户query的需求强度,可以根据识别出的需求强度确定地图垂直搜索结果的排序。例如,如果识别出用户query为地图强需求,则可以将地图垂直搜索结果排在最前面,如果识别出用户query为地图弱需求,则可以将地图垂直搜索结果排在中间位置。
[0225]如果识别出用户query的需求类别,则可以根据识别出的需求类别确定地图垂直搜索结果的展现形式。例如,如果识别出用户query为普通地图需求,则以普通地图的形式展现地图垂直搜索结果,如图6a所示;如果识别出用户query为位置查询需求,则以位置查询的形式展现地图垂直搜索结果,如图6b所示;等等。
[0226]以上是对百度所提供的方法进行的详细描述,下面结合实施例六对百度所提供的地图需求识别装置进行详细描述。
[0227]实施例六、
[0228]图7为百度实施例六提供的装置结构图,如图7所示,该装置可以包括:请求获取单元700、强度识别单元710和类别识别单元720。
[0229]请求获取单元700获取用户query。
[0230]该请求获取单元700可以获取搜索引擎接收到的用户query。
[0231]强度识别单元710根据预先建立的需求强度识别策略确定用户query对应的需求强度。
[0232]其中需求强度识别策略包括以下识别策略中的至少一种:
[0233]根据预设的模板与需求强度之间的对应关系进行需求强度的识别;
[0234]将包含预设特征词的用户query识别为具有与该特征词所对应的需求强度;以及,
[0235]根据预设模板和模板槽中的具体内容与需求强度之间的对应关系进行需求强度的识别。
[0236]类别识别单元720在强度识别单元710的识别结果不是无地图需求时,进一步利用预先建立的模板与需求类别之间的对应关系确定用户query对应的需求类别。
[0237]具体地,上述需求强度可以包括:地图强需求、地图弱需求和无地图需求。
[0238]需求类别包括:普通地图需求、公交查询需求、线路查询需求和位置查询需求。其中公交查询需求、线路查询需求和位置查询需求属于具体细分地图类别,还可以包含其他
具体细分地图类别。
[0239]需求强度识别策略中采用的模板与需求强度之间的对应关系可以包括但不限于:
[0240]模板:[城市名][数字][路],对应地图高强度需求。
[0241]模板:[城市名][机构名][“地址”],对应地图高强度需求。
[0242]模板:[城市名][机构名][“在哪”],对应地图高强度需求。
[0243]模板:[城市名][道路名],对应地图高强度需求。
[0244]模板:[城市名][门址],对应地图高强度需求。
[0245]模板:[城市名][“地图”],对应地图高强度需求。
[0246]模板:[地区名][“地图”],对应地图高强度需求。
[0247]模板:[地名][地图泛需求词],对应地图弱强度需求。
[0248]模板:[地名],对应地图弱强度需求。
[0249]模板:[机构名],对应地图弱强度需求。
[0250]模板:[地名][机构名核心词][机构名后缀],对应地图弱强度需求。
[0251]模板:[景点名],对应地图弱强度需求。或者,
[0252]模板:[地图需求query],对应地图弱强度需求。
[0253]需求强度识别策略中,预设的对应地图强需求的特征词可以包括但不限于:“怎么走”、“地址”、“地图”或者“在哪”。
[0254]预设的对应地图弱需求的特征词可以包括但不限于:预先挖掘出的地图泛需求词。
[0255]另外,类别识别单元720采用的模板与需求类别之间的对应关系可以包括但不限于:
[0256]模板:[城市名][数字][路],对应公交查询需求;
[0257]模板:[“从”][地名][“到”][地名],对应线路查询需求;
[0258]模板:[“从”][地名][“至”][地名],对应线路查询需求;
[0259]模板:[城市名][机构名][“地址”],对应位置查询需求;
[0260]模板:[城市名][机构名][“在哪”],对应位置查询需求;
[0261]模板:[城市名][道路名],对应位置查询需求;
[0262]模板:[城市名][门址],对应位置查询需求;
[0263]模板:[城市名][“地图”],对应普通地图需求;
[0264]模板:[地区名][“地图”],对应普通地图需求;或者,
[0265]模板:[地图需求query],对应普通地图需求。
[0266]另外,该装置还可以包括:预处理单元730,对请求获取单元700获取的用户query进行预处理后发送给强度识别单元710;预处理包括:转换为预设的大写形式或小写形式,或者去掉预设的无意义符号。
[0267]为了提高需求识别效率,该装置还可以包括:黑名单匹配单元740判断请求获取单元700获取的用户query是否包含预先挖掘的黑名单词典中的词语,如果是,识别出用户query无地图需求;否则将用户query发送给强度识别单元710。
[0268]该装置可以包含上述预处理单元730和黑名单匹配单元740中任一或者同时包含两单元,当同时包含两单元时,可以以任意先后的顺序设置在请求获取单元700和强度识别单元710之间。图7中以同时包含两单元,且预处理单元730将处理后的用户query发送给黑名单匹配单元740为例。
[0269]为了实现黑名单词典的挖掘,该装置还可以包括:包含第一请求统计子单元751、第一过滤子单元752、第一请求确定子单元753和黑名单词确定子单元754的黑名单挖掘单元750。
[0270]第一请求统计子单元751从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计获取的各用户query的搜索次数和切换到地图页面的次数。
[0271]第一过滤子单元752将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query从第一请求统计子单元751获取的用户query中过滤掉。即第一过滤子单元752过滤掉低频的用户query。
[0272]第一请求确定子单元753从第一过滤子单元752处理后的用户query中,确定切换到地图页面的次数与搜索次数的比值小于预设黑名单比值的用户query。
[0273]黑名单词确定子单元754统计第一请求确定子单元753确定的用户query中包含的词语在预先挖掘出的地图需求query中出现的次数,将统计的出现次数小于预设出现次数阈值的词语作为黑名单词构成黑名单词典,或者,将统计的出现次数与所在用户query对应的比值的平均值小于预设的平均值阈值的用户query作为黑名单词构成黑名单词典。
[0274]为了提高需求识别的效率,可以预先定义一些搜索日志中高频出现的用户query所对应的需求强度和需求类别形成odict词典,此时,该装置还可以包括:odict词典匹配单元760,将请求获取单元700获取的用户query与预先设置的odict词典进行匹配,如果匹配成功,则确定用户query的需求强度和需求类别分别为在odict词典中匹配到的query对应的需求强度和需求类别;否则,将用户query发送给强度识别单元710。
[0275]同样,odict词典匹配单元760和预处理单元730以及黑名单匹配单元740中可以在装置中出现任一或者任意组合的形式出现。在实施例中以同时出现三个单元为例,且odict词典匹配单元760的输入为黑名单匹配单元740的输出。
[0276]为了实现地图泛需求词的挖掘,该装置还可以包括:泛需求词挖掘单元770,具体包括请求获取子单元771、请求选择子单元772、种子模板匹配子单元773和泛需求词确定子单元774。
[0277]请求获取子单元771从搜索日志中获取用户query。
[0278]请求选择子单元772利用地名词典确定包含地名的用户query。
[0279]种子模板匹配子单元773将请求选择子单元772确定的用户query与包含地图泛需求词模板槽的种子模板进行匹配,确定用户query匹配到的地图泛需求词模板槽的内容作为泛需求词。
[0280]可以预先确定一些质量较优的种子模板,这些种子模板都包含“地图泛需求词”这样的模板槽,例如:[地图][地图泛需求词]、[地图泛需求词][地名]等。将用户query与种子模板进行匹配,如果匹配,则可以将匹配到的地图泛需求词模板槽的内容作为泛需求词。
[0281]泛需求词确定子单元774从泛需求词中确定地图泛需求词。
[0282]其中,泛需求词确定子单元774可以直接将泛需求词作为地图泛需求词。也可以利用请求选择子单元772确定的用户query分别与种子query的核心向量的距离为请求选择子单元772确定的用户query打分;结合各泛需求词所属用户query的打分值、所属种子模板的质量以及种子模板的数目中的至少一个,确定获取的各泛需求词的置信度,将置信度满足预设置信度要求的泛需求词作为地图泛需求词。
[0283]在本实施例中可以预先将一些具有地图泛需求属性的query作为种子query,利用这些种子query进行搜索后,可以将其对应搜索结果的标题或摘要等作为核心向量。计算请求选择子单元772确定的用户query与种子query的核心向量的距离并将其作为用户query打分的依据,距离越近对应的打分值越高,反之打分值越低。
[0284]其中,种子模板的质量可以表示为:种子模板匹配出的泛需求词数目占所有种子模板匹配出的总泛需求词数目的比例。
[0285]由于在模板中可能涉及到地图需求query,为了实现地图需求query的挖掘,该装置还包括:包含第二请求统计子单元781、第二过滤子单元782和请求挖掘子单元783的地图请求挖掘单元780。
[0286]第二请求统计子单元781从搜索日志中获取因用户点击搜索结果而切换到地图页面的用户query,统计获取的各用户query的搜索次数和切换到地图页面的次数。
[0287]第二过滤子单元782将用户query的搜索次数或者切换到地图页面的次数小于预设的过滤次数阈值的用户query从第二请求统计子单元781获取的用户query中过滤掉。
[0288]请求挖掘子单元783从第二过滤子单元782处理后的用户query中,确定切换到地图页面的次数与搜索次数的比值排在前N1个的用户query作为地图需求query,其中N1为预设的正整数。
[0289]在通过上述装置识别出用户query的需求强度后,可以将该用户query的需求强度通知给搜索引擎,使得搜索引擎可以根据该需求强度确定地图垂直搜索结果的排序。通过上述装置识别出用户query的需求类别后,也可以将该用户query的需求类别通知给搜索引擎,使得搜索引擎可以根据该需求类别确定地图垂直搜索结果的展现形式。
[0290]需要进行说明的是,在百度的上述各实施例中均以地图这种具体的服务为例进行描述,但百度所提供的方法和装置同样适用于除地图之外的其他服务,例如图片需求的识别、软件需求的识别等。也就是说,百度提供的方法和装置能够用于对预设服务的需求强度和预设服务需求类别的识别。