相關(guān)性分析
數據剖析 | 基于智能標簽,精準管理數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 361 次瀏覽 ? 2020-08-03 19:03
騰訊:社交廣告,不同用戶(hù)的朋友圈或則其他媒體場(chǎng)景下的廣告信息是不同的,會(huì )基于用戶(hù)特點(diǎn)推薦。
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程
數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';
模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:
例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent 查看全部
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程
數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';
模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:
例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent 查看全部
騰訊:社交廣告,不同用戶(hù)的朋友圈或則其他媒體場(chǎng)景下的廣告信息是不同的,會(huì )基于用戶(hù)特點(diǎn)推薦。
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程

數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';

模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:

例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent
聚焦爬蟲(chóng)常見(jiàn)算法剖析
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 342 次瀏覽 ? 2020-05-17 08:02
電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部
電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè))
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在大數據審計中的應用
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 315 次瀏覽 ? 2020-05-10 08:03
?。厶嵋菰诖髷祿徲嬅媾R著(zhù)眾多機遇和挑戰的大背景下,有效清晰的數據在審計過(guò)程中發(fā)揮著(zhù)重大作用大數據網(wǎng)絡(luò )爬蟲(chóng)原理,本文剖析不同的審計數據的特性以及采集審計數據的方式。在傳統數據采集方法基礎上研究怎樣基于Python借助網(wǎng)路爬蟲(chóng)采集審計數據,以為大數據審計技術(shù)的發(fā)展提供支持。
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017. 查看全部
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017. 查看全部
?。厶嵋菰诖髷祿徲嬅媾R著(zhù)眾多機遇和挑戰的大背景下,有效清晰的數據在審計過(guò)程中發(fā)揮著(zhù)重大作用大數據網(wǎng)絡(luò )爬蟲(chóng)原理,本文剖析不同的審計數據的特性以及采集審計數據的方式。在傳統數據采集方法基礎上研究怎樣基于Python借助網(wǎng)路爬蟲(chóng)采集審計數據,以為大數據審計技術(shù)的發(fā)展提供支持。
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017.
數據剖析 | 基于智能標簽,精準管理數據
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 361 次瀏覽 ? 2020-08-03 19:03
騰訊:社交廣告,不同用戶(hù)的朋友圈或則其他媒體場(chǎng)景下的廣告信息是不同的,會(huì )基于用戶(hù)特點(diǎn)推薦。
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程
數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';
模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:
例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent 查看全部
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程
數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';
模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:
例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent 查看全部
騰訊:社交廣告,不同用戶(hù)的朋友圈或則其他媒體場(chǎng)景下的廣告信息是不同的,會(huì )基于用戶(hù)特點(diǎn)推薦。
頭條:信息價(jià)值,根據用戶(hù)瀏覽信息,分析用戶(hù)相關(guān)喜好,針對剖析結果推薦相關(guān)的信息流,越關(guān)注某類(lèi)內容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷剖析用戶(hù)的行為,生成用戶(hù)的特點(diǎn)畫(huà)像,然后再基于用戶(hù)標簽,定制化的推薦相關(guān)內容。
2、基本概念
通過(guò)前面的場(chǎng)景,衍生下來(lái)兩個(gè)概念:
用戶(hù)畫(huà)像
用戶(hù)畫(huà)像,作為一種描繪目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,把該用戶(hù)相關(guān)聯(lián)的數據的可視化的詮釋?zhuān)彤a(chǎn)生了用戶(hù)畫(huà)像。用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用,最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
標簽數據
標簽在生活中十分常見(jiàn),比如商品標簽,個(gè)人標簽,行業(yè)標簽,例如提及996就想到程序員,提到程序員就想到格子衫。
標簽是把分散的多方數據進(jìn)行整合劃入統一的技術(shù)平臺,并對那些數據進(jìn)行標準化和細分,進(jìn)行結構化儲存和更新管理,讓業(yè)務(wù)線(xiàn)可以把這種細分結果推向現有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺,產(chǎn)生價(jià)值,這些數據稱(chēng)為標簽數據,也就是常說(shuō)的標簽庫。數據標簽的概念也是在近來(lái)幾年大數據的發(fā)展中不斷火爆上去的。
標簽價(jià)值
標簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準化數字營(yíng)銷(xiāo)。
二、數據標簽1、標簽界定
屬性標簽
屬性標簽是變化最小的,例如用戶(hù)實(shí)名認證以后,基于身分信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標簽。變動(dòng)頻度小,且最具有精準性。
行為標簽
行為標簽就是用戶(hù)通過(guò)在產(chǎn)品上的一系列操作,基于行為日志剖析得出:例如訂購能力、消費愛(ài)好、季節性消費標簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶(hù)感興趣的內容就是基于該邏輯。
規則標簽
根據業(yè)務(wù)場(chǎng)景需求,配置指定規則,基于規則生成剖析結果,例如:
這類(lèi)標簽可以基于動(dòng)態(tài)的規則配置,經(jīng)過(guò)估算和剖析,生成描述結果,也就是規則標簽。
擬合標簽
擬合類(lèi)的標簽最具有復雜性,通過(guò)用戶(hù)上述幾種標簽,智能組合剖析,給的預測值,例如:未婚、瀏覽相關(guān)婚宴內容,通過(guò)剖析預測用戶(hù)即將舉行婚宴,得到一個(gè)擬合結果:預測即將訂婚。這個(gè)預測邏輯也可以反向執行,用戶(hù)訂購小孩用具:預測未婚已育。
這就是數據時(shí)代常說(shuō)的一句話(huà):用戶(hù)在某個(gè)應用上一通操作過(guò)后,算法剖析的結果可能比用戶(hù)對自己的描述還要真實(shí)。
2、標簽加工流程

