多关键字模糊匹配的终端适配算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多关键字模糊匹配的终端适配算法
应用软件开发
功能需求规格书
版本号 2.0.0
修订记录
日期修订版本修改章节修改描述作者
2014-08-01 1.0 新建袁勇
2014-10-09 2.0 补充袁勇
目录
1前言 3
1.1编写目的 (3)
1.2文档范围说明................................................................................................... 错误!未定义书签。

1.3文档适用读者 (3)
1.4术语、定义及缩略语 (3)
2终端适配模糊算法 (4)
2.1终端适配模糊算法简介 (4)
1前言
1.1编写目的
本文档的目的主要是介绍多关键字模糊匹配的终端适配算法的流程和处理逻辑。

1.2文档适用读者
文档适用于对开发测试人员,和终端适配相关的专业人士。

1.3术语、定义及缩略语
缩写英文名称中文描述
FRS Function Requirement Specification功能规格说明书
FTP File Transfer Protocol文件传输协议
HTTP Hypertext Transfer Protocol超文本传输协议
IMEI International Mobile Equipment Identity国际移动设备标识
OS Operating System操作系统
SFTP Secure File Transfer Protocol安全文件传输协议
SNMP Simple Network Management Protocol简单网络管理协议
WAP Wireless Access Protocol无线接入协议
WAPGW WAP Gateway WAP网关
URL Uniform Resource Locator统一资源定位器
UA User Agent一个特殊字符串头,使得
服务器能够识别客户使用
终端名称、操作系统及版
本、CPU 类型、浏览器及
版本、浏览器渲染引擎等
信息
2终端适配模糊算法
2.1终端适配模糊算法简介
模糊算法是将需要适配的UA数据(标准UA)以及非标准UA,通过多关键字模糊匹配的过程,关联到标准机型库信息,写入到UA与标准终端ID的映射表信息t_po_ua_terminal_relation,从而得到其各项相关信息,其大致流程如下图:
2.1.1标准机型库、待适配UA库、未适配UA库和异常UA

标准机型库t_po_terminal数据结构如下,包含了以下主要的信息:终端ID、英文品牌、中文品牌、别名品牌、展示品牌、机型别名、展示机型、分辨率宽、分辨率高、操作系统、机型别名是否包含字母以及其他属性。


端ID 英文品牌
中文
品牌




展示
品牌
机型
别名
展示机型








操作系











1XX
HTC 宏达
电子HTC G10 Desire HD 480 800 Android YES XXX
2XX
HTC 宏达
电子HTC
Desi
re
HD Desire HD 480 800 Android YES XXX
3XX
SAMSUNG 三星S
E三星
X20
8 SGH-X208 240 320 Android YES XXX
其中:终端ID 是标示终端信息的唯一字段,展示品牌是指在使用国家和区域中消费者普遍了解和熟悉的品牌,如诺基亚、HTC ,展示机型是指机型的标准名称或行货的名称,一个标准机型包含一个或多个机型别名,但在机型信息中,所以的标准机型应该存在一条记录,其机型别名与标准机型一致(这一点需要机型维护人员保证,系统定期校验),机型别名是否包含字母是便于在适配算法中提升准确率而设定的一个参数,由系统自行计算,及判断机型中是否包含A-Za-z 的字母及中文汉字;
待适配UA 库t_po_erroradapterrecord 是指需要进行模糊适配的UA 信息;未适配UA 库T_PO_notadaptua 是指经过每日定时运行的模糊匹配算法处理后无法关联标准终端ID 的UA 信息;异常UA 库t_po_ua_error 是指经过人工鉴定,确实无法映射到任何标准终端ID 的UA ,如*,maui 等。

