一种网络账号快速检索的分词方法

文档序号:8258926阅读:245来源:国知局
一种网络账号快速检索的分词方法
【技术领域】
[0001]本发明涉及计算机网络数据处理技术领域,特别是一种网络账号快速检索的分词方法。
【背景技术】
[0002]随着互联网的普及,网民的数量(2014年中国网民达6亿多)和网站的数量都在在急剧增长,注册的网络账号也随之增长。如果要在大量的互联网网页中检索某个网络账号,是一个比较大的技术难题。现在的搜索引擎的常见做法是将网页的内容通过切词,保存为倒排索引的格式加快检索的速度。其中分词方法的优劣会影响检索的速度。
[0003]常见的搜索引擎英文串分词方法步骤简单描述如下:
[0004]O:定义非英文字母和数字的符号分隔符,例如空格,逗号,句点符号;
[0005]1:将连续在一起的英文字母和数字组成一个词,遇到分隔符时,当前分词结束。
[0006]网络账号一般由ascii码(英文字母、数字、减号、下划线)组成。对于常见的英文分词方法,如果账号中有减号,下划线等符号,则会分割为多个查询词,例如账号〃wwt_abc_123〃,会被分成为3个查询词:〃wwt〃, 〃abc〃, 〃123〃。过多的查询词会导致检索速度的下降,主要体现在下面的步骤里:
[0007]1:需对每个词查询词表,定位其所在倒排表位置,并读取每个词的倒排表信息;
[0008]2:对每个词的所在文档做交集运算;
[0009]3:对每个词在文档中的位置距离做运算。

【发明内容】

[0010]发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种网络账号快速检索的分词方法,本发明通过账号的组成分析,提出新的分词方法,对于账号的英文串,最终只分出一个词来,减少检索的步骤(只需读取倒排表信息即可),从而达到提高检索速度的目的。
[0011]为了解决上述技术问题,本发明公开了一种网络账号快速检索的分词方法,包括以下步骤:
[0012]步骤一,连字符的搜集:搜集连接英文和数字字符的符号以及符号出现的频率;
[0013]步骤二,定义连字符集合;
[0014]步骤三,处理连字符;
[0015]步骤四,对账号分词。
[0016]本发明中,步骤一包括:
[0017]步骤1,以不可见字符分割输入字符串string,得到多个子字符串sub_string ;
[0018]步骤2,过滤超短或超长的子字符串;
[0019]步骤3,进行搜集,包括:
[0020]步骤3a,令指针ptr指向过滤后的子字符串sub_string的开始字符;
[0021]步骤3b,判断子字符串substring的剩余长度是否小于3,是则跳转到步骤3d,否则执行步骤3c ;
[0022]步骤3c,判断指针ptr所指向的3个字符是否同时满足以下三个条件:
[0023]第一个字符是英文或者数字字符,
[0024]第二个字符是可见的符号,
[0025]第三个字符是英文或者数字字符,
[0026]如果满足,则将第二个字符添加到连字符集合里,并将第二个字符的频率加1,且将指针Ptr指向第三个字符;如果不满足,则将指针Ptr指向第二个字符,返回步骤3c ;
[0027]步骤3d,对连字符集合按频率由高到低排序输出。
[0028]本发明中,不可见字符空格、tab符号以及回车换行符中的任意一种。
[0029]本发明中,超短或超长的子字符串的范围是6?20个字符。
[0030]本发明中,定义连字符包括减号、下划线以及英文句点。
[0031]本发明中,将连字符作为分词的一部分,连接连字符前后的英文或数字字符。
[0032]本发明中,包括以下步骤:
[0033]步骤4,输入待分词文件f ile ;
[0034]步骤5,初始化当前词word为空,当前词word用于存储当前待确定的词;
[0035]步骤6,判断文件file是否读取完,是则跳转到结束步骤11,否则执行下一步;
[0036]步骤7,判断文件file中下一个字符是否是多字节字符,如果是则忽略该字,跳到下一个字符,并返回步骤6,否则跳到下一个字符,执行下一步;
[0037]步骤8,读取文件file中当前字符;
[0038]步骤9,判断该字符是否是英文字或数字,如果是则将该字符添加到当前词word的尾部,并跳转到步骤6,否则执行下一步;
[0039]步骤10,判断该字是否是连字符,如果是则将该字符添加到当前词word的尾部,并跳转到步骤6,否则将当前词word添加到词组array中,并跳转到步骤5 ;
[0040]步骤11,输出词组array。
[0041]本发明分词连字符的定义及分词时对连字符的特殊处理,可将带有连字符的账号切分成一个独立的词,在检索倒排时只需查找一个词,提高检索速度。本发明对于由减号,下划线等组成的账号,切分后的词数只有一个,例如对于账号:wwt-abc-123,用本专利方法,最终切成一个查询词:〃wwt-abC-123〃,而对于常见的分词方法,则切成3个查询词:〃wwt〃,〃abc〃,"123"。查询词数量减少了,意味着检索步骤也减少了,从而提高了检索速度。相对于常见分词的检索流程,本发明分词的检索流程,减少了以下步骤:只要查询一个词的倒排表,无需查询多个词的倒排表;2:无需做多个词的文档交集运算;3:无需做多个词在文档中的位置距离计算。
【附图说明】
[0042]下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0043]图1为过滤操作示例图。
[0044]图2为连字符搜集示例图。
[0045]图3为连字符搜集结果示例图。
[0046]图4常用连接符集合。
[0047]图5为账号分词流程图。
【具体实施方式】
[0048]实施例
[0049]本实施例公开了一种网路账号快速检索的分词方法,包括连字符的搜集、连字符集合的定义、连字符的处理以及分词。
[0050]步骤一,连字符的搜集部分将连接英文和数字字符的符号以及符号出现的频率搜集起来,分析前3个频率最高的字符,步骤如下:
[0051]A:先对输入字符串string做前期分割和过滤操作
[0052]如图1所示,
[0053]I:以不可见字符(指ASCII码值小于等于32的字符)分割输入字符串string,得到子字符串集substring,具体步骤如下:
[0054]Ia:置子串 sub_str 为空
[0055]Ib:判断字符串string是否还有字符,如果没有,则将非空字串sub_str添加到sub_string里,并跳转到步骤Ie
[0056]Ic:取下一个字符ch
[0057]Id:判断字符ch是否为不可见字符,如果是,将非空字串sub_str添加到sub_string里,并跳转到la,
[0058]否则将字符ch添加到sub_str的尾部,并跳转到步骤Ib
[0059]这里的不可见字符,是指ASCII码值小于等于32的字符,包括空格符,tab键等
[0060]Ie:输出子串集 sub_string
[0061]经过上面的分割方法,例子中的输入串被分割为3个子串:
[0062]“wwt-abc-123,,,^http://192.168.1.1/main, html ”,“wt.
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1