本发明涉及终端技术领域,尤其涉及一种搜索词的分词方法及终端。
背景技术:
随着互联网技术的快速发展,通过互联网查找信息时,通常在搜索引擎中设置搜索词搜索以获取搜索词相关的信息。但现有的搜索词分词器主要有ik,mmesg4j等。在这些分词器中,对连续的数字或者字母分词时,是将连续的数字或字母整体作为一个分词进行搜索,而不会对连续的数字或字母分词进一步分词。例如,通过ik分词器对搜索词:中国123abc进行分词,得到:中国、123和abc三个分词,其中分词123和abc并不会被再分词。搜索数字或字母时的模糊匹配效果较差。
技术实现要素:
本发明要解决的技术问题是,提供一种搜索词的分词方法及终端,克服现有技术中不能对搜索词中的连续数字或字母字符串进行分词的缺陷。
为实现上述目的,本发明提供的一种终端,包括:
基础分词模块,用于根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串;
搜索分词模块,用于将每个基础字符串拆分为一个或多个搜索字符串;所述搜索字符串为基础字符串中设定长度的连续字符;
搜索模块,用于基于所述搜索字符串,进行搜索匹配。
可选的,所述基础分词模块,具体用于:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
可选的,所述搜索分词模块,具体用于:
获取用户预先设置的所述搜索字符串的长度h;;
将每个基础字符串拆分为k-h+1个搜索字符串;所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述k为每个基础字符串的长度,所述i的取值范围为[1,k-h+1]。
可选的,所述搜索分词模块,具体用于:
获取用户预先设置的所述搜索字符串的长度h;其中,所述h的取值范围为[n,m];所述m小于k;所述n大于0;
将每个基础字符串拆分为多个搜索字符串;所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述k为每个基础字符串的长度,所述i的取值范围为[1,k-h+1]。
可选的,所述搜索分词模块,具体用于:
将每个基础字符串拆分为长度为h的多个搜索字符串,所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述h的取值范围为[1,k],
所述i的取值范围为[1,k-h+1],
所述k为每个基础字符串的长度。
本发明还提供一种搜索词的分词方法,包括:
根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串;
将每个基础字符串拆分为一个或多个搜索字符串;所述搜索字符串为基础字符串中设定长度的连续字符;
基于所述搜索字符串,进行搜索匹配。
可选的,所述根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串,包括:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
可选的,所述将每个基础字符串拆分为一个或多个搜索字符串,包括:
获取用户预先设置的所述搜索字符串的长度h;
将每个基础字符串拆分为k-h+1个搜索字符串;所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述k为每个基础字符串的长度;所述i的取值范围为[1,k-h+1]。
可选的,所述将每个基础字符串拆分为一个或多个搜索字符串,包括:
获取用户预先设置的所述搜索字符串的长度h;其中,所述h的取值范围为[n,m],所述m小于k,所述n大于0;
将每个基础字符串拆分为多个搜索字符串;所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述k为每个基础字符串的长度,所述i的取值范围为[1,k-h+1]。
可选的,所述将每个基础字符串拆分为一个或多个搜索字符串,包括:
将每个基础字符串拆分为长度为h的多个搜索字符串,所述搜索字符串为所述基础字符串中第i个字符开始的h个连续字符;其中,所述h的取值范围为[1,k],所述i的取值范围为[1,k-h+1],所述k为每个基础字符串的长度。
采用上述技术方案,本发明至少具有下列优点:
本发明所述一种搜索词的分词方法及终端,能够对搜索词中的连续数字或字母字符串进行分词,有效提高了搜索数字字符串或字母字符串的模糊匹配精度。
附图说明
图1为实现本发明各个实施例一可选的移动终端的硬件结构示意图;
图2为本发明第一实施例的搜索词的分词方法流程图;
图3为本发明第三实施例的终端组成结构示意图;
图4为本发明第五实施例的搜索词的分词方法流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例一可选的移动终端的硬件结构示意。
移动终端100可以包括无线通信单元110、a/v(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括tv广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与tv或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(dmb)的电子节目指南(epg)、数字视频广播手持(dvb-h)的电子服务指南(esg)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(dmb-t)、数字多媒体广播-卫星(dmb-s)、数字视频广播-手持(dvb-h),前向链路媒体(mediaflo@)的数据广播系统、地面数字广播综合服务(isdb-t)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点b等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括wlan(无线lan)(wi-fi)、wibro(无线宽带)、wimax(全球微波互联接入)、hsdpa(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙tm、射频识别(rfid)、红外数据协会(irda)、超宽带(uwb)、紫蜂tm等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是gps(全球定位系统)。根据当前的技术,gps模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,gps模块115能够通过实时地连续计算当前位置信息来计算速度信息。
a/v输入单元120用于接收音频或视频信号。a/v输入单元120可以包括相机121和麦克风122,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。感测单元140可以包括接近传感器141将在下面结合触摸屏来对此进行描述。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(ui)或图形用户界面(gui)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的ui或gui等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(lcd)、薄膜晶体管lcd(tft-lcd)、有机发光二极管(oled)显示器、柔性显示器、三维(3d)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为toled(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。
警报单元153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元153可以以不同的方式提供输出以通知事件的发生。例如,警报单元153可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incomingcommunication)时,警报单元153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元153也可以经由显示单元151或音频输出模块152提供通知事件的发生的输出。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
基于上述移动终端硬件结构,提出本发明方法各个实施例。
本发明第一实施例,一种搜索词的分词方法,如图2所示,包括以下具体步骤:
步骤s101,根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串。
可选的,步骤s101,包括:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字(例如:123)或连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,步骤s101,包括:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字或连续的多个字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字(例如:123)或连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,步骤s101,包括:
判断搜索词中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc123)中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母(例如:abc123)拆分为一个基础字符串,得到所有基础字符串(例如:abc123)。
步骤s102,将每个基础字符串拆分为一个或多个搜索字符串;搜索字符串为基础字符串中设定长度的连续字符。
例如:将基础字符串(例如:abc)拆分为两个搜索字符串(例如:ab和bc);搜索字符串(例如:ab和bc)为基础字符串(例如:abc)中长度为2的连续字符(例如:ab和bc)。
又如:将每个基础字符串(例如:ab)拆分为一个搜索字符串(例如:ab);搜索字符串(例如:ab)为基础字符串(例如:ab)中长度为2的连续字符(例如:ab)。
又如:将基础字符串(例如:123)拆分为两个搜索字符串(例如:12和23);搜索字符串(例如:12和23)为基础字符串(例如:123)中长度为2的连续字符(例如:12和23)。
步骤s103,基于搜索字符串,进行搜索匹配。
第一实施例中所述的一种搜索词的分词方法,能够对搜索词中的连续数字或字母字符串进行分词,有效提高了搜索数字字符串或字母字符串的模糊匹配精度。
本发明第二实施例,一种搜索词的分词方法,包括以下具体步骤:
步骤s201,根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串。
可选的,步骤s201,包括:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字(例如:123)或连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,步骤s201,包括:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字或连续的多个字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字(例如:123)或连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,步骤s201,包括:
判断搜索词中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母拆分为一个基础字符串,得到所有基础字符串。
例如:判断搜索词(例如:中国人abc123)中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母(例如:abc123)拆分为一个基础字符串,得到所有基础字符串(例如:abc123)。
步骤s202,将每个基础字符串拆分为一个或多个搜索字符串;搜索字符串为基础字符串中设定长度的连续字符。
可选的,步骤s202,包括:
获取用户预先设置的所述搜索字符串的长度h;
将每个基础字符串拆分为k-h+1个搜索字符串;搜索字符串为基础字符串中第i个字符开始的h个连续字符;
其中,k为每个基础字符串的长度;
i的取值范围为[1,k-h+1]。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
获取用户预先设置的所述搜索字符串的长度h=2;
将第一基础字符串abcd拆分为k1-h+1=4-2+1=3个搜索字符串;搜索字符串为第一基础字符串中第i1个字符开始的2个连续字符;
第一基础字符串abcd的3个搜索字符串包括:ab、bc和cd;
k1=4为第一基础字符串的长度;
i1的取值范围为[1,k1-h+1]。
将第二基础字符串12345拆分为k2-h+1=5-2+1=4个搜索字符串;搜索字符串为第二基础字符串中第i2个字符开始的2个连续字符;
第二基础字符串12345的4个搜索字符串包括:12、23、34和45;
k2=5为第二基础字符串的长度;
i2的取值范围为[1,k2-h+1]。
可选的,步骤s202,包括:
获取用户预先设置的所述搜索字符串的长度h;
h的取值范围为[n,m];m小于k;n大于0;
将每个基础字符串拆分为多个搜索字符串;搜索字符串为基础字符串中第i个字符开始的h个连续字符;
k为每个基础字符串的长度;
i的取值范围为[1,k-h+1]。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
获取用户预先设置的所述搜索字符串的长度h;
h的取值范围为[n,m];m=3;n=2;
将第一基础字符串abcd拆分为k1-h+1=(k1-m+1)+(k1-n+1)=(4-3+1)+(4-2+1)=5个搜索字符串;搜索字符串为第一基础字符串中第i1个字符开始的h个连续字符;
第一基础字符串abcd的5个搜索字符串包括:ab、bc、cd、abc和bcd;
k1=4为第一基础字符串的长度;
i1的取值范围为[1,k1-h+1]。
将第二基础字符串12345拆分为k2-h+1=(k1-m+1)+(k1-n+1)=(5-3+1)+(5-2+1)=7个搜索字符串;搜索字符串为第二基础字符串中第i2个字符开始的h个连续字符;
第二基础字符串12345的7个搜索字符串包括:12、23、34、45、123、234和345;
k2=5为第二基础字符串的长度;
i2的取值范围为[1,k2-h+1]。
可选的,步骤s202,包括:
将每个基础字符串拆分为长度为h的多个搜索字符串,搜索字符串为基础字符串中第i个字符开始的h个连续字符;
h的取值范围为[1,k];
i的取值范围为[1,k-h+1];
k为每个基础字符串的长度。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
将第一基础字符串abcd拆分为长度为h的多个搜索字符串,搜索字符串为第一基础字符串中第i1个字符开始的h个连续字符;
h的取值范围为[1,k1];
i1的取值范围为[1,k1-h+1];
k1为第一基础字符串的长度。
第一基础字符串abcd的10个搜索字符串包括:a、b、c、d、ab、bc、cd、abc、bcd和abcd;
将第二基础字符串12345拆分为长度为h的多个搜索字符串,搜索字符串为第一基础字符串中第i2个字符开始的h个连续字符;
h的取值范围为[1,k2];
i的取值范围为[1,k2-h+1];
k2为第二基础字符串的长度。
第一基础字符串12345的15个搜索字符串包括:1、2、3、4、5、12、23、34、45、123、234、345、1234、2345和12345。
步骤s203,基于搜索字符串,进行搜索匹配。
第二实施例中所述的一种搜索词的分词方法,能够根据用户设置的搜索字符串的长度,对搜索词中的连续数字或字母字符串进行分词,得到多个搜索字符串;或自动对搜索词中的连续数字或字母字符串进行分词,得到多个搜索字符串,有效提高了搜索数字字符串或字母字符串的模糊匹配精度。
本发明第三实施例,一种终端,如图3所示,包括以下组成部分:
基础分词模块161,用于根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字(例如:123)或连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字或连续的多个字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字(例如:123)或连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc123)中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母(例如:abc123)拆分为一个基础字符串,得到所有基础字符串(例如:abc123)。
搜索分词模块162,用于将每个基础字符串拆分为一个或多个搜索字符串;搜索字符串为基础字符串中设定长度的连续字符。
例如:搜索分词模块162,用于将基础字符串(例如:abc)拆分为两个搜索字符串(例如:ab和bc);搜索字符串(例如:ab和bc)为基础字符串(例如:abc)中长度为2的连续字符(例如:ab和bc)。
又如:搜索分词模块162,用于将每个基础字符串(例如:ab)拆分为一个搜索字符串(例如:ab);搜索字符串(例如:ab)为基础字符串(例如:ab)中长度为2的连续字符(例如:ab)。
又如:搜索分词模块162,用于将基础字符串(例如:123)拆分为两个搜索字符串(例如:12和23);搜索字符串(例如:12和23)为基础字符串(例如:123)中长度为2的连续字符(例如:12和23)。
搜索模块164,用于基于搜索字符串,进行搜索匹配。
第三实施例中所述的一种终端,能够对搜索词中的连续数字或字母字符串进行分词,有效提高了搜索数字字符串或字母字符串的模糊匹配精度。
本发明第四实施例,一种终端,包括以下组成部分:
基础分词模块161,用于根据预置的搜索词分词规则,将搜索词拆分为一个或多个基础字符串。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字或连续的字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的数字(例如:123)或连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字或连续的多个字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大123)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个数字(例如:123)或连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:123和abc)。
又如:基础分词模块161,用于判断搜索词(例如:中国人abc伟大)中是否存在数字和/或字母;
若存在,则将搜索词中连续的多个字母(例如:abc)拆分为一个基础字符串,得到所有基础字符串(例如:abc)。
可选的,基础分词模块161,用于:
判断搜索词中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母拆分为一个基础字符串,得到所有基础字符串。
例如:基础分词模块161,用于判断搜索词(例如:中国人abc123)中是否存在数字和字母;
若存在,则将搜索词中连续的多个数字和字母(例如:abc123)拆分为一个基础字符串,得到所有基础字符串(例如:abc123)。
搜索分词模块162,用于将每个基础字符串拆分为一个或多个搜索字符串;搜索字符串为基础字符串中设定长度的连续字符。
可选的,搜索分词模块162,用于:
获取用户预先设置的所述搜索字符串的长度h;
将每个基础字符串拆分为k-h+1个搜索字符串;搜索字符串为基础字符串中第i个字符开始的h个连续字符;
k为每个基础字符串的长度;
i的取值范围为[1,k-h+1]。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
搜索分词模块162,用于获取用户预先设置的所述搜索字符串的长度h=2;
将第一基础字符串abcd拆分为k1-h+1=4-2+1=3个搜索字符串;搜索字符串为第一基础字符串中第i1个字符开始的2个连续字符;
第一基础字符串abcd的3个搜索字符串包括:ab、bc和cd;
k1=4为第一基础字符串的长度;
i1的取值范围为[1,k1-h+1]。
将第二基础字符串12345拆分为k2-h+1=5-2+1=4个搜索字符串;搜索字符串为第二基础字符串中第i2个字符开始的2个连续字符;
第二基础字符串12345的4个搜索字符串包括:12、23、34和45;
k2=5为第二基础字符串的长度;
i2的取值范围为[1,k2-h+1]。
可选的,搜索分词模块162,用于:
获取用户预先设置的所述搜索字符串的长度h;
h的取值范围为[n,m];m小于k;n大于0;
将每个基础字符串拆分为多个搜索字符串;搜索字符串为基础字符串中第i个字符开始的h个连续字符;
k为每个基础字符串的长度;
i的取值范围为[1,k-h+1]。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
搜索分词模块162,用于获取用户预先设置的所述搜索字符串的长度h;
h的取值范围为[n,m];m=3;n=2;
将第一基础字符串abcd拆分为k1-h+1=(k1-m+1)+(k1-n+1)=(4-3+1)+(4-2+1)=5个搜索字符串;搜索字符串为第一基础字符串中第i1个字符开始的h个连续字符;
第一基础字符串abcd的5个搜索字符串包括:ab、bc、cd、abc和bcd;
k1=4为第一基础字符串的长度;
i1的取值范围为[1,k1-h+1]。
将第二基础字符串12345拆分为k2-h+1=(k1-m+1)+(k1-n+1)=(5-3+1)+(5-2+1)=7个搜索字符串;搜索字符串为第二基础字符串中第i2个字符开始的h个连续字符;
第二基础字符串12345的7个搜索字符串包括:12、23、34、45、123、234和345;
k2=5为第二基础字符串的长度;
i2的取值范围为[1,k2-h+1]。
可选的,搜索分词模块162,用于:
将每个基础字符串拆分为长度为h的多个搜索字符串,搜索字符串为基础字符串中第i个字符开始的h个连续字符;
h的取值范围为[1,k];
i的取值范围为[1,k-h+1];
k为每个基础字符串的长度。
例如:基础字符串包括:第一基础字符串abcd和第二基础字符串12345;
搜索分词模块162,用于将第一基础字符串abcd拆分为长度为h的多个搜索字符串,搜索字符串为第一基础字符串中第i1个字符开始的h个连续字符;
h的取值范围为[1,k1];
i1的取值范围为[1,k1-h+1];
k1为第一基础字符串的长度。
第一基础字符串abcd的10个搜索字符串包括:a、b、c、d、ab、bc、cd、abc、bcd和abcd;
将第二基础字符串12345拆分为长度为h的多个搜索字符串,搜索字符串为第一基础字符串中第i2个字符开始的h个连续字符;
h的取值范围为[1,k2];
i的取值范围为[1,k2-h+1];
k2为第二基础字符串的长度。
第一基础字符串12345的15个搜索字符串包括:1、2、3、4、5、12、23、34、45、123、234、345、1234、2345和12345。
搜索模块164,用于基于搜索字符串,进行搜索匹配。
第四实施例中所述的一种终端,能够根据用户设置的搜索字符串的长度,对搜索词中的连续数字或字母字符串进行分词,得到多个搜索字符串;或自动对搜索词中的连续数字或字母字符串进行分词,得到多个搜索字符串,有效提高了搜索数字字符串或字母字符串的模糊匹配精度。
本发明第五实施例,本实施例是在上述实施例的基础上,以搜索词的分词方法为例,结合附图4介绍一个本发明的应用实例,该方法包括以下步骤:
步骤s501,通过ik采集需要分词的搜索词。
步骤s502,通过ik将需要分词的搜索词分出英文字符串及数字字符串,对英文字符串执行步骤s503,对数字字符串执行步骤s504。
步骤s503,通过ik处理英文字符串,包括以下步骤:
a1,指向任一英文字符串;
a2,记录任一英文字符的开始位置start1和结束位置end1;
a3,循环开始位置和结束位置,输出开始位置和结束位置之间的字符作为英文搜索字符串,将英文搜索字符串的开始位置a置设置为a=star1;
a4,将英文搜索字符串的长度b设置为b=1;
a5,输出英文搜索字符串的开始位置为a,英文搜索字符串的长度为b的所有英文搜索字符串,具体包括:newlexeme(context.getbufferoffset(),a,b,lexeme.type_english);并将lexeme添加到analyzecontext;
a6,将英文搜索字符串的长度b设置为b=b+1;
a7,判断英文搜索字符串的长度b是否小于等于end1-a+1;若英文搜索字符串的长度b小于等于end1-a+1,则执行步骤a8,否则返回步骤a5;
a8,将英文搜索字符串的开始位置a置设置为a=a+1;
a9,判英文搜索字符串的开始位置a是否小于等于end1;若英文搜索字符串的开始位置a小于等于end1,则执行步骤a10,否则执行步骤a4;
a10,输出所有英文搜索字符串。
步骤s504,通过ik处理数字字符串,包括以下步骤:
b1,指向任一数字字符串;
b2,记录任一数字字符的开始位置start2和结束位置end2;
b3,循环开始位置和结束位置,输出开始位置和结束位置之间的字符作为数字搜索字符串,将数字搜索字符串的开始位置c置设置为c=star1;
b4,将数字搜索字符串的长度d设置为d=1;
b5,输出数字搜索字符串的开始位置为c,数字搜索字符串的长度为c的所有数字搜索字符串,具体包括:newlexeme(context.getbufferoffset(),c,d,lexeme.type_english);并将lexeme添加到analyzecontext;
b6,将数字搜索字符串的长度d设置为d=d+1;
b7,判断数字搜索字符串的长度d是否小于等于end1-c+1;若数字搜索字符串的长度d小于等于end1-c+1,则执行步骤b8,否则返回步骤b5;
b8,将数字搜索字符串的开始位置c置设置为c=c+1;
b9,判数字搜索字符串的开始位置c是否小于等于end1;若数字搜索字符串的开始位置c小于等于end1,则执行步骤b10,否则执行步骤b4;
b10,输出所有数字搜索字符串;
步骤s505,输出所有英文搜索字符串和所有数字搜索字符串;基于所有英文搜索字符串和所有数字搜索字符串,进行搜索匹配。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
PHP网站源码南澳企业网站改版坑梓网站优化排名爱联网站优化按天收费观澜网站推广系统观澜百搜标王丹竹头英文网站建设罗湖如何制作网站盐田营销网站松岗百度竞价包年推广沙井外贸网站建设松岗网页设计惠州百搜词包布吉优化民治关键词排名包年推广福永百度关键词包年推广龙华企业网站制作龙华网站推广工具龙岗seo网站优化福田网页制作布吉网络推广木棉湾网站改版大鹏网站推广工具松岗品牌网站设计民治模板推广丹竹头网络营销福永关键词排名爱联外贸网站设计石岩网站制作设计福永关键词排名福永网站优化按天计费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运