2.1.2 模糊匹配算法前置处理
A 、 提取待适配UA 表t_po_errorua 的数据,并根据UA 关联剔除存在未适配UA 表
T_PO_notadapterua 和异常UA 表t_po_ua_error 中的数据,其中关联时不区分大小写;
B 、 检查机型库中机型别名字段是否包含操作系统名称的数据,如机型包含DROID 、
SYMBian 、plam 、windows 等,这类数据暂时不处理;
C 、 每周选定一个时间,将未适配UA 表T_PO_notadapterua 进行回笼处理,目前设定
每周二定期将未适配UA 表全量加载到待适配UA 表t_po_erroradapterrecord 中,并将未适配UA 表T_PO_notadapterua 清空;(因为随着机型信息的补充和适配算法的优化,可能存在部分未适配UA 表的数据能够通过模糊算法映射到标准机型ID )。

D 、 将待适配UA 表t_po_erroradapterrecord 的数据按UA 去重后放入到本次处理的一
个中间表t_po_lostuseragent_DATE 中,包含ua 、upp_ua 、dtime 三个字段,其中dtime 默认为插入时间,upp_ua=upper(ua),及将ua 转换成大写填充。

2.1.3 UA 同时包含品牌和机型的处理逻辑
对于UA 同时包含品牌和机型的信息,作为适配的第一层级策略,其可靠性是最高的,而判断“包含”采用的技术手段是采用instr 函数(oracle 数据库提供的字符串函数,后文所用包含同此)。

A 、 当UA 同时包含机型库的英文品牌和机型别名,且机型库的英文品牌和机型别名非
空,则认为该UA 能适配此标准机型,并将此UA 与标准终端ID 的映射关系写入临时映射表中,并将UA 中间表t_po_lostuseragent_DATE 的相关记录删除,将其优先级值置为1;
C
4XX SONYERICSSO
N 索尼爱立信 索爱 索尼爱立信
LT22i
LT22i 540 960 Android YES XXX 5XX
NOKIA
诺基亚
诺基亚 580
0 5800XM
240 320 symbian
NO
XXX
B、当UA同时包含机型库的中文品牌和机型别名,且机型库的中文品牌和机型别名非
空,则认为该UA能适配此标准机型,并将此UA与标准终端ID的映射关系写
入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,
将其优先级值置为1;
C、当UA同时包含机型库的别名品牌和机型别名,且机型库的别名品牌和机型别名非
空,则认为该UA能适配此标准机型,并将此UA与标准终端ID的映射关系写
入临时映射表中,并将UA中间表t_po_lostuseragent_DATE的相关记录删除,
将其优先级值置为2;
D、对于同一个UA映射多个终端ID的情况,根据终端ID对应的机型别名长度最长最
先选择,对于长度相同时,根据终端ID的大小从大至小优先判断;
2.1.4UA仅包含机型的处理逻辑
经过3.1.3的处理后仍未建立映射关系的UA,进行这一轮适配逻辑,即仅包含机型处理。

A、对于机型别名中包含字母(该字段为YES),且机型别名长度大于等于2位,且UA
所包含机型别名的位置的前一位和后一位为特殊字符(即不是大小写字母
A-Za-z及数据0-9),如UA:mozilla/5800XM symbian v40 对应机型诺基亚
5800XM,其UA包含机型别名位置的前一位和后一位分别为”/”和” ”,则将该
UA能此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,
并将UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为
3;
B、对于机型别名中不包含字母(该字段为NO,及机型为纯数字),且机型别名长度
大于等于4位,且展示品牌为’HTC','OPPO','LG','步步高','多普达','华为','摩托罗
拉','诺基亚','三星','小米','夏普','魅族'等,且UA所包含机型别名的位置的前一
位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9),如UA:
mozilla/5800 symbian v40 对应机型诺基亚5800,其UA包含机型别名位置的
前一位和后一位分别为”/”和” ”,则将该UA能此标准机型,并将此UA与标准
终端ID的映射关系写入临时映射表中,并将UA中间表t_po_lostuseragent_DATE
的相关记录删除,将其优先级值置为4;
C、对于机型别名中不包含字母(该字段为NO,及机型为纯数字),且机型别名长度
大于等于4位,且展示品牌不为’HTC','OPPO','LG','步步高','多普达','华为','摩托
罗拉','诺基亚','三星','小米','夏普','魅族'等,且UA所包含机型别名的位置的前
一位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9),则将该UA
能此标准机型,并将此UA与标准终端ID的映射关系写入临时映射表中,并将
UA中间表t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为5;
D、对于仍未适配的UA,仅使用UA包含机型别名,且所包含机型别名的位置的前一
位和后一位为特殊字符(即不是大小写字母A-Za-z及数据0-9)的条件进行适
配,并将此UA与标准终端ID的映射关系写入临时映射表中,并将UA中间表
t_po_lostuseragent_DATE的相关记录删除,将其优先级值置为6;
E、以上适配结果的优先级A>B>C,同一优先级中如存在一个UA映射多个终端ID的情
况,根据终端ID对应的机型别名长度最长最先选择,对于长度相同时,根据终
端ID的大小从大至小优先判断。