數據采集
數據采集的渠道相對較多,比如同一APP內的各類(lèi)業(yè)務(wù)線(xiàn):購物、支付、理財、外賣(mài)、信息瀏覽等等。通過(guò)數據通道傳輸到統一的數據聚合平臺。有了這種海量日志數據的支撐,才具有數據剖析的基礎條件。不管是數據智能,深度學(xué)習,算法等都是構建在海量數據的基礎條件上,這樣就能獲取具有價(jià)值的剖析結果。
數據加工
結合如上業(yè)務(wù),通過(guò)對海量數據的加工,分析和提取,獲取相對精準的用戶(hù)標簽,這里還有關(guān)鍵的一步,就是對已有的用戶(hù)標簽進(jìn)行不斷的驗證和修補,尤其是規則類(lèi)和擬合類(lèi)的相關(guān)標簽。
標簽庫
通過(guò)標簽庫,管理復雜的標簽結果,除了復雜的標簽,和基于時(shí)間線(xiàn)的標簽變,標簽數據到這兒,已經(jīng)具有相當大的價(jià)值,可以圍繞標簽庫開(kāi)放一些收費服務(wù),例如常見(jiàn)的,用戶(hù)在某電商APP瀏覽個(gè)別商品,可以在某信息流平臺見(jiàn)到商品推薦。大數據時(shí)代就是如此令人覺(jué)得智能和窒息。
標簽業(yè)務(wù)
數據走了一大圈轉換成標簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對標簽數據的用戶(hù)的剖析,可以進(jìn)行精準營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應用中可以提升成交量,信息流中可以更好的吸引用戶(hù)。
應用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應用層面,不斷提高應用服務(wù)的質(zhì)量,不斷的吸引用戶(hù),提供服務(wù)。當然用戶(hù)的數據不斷在應用層面形成,在轉入數據采集服務(wù)中,最終產(chǎn)生完整的閉環(huán)流程。
3、應用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面就會(huì )顯得復雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的芥蒂。
標簽的數據類(lèi)型
不同標簽的剖析結果須要用不同的數據類(lèi)型描述智能標簽采集器,在標簽體系中,常用描述標簽的數據類(lèi)型如下:枚舉、數值、日期、布爾、文本類(lèi)型。不同的類(lèi)型須要不一樣的剖析流程。
商品和標簽
這里提供一個(gè)基礎案例,用商品的標簽來(lái)剖析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢(xún)產(chǎn)品庫有多少符合條件的商品。
數據表設計
主要分四張表:標簽分類(lèi)智能標簽采集器,標簽庫,標簽值,標簽數據。
CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽層級目錄';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',
`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標簽名稱(chēng)',
`tag_code` INT (11) DEFAULT NULL COMMENT '標簽編碼',
`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數據列',
`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數值,3日期,4布爾,5值類(lèi)型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',
`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',
`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code` INT (11) NOT NULL COMMENT '標簽編碼',
`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
KEY `tag_code_index` (`tag_code`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽枚舉值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱(chēng)',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng )建時(shí)間',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標簽數據集';

模擬入參插口
這里的參數應當是基于需求,動(dòng)態(tài)選定,進(jìn)行組織到一起:

例如圖片中這兒給定的標簽值列表,稱(chēng)為枚舉值。
@RestController
public class AnalyzeController {
@Resource
private TagDataSetService tagDataSetService ;
@GetMapping("/analyze")
public String analyze (){
List tagParamList = new ArrayList() ;
TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;
List valueList1 = new ArrayList() ;
valueList1.add("深圳");
valueList1.add("廣東");
tagParam1.setValueList(valueList1);
tagParamList.add(tagParam1) ;
TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;
List valueList2 = new ArrayList() ;
valueList2.add("1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;
List valueList3 = new ArrayList() ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(valueList3);
tagParamList.add(tagParam3) ;
TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;
List valueList4 = new ArrayList() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱(chēng)","product_name") ;
List valueList5 = new ArrayList() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
tagParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamList) ;
return "Result:" + count ;
}
}
參數解析查詢(xún)
通過(guò)對參數的解析,最終產(chǎn)生查詢(xún)的SQL句子,獲取精準的結果數據。
@Service
public class TagDataSetServiceImpl extends ServiceImpl implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (TagParam tagParam:tagParamList){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚舉,2數值,3日期,4布爾,5值類(lèi)型
List valueList = tagParam.getValueList();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()-1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList.get(i)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 3:
querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;
break;
default:
break;
}
}
/* 最終執行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '廣東')
AND unit_price = 1999
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagDataSetMapper.analyze(whereCondition);
}
}
可能有人會(huì )說(shuō)這不就是個(gè)查詢(xún)流程嗎?如果有這樣的疑惑,把上述案例換成用戶(hù)查詢(xún),標簽數據的價(jià)值會(huì )更直觀(guān)。
三、智能畫(huà)像1、基本概念
用戶(hù)畫(huà)像
作為一種繪制目標用戶(hù)、聯(lián)系用戶(hù)訴求與設計方向的有效工具,用戶(hù)畫(huà)像在各領(lǐng)域得到了廣泛的應用。最初是在電商領(lǐng)域得到應用的,在大數據時(shí)代背景下,用戶(hù)信息參雜在網(wǎng)路中,將用戶(hù)的每位具體信息具象成標簽,利用這種標簽將用戶(hù)形象具體化,從而為用戶(hù)提供有針對性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標簽,行業(yè)下用戶(hù)標簽的綜合剖析,生成行業(yè)剖析報告,提供極有價(jià)值的導向,這是最近兩年非常熱門(mén)的應用。
畫(huà)像補全
通過(guò)不斷剖析用戶(hù)數據,豐富標簽庫,使用戶(hù)的畫(huà)像愈發(fā)豐富立體。
2、畫(huà)像報告
通過(guò)標簽數據的剖析,生成一份剖析報告,報告內容包含豐富的用戶(hù)標簽統計數據。
例如:90后畫(huà)像報告
這個(gè)報告,互聯(lián)網(wǎng)用戶(hù)一定或多或少都聽(tīng)到過(guò)。主要是一些標簽統計,共性標簽展示,或者什么群體對80后三觀(guān)影響最大,收入來(lái)源,學(xué)歷等各類(lèi)剖析評析。
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent
聚焦爬蟲(chóng)常見(jiàn)算法剖析
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 342 次瀏覽 ? 2020-05-17 08:02
電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部
電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
(1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè))
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在大數據審計中的應用
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 315 次瀏覽 ? 2020-05-10 08:03
?。厶嵋菰诖髷祿徲嬅媾R著(zhù)眾多機遇和挑戰的大背景下,有效清晰的數據在審計過(guò)程中發(fā)揮著(zhù)重大作用大數據網(wǎng)絡(luò )爬蟲(chóng)原理,本文剖析不同的審計數據的特性以及采集審計數據的方式。在傳統數據采集方法基礎上研究怎樣基于Python借助網(wǎng)路爬蟲(chóng)采集審計數據,以為大數據審計技術(shù)的發(fā)展提供支持。
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017. 查看全部
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017. 查看全部
?。厶嵋菰诖髷祿徲嬅媾R著(zhù)眾多機遇和挑戰的大背景下,有效清晰的數據在審計過(guò)程中發(fā)揮著(zhù)重大作用大數據網(wǎng)絡(luò )爬蟲(chóng)原理,本文剖析不同的審計數據的特性以及采集審計數據的方式。在傳統數據采集方法基礎上研究怎樣基于Python借助網(wǎng)路爬蟲(chóng)采集審計數據,以為大數據審計技術(shù)的發(fā)展提供支持。
關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);數據采集;審計剖析;Python
本文為2017年安徽財貿職業(yè)學(xué)院“內涵提高全員行動(dòng)計劃”科學(xué)研究項目(人文社科):“大數據在審計剖析程序中的運用研究”(項目編號:2017nhrwc15)
中圖分類(lèi)號:F239 文獻標識碼:A
收錄日期:2019年1月18日
一、引言
無(wú)論是國家審計還是民間審計,在現今社會(huì )經(jīng)濟發(fā)展過(guò)程中都起到了非常重要的作用,為經(jīng)濟發(fā)展“保駕護航”。大數據目前也是各國研究的重點(diǎn)和熱點(diǎn),并將大數據的研究和應用上升到了戰略層次。美國注冊會(huì )計師協(xié)會(huì )(AICPA)在2014年就對大數據可能對審計形成的影響進(jìn)行了剖析。在全球信息化的大背景下,如何借助大數據增加審計風(fēng)險,提高審計效率依然是一個(gè)十分重要的命題。2015年中共中央辦公廳、國務(wù)院辦公廳《關(guān)于完善審計制度若干重大問(wèn)題的框架意見(jiàn)》及配套文件中明晰提出“構建大數據審計工作模式,構建國家審計數據系統和數字化審計平臺,探索完善審計實(shí)時(shí)監督系統,實(shí)施聯(lián)網(wǎng)審計”。劉國城、王會(huì )金(2017)將大數據審計平臺拆分為采集、預處理、分析和可視化四個(gè)子平臺,基于方式支撐、過(guò)程建模和運行機理等方面對各個(gè)子平臺作以專(zhuān)項研究,旨在為大數據審計實(shí)踐提供建設性思路。秦榮生(2014)指出大數據、云計算技術(shù)的形成和發(fā)展,正在逐步影響審計技術(shù)和技巧的發(fā)展。
大數據具有數據體量巨大、處理速率快、數量種類(lèi)多和商業(yè)價(jià)值高的特性。被審計對象的信息化使得審計人員在審計方式上愈發(fā)的信息化,如果將這種大量的、散落的、無(wú)序的數據進(jìn)行集中化、結構化,將其弄成才能便捷獲得可讀取的審計數據,并通過(guò)審計剖析程序發(fā)覺(jué)愈發(fā)有效和清晰的審計線(xiàn)索,那么大數據將會(huì )發(fā)揮重大的商業(yè)價(jià)值。由此可見(jiàn),數據是審計剖析的重要前提,獲取高質(zhì)量數據常常就能幫助審計人員快速發(fā)覺(jué)風(fēng)險點(diǎn)進(jìn)行應對,大大提升審計的效率和療效。目前,尚未有成熟的審計大數據搜集與整理技術(shù),這影響了大數據在審計中使用的效率。本文將基于目前大數據的研究現況,主要闡述審計人員應該怎樣借助網(wǎng)路爬蟲(chóng)技術(shù)從網(wǎng)路渠道獲取所需審計數據,從而擴展審計數據的范圍,獲得更多的審計線(xiàn)索,提高審計剖析療效。
二、審計大數據采集分析
?。ㄒ唬徲嫶髷祿?lèi)型。大數據審計區別于傳統的審計模式,傳統審計模式傾向于根據被審計單位提供的相關(guān)資料去鑒證其是否真實(shí)可靠。而大數據審計是一種實(shí)時(shí)審計,強調審計人員應該主動(dòng)地去獲取企業(yè)內部和企業(yè)外部的數據,企業(yè)內部的業(yè)務(wù)數據主要借助被審計單位提供,而外部數據,比如法律、銀行、稅務(wù)、供應商、客戶(hù)、物流等其他數據須要審計人員去挖掘和剖析。從目前來(lái)看,審計大數據可以分為兩類(lèi):一類(lèi)是結構化數據,它由明晰定義的數據類(lèi)型組成,比如數字、貨幣、日期等,其模式可以讓其便于搜索。這種數據通常存儲在數據庫里,比如企業(yè)ERP系統中的銷(xiāo)售數據、生產(chǎn)數據、財務(wù)數據等;另一類(lèi)是非結構化數據,是指這些不便捷用數據庫二維邏輯來(lái)表現的數據,如辦公文檔、文本、圖片、HTML圖象等,審計人員須要的外部數據以非結構化數據類(lèi)型居多。
?。ǘ徲嫶髷祿杉椒?br /> 1、直接拷貝讀取。審計人員首先判定出自己須要的審計數據,然后按照被審計單位使用的財務(wù)軟件(如用友、用友)的使用特性,利用軟件數據庫早已預設好的指令去提取轉換審計人員所須要的數據,并將其保存為Excel等格式。
2、開(kāi)放數據互聯(lián)(ODBC)。如果被審計單位與審計人員使用的是可以對接的數據庫,可以通過(guò)相關(guān)的數據訪(fǎng)問(wèn)插口訪(fǎng)問(wèn)被審計單位所使用的業(yè)務(wù)系統數據庫,并將數據進(jìn)行還原后轉出,成為審計人員可以直接借助的數據。
3、中間文件采集。指審計人員與被審計單位約定好數據的格式,被審計單位根據要求將自己的相關(guān)數據轉換成約定的格式,比如說(shuō)文本文件格式,這種大部分數據庫都還能直接讀取的格式,從而省去了兩種不同數據庫對接的問(wèn)題。
4、網(wǎng)上采集。除了被審計單位或則上級審計機關(guān)提供的相關(guān)數據以外,審計人員依然須要從被審計單位外部獲得相關(guān)的工商、稅務(wù)、行業(yè)、媒體等公開(kāi)數據以進(jìn)行多方面的審計剖析,這些數據并不是被直接提供的結構化數據,需要審計人員采用一定的方式從網(wǎng)上進(jìn)行采集。
目前,審計數據采集大部分采用的是上述的前三種方式,往往依托一定的數據庫基礎,能夠獲得的信息大多基于被審計單位,最后一種網(wǎng)上采集數據的方式因為沒(méi)有統一的方式和技術(shù),耗費大量時(shí)間和經(jīng)歷,往往未能實(shí)現,這大大限制了審計人員進(jìn)行審計剖析的范圍,同時(shí)也讓審計的取證率無(wú)法達到預期,從某種程度上提升了審計風(fēng)險。在大數據審計背景下,審計人員執行剖析程序不能僅僅將眼光局限于內部數據,更應該從網(wǎng)路公開(kāi)數據中獲取愈發(fā)全面的信息,但是這種信息大多以網(wǎng)頁(yè)等格式存在,難以被審計人員直接用于剖析,所以本文提出可以借助網(wǎng)路爬蟲(chóng)技術(shù)抓取網(wǎng)頁(yè)上的信息,并整理成一定的格式,方便審計人員從海量數據中發(fā)覺(jué)審計線(xiàn)索,使審計剖析程序發(fā)揮更大的效用。
三、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中的應用
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)又被稱(chēng)為網(wǎng)路蜘蛛,是一種根據被設定的規則手動(dòng)獲取網(wǎng)頁(yè)內容的程序腳本。目前,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)被越來(lái)越多的運用于互聯(lián)網(wǎng)中,它還能依據不同的程序代碼設定指令,自動(dòng)獲取網(wǎng)頁(yè)內任何權限的信息數據。程序開(kāi)始后,按照設定程序,網(wǎng)絡(luò )爬蟲(chóng)會(huì )不斷地從URL抓取用戶(hù)須要的內容,直到滿(mǎn)足停止條件,并對抓取到的數據進(jìn)行分類(lèi)整合處理大數據網(wǎng)絡(luò )爬蟲(chóng)原理,用戶(hù)可以按照自己的查詢(xún)需求,從中篩選自己所須要的數據。通過(guò)網(wǎng)路爬蟲(chóng)還能為大數據剖析提供更高質(zhì)量的數據源。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的過(guò)程主要有以下幾步:首先,鎖定目標。根據審計目標確定想要獲取的目標數據,明確這種數據主要分布的網(wǎng)頁(yè)是哪些;其次,目標網(wǎng)頁(yè)剖析。為了更高效率的抓取到相關(guān)數據,要對目標網(wǎng)頁(yè)進(jìn)行結構上的剖析,主要是其數據訪(fǎng)問(wèn)的路徑和邏輯;再次,數據抓取。通過(guò)選擇好的軟件執行命令,獲得數據結果進(jìn)行保存;最后,數據剖析。將通過(guò)上述程序獲得的數據進(jìn)行清洗,獲得目標數據,可以結合例如SQL查詢(xún)、Excel剖析、數據可視化等技術(shù)對數據進(jìn)行進(jìn)一步的剖析、擴展和確認。
利用網(wǎng)路爬蟲(chóng)技術(shù)施行審計剖析程序的原理主要是能否從被審計單位外部獲取愈發(fā)充足的、高質(zhì)量的審計數據,而這種數據比被審計單位提供的數據愈發(fā)可靠,同時(shí)可以將獲取的新數據與被審計單位提供的內部數據進(jìn)行對比,幫助審計人員擴大范圍,發(fā)現更多相關(guān)線(xiàn)索,同時(shí)也促使審計證據愈發(fā)充分可靠。
四、網(wǎng)絡(luò )爬蟲(chóng)在審計大數據采集中應用案例
XX集團有限公司創(chuàng )建于1957年,現已發(fā)展產(chǎn)生節能環(huán)保、鋼鐵制造及金屬貿易、智能健康、教育與技術(shù)服務(wù)等產(chǎn)業(yè)格局的小型企業(yè)集團。截至2017年底,擁有全資及控股一級子公司34家。2017年,完成銷(xiāo)售收入933億元、利潤25億元,甲會(huì )計師事務(wù)所接受委托對該公司進(jìn)行2017年年度財務(wù)報表審計。審計人員在審計過(guò)程中發(fā)覺(jué)該公司下一子公司有大量進(jìn)行一次性交易的顧客,并且這種顧客都采用了賒購的形式,所以審計人員對這種交易形成了懷疑,認為被審計單位的應收賬款“存在”認定有重大錯報風(fēng)險。為進(jìn)一步獲得審計證據,審計人員首先須要被審計單位提供數據庫內關(guān)于顧客的信息并進(jìn)行查驗以驗證這種顧客的真實(shí)性。此時(shí),被審計單位提供信息的可靠性較差,審計人員只能考慮從外部獲得審計數據進(jìn)行比較剖析,從而判定顧客信息的準確性。如果考慮直接從官方網(wǎng)站獲得具體工商數據,審計人員將面臨權限受限和工作量巨大等問(wèn)題。此時(shí),網(wǎng)絡(luò )爬蟲(chóng)技術(shù)才能為這一困局提供挺好的解決方案,提高工作效率。
在選擇網(wǎng)路爬蟲(chóng)技術(shù)時(shí),審計人員選擇了目前應用范圍相對較廣的Python。相對于其他網(wǎng)路爬蟲(chóng)技術(shù),基于Python的網(wǎng)路爬蟲(chóng)技術(shù)具有以下優(yōu)點(diǎn):一是簡(jiǎn)約便捷。Python語(yǔ)言最大的特征就是只須要一個(gè)簡(jiǎn)單的編輯器才能滿(mǎn)足大部分用戶(hù)的網(wǎng)路爬蟲(chóng)技術(shù)需求,可以使操作人員很快的適應環(huán)境,而不用耗費過(guò)多的精力;二是具有框架技術(shù)。如果所須要抓取的數據量較大,則可以使用Python的Scrapy框架實(shí)現,它能提供一個(gè)功能強悍的模板來(lái)實(shí)現爬蟲(chóng),僅僅須要根據需求進(jìn)行簡(jiǎn)單的更改就可以使用,而不是去進(jìn)行重新的開(kāi)發(fā)。
審計人員通過(guò)Python實(shí)現了網(wǎng)路爬蟲(chóng),從“天眼查”網(wǎng)站上獲取相關(guān)企業(yè)的工商信息。其中部份代碼如圖1所示,獲得的部份結果如表1、圖2所示。最終審計人員通過(guò)網(wǎng)路爬蟲(chóng)技術(shù)迅速獲得了審計須要的相關(guān)數據,篩選出目標企業(yè),進(jìn)一步進(jìn)行了審計剖析,與被審計單位提供的有關(guān)信息進(jìn)行比對,得出了其中有18家企業(yè)信息涉嫌作假,實(shí)為虛構交易的推論,為預收賬款的進(jìn)一步審計提供了重要審計證據。(圖1、圖2、表1)
五、結語(yǔ)
隨著(zhù)大數據在審計中的運用廣泛,高效的數據采集辦法也是值得研究的重要內容。本文通過(guò)研究大數據的特性,以及對審計數據的采集辦法進(jìn)行剖析,提出了基于Python的數據爬蟲(chóng)在審計數據采集中的運用,幫助審計人員快速高效地從網(wǎng)頁(yè)上獲得相關(guān)數據,為進(jìn)一步的審計剖析奠定了基礎,這也為大數據在審計中的應用技術(shù)研究提供了支持。
?。ㄗ髡邌挝唬喊不肇斮Q職業(yè)學(xué)院)
主要參考文獻:
?。?]秦榮生.大數據、云計算技術(shù)對審計的影響研究[J].審計研究,2014(6).
?。?]劉國城,王會(huì )金.大數據審計平臺建立研究[J].審計研究,2017(11).
?。?]韋瑋.精通Python網(wǎng)絡(luò )爬蟲(chóng)[M].北京機械工業(yè)出版社,2017.