2.1.5UA只包含操作系统的处理逻辑
创建三个机型,机型别名分别为Android、Symbian和windows phone,其品牌、操作系统也为Android、Symbian和windows phone(不能在处理适配算法前创建,建议做个特殊处理),对于UA中不包含其他机型别名或所包含机型别名位置的前一位和后一位为字母或数字,且UA中仅包含Android、Symbian和windows phone等关键字,则将此UA映射到三个特殊机型。

2.1.6引入适配关系的适配程度层级概念,并对低层级关系数
据进行动态更新
因不同条件下建立的ua与终端关系的可靠性是不同的,所以针对每条关系数据,引入适配程度层级概念,分别为15-0级,数字越高代表可靠性越高,从实际效果测量来看,12级及以上可以认为100%适配正确,10级及以下认为可靠性不高,适配准确率在80-90%左右;
因存在机型上市后基地的机型信息补充不及时的情况,可能将新机型的UA适配的老的、错误的机型上,定期进行一次全UA的重新模糊适配,具体算法如下:将当前UA与机型关系表t_po_ua_terminal_relation中适配程度层级低于10级的数据备份后,在非业务时段将此表数据加入到待适配UA表t_po_erroradapterrecord,按以上模糊适配算法得出新的UA与机型关系表,提取关联机型ID不一致的数据,并比对各UA在新老关系表的优先级值,如果新的优先级值高,则将新数据写入t_po_ua_terminal_relation,如果老的数据优先级高或新的关系表不存在,则将老数据写入t_po_ua_terminal_relation表。

2.1.7最后处理逻辑
A、将标准机型库表t_po_terminal中根据机型别名等于展示机型,展示品牌相同的条件生
成一张标准机型视图t_po_terminalinfo,并将3.1.5生成的三个特殊机型补充到视图中(原表不添加,可选);
B、将 3.1.2-3.1.5生成的UA与标准终端ID的关联关系(A1表),关联标准机型库表
t_po_terminal(B1表)和标准机型视图t_po_terminalinfo(C1表),根据A1的终端ID 等于B1的终端ID,B1的展示品牌等于C1的展示品牌,B1的展示机型等于C1的机型别名,取A1的UA和C1的终端ID生成最终的映射关系表,补充到UA与机型映射关系表t_po_ua_terminal_relation中;
C、将此次未适配成功的UA输入插入到未适配UA库T_PO_notadapterua。

2.1.8从未适配成功的UA中自动提取机型功能
对于未适配成功的UA,一部分是UA中未包含有效的终端信息导致无法适配,还有部分是因为机型库中没有补充对应的机型所致,未适配成功UA很多,人工筛选效率很低,为了方便终端管理人员直观地看到需要补充哪些机型,本算法实现从未适配成功UA中自动提取待添加的机型信息,存入到待补充机型表t_po_needinsertmodel中。

2.1.9后续优化建议
1、后续可以将2.1.8中获取的待补充机型信息通过接口的方式到公开市场或工信部相关网
站获取机型的属性信息(详情属性参见2.1.1)。

2、对于包含品牌和机型的标准UA,可以考虑实时适配,提升用户的感知。

相关文档
最新文档