希臘網(wǎng)站 后綴網(wǎng)絡(luò)營銷競價推廣
文章目錄
- 2025WEB數(shù)據(jù)管理 串講
- 第2講 網(wǎng)絡(luò)爬蟲技術(shù)
- 爬蟲定義
- 爬取過程(例子不考)
- URL normalization(規(guī)范化)
- 文檔指紋FP
- URL 判重
- 爬蟲功能
- 第3講 網(wǎng)頁分析技術(shù)
- 正則表達(dá)式 Regular Expression
- 定義
- 作用
- 特點
- 文檔對象模型(document object model,DOM)
- 定義
- 正則表達(dá)式與DOM樹方法的比較
- HTML解析器 HTML Parser
- Beautiful Soup 模塊
- RE 與 BeautifulSoup 的比較
- Scrapy 介紹
- 第4講 爬蟲與網(wǎng)站的博弈
- Robot 協(xié)議
- User-agent
- IP屏蔽
- 用戶登陸
- 模擬瀏覽器進(jìn)行交互
- 驗證碼
- 第5講 數(shù)據(jù)抽取與包裝器
- Web數(shù)據(jù)抽取
- 包裝器
- Web 數(shù)據(jù)抽取評價標(biāo)準(zhǔn)
- 第6講 包裝器頁面抽取方法
- 網(wǎng)頁的分類
- 多記錄數(shù)據(jù)型頁面的抽取方法
- 單記錄數(shù)據(jù)型頁抽取方法
- 單文檔型頁面Authority抽取方法
- 結(jié)合視覺信息的抽取方法
- 抽取路徑學(xué)習(xí)/路徑規(guī)則
- 改進(jìn)的自適應(yīng)數(shù)據(jù)抽取方法
- 第7講 web數(shù)據(jù)存儲
- 爬蟲數(shù)據(jù)存儲
- scrapy 支持的數(shù)據(jù)格式
- CSV(comma-separated values)
- JSON文件
- XML文件
- 存入數(shù)據(jù)庫
- 第8講 web數(shù)據(jù)預(yù)處理
- Web上爬取的數(shù)據(jù)
- 數(shù)據(jù)無量綱化
- 歸一化和標(biāo)準(zhǔn)化的區(qū)別
- 如何選擇 歸一化 or 標(biāo)準(zhǔn)化
- 為什么要歸一化 / 標(biāo)準(zhǔn)化?
- 離散化的自動方法
- 類別特征編碼
- 白化 Whitening
- 第9講 文本預(yù)處理
- 中文分詞(Chinese Word Segmentation)
- 定義
- 方法1:基于理解的分詞方法
- 方法2:基于字符串匹配的分詞方法
- 方法3:基于統(tǒng)計的分詞方法
- 基于HMM的中文分詞方法
- 隱馬爾科夫模型的三個基本問題
- HMM實現(xiàn)中文分詞
- 第10講 文本表示
- 文本向量化
- 主題模型 topic modeling
- PLSA主題模型
- LDA主題模型
- 文檔哈希
- 第11講 語言模型
- 統(tǒng)計語言模型
- N-Gram語言模型
- 神經(jīng)網(wǎng)絡(luò)語言模型
- NNLM
- 第12講 詞嵌入和文檔嵌入
- 詞向量化
- Word2Vec
- 3個用處
- CBOW(Continuous Bag-of-Words)
- 1. 核心思想
- 2. 模型結(jié)構(gòu)
- 3. 數(shù)學(xué)表示
- 5. 應(yīng)用
- Skip-Gram
- 1. 核心思想
- 2. 模型結(jié)構(gòu)
- 3. 訓(xùn)練優(yōu)化
- 4. 特點
- Doc2Vec
- Glove
- 損失函數(shù)公式
- 第13講 文本分類
- `FastText`
- 子詞嵌入
- `FastText` 文本分類
- TextCNN
- 第14講 WEB圖像數(shù)據(jù)
- 顏色特征
- 顏色直方圖 ColorHistogram
- 顏色矩 ColorMoment
- 紋理特征
- LBP特征 Local Binary Patterns
- 局部形狀特征
- HOG特征
- SIFT特征
2025WEB數(shù)據(jù)管理 串講
題型:填空、名詞解釋、簡答(所有的內(nèi)容都在ppt上);不考編程
參考:
https://blog.csdn.net/weixin_63184383/article/details/145727824
第2講 網(wǎng)絡(luò)爬蟲技術(shù)
爬蟲定義
爬取過程(例子不考)
URL normalization(規(guī)范化)
- 對URL進(jìn)行標(biāo)準(zhǔn)化處理的過程
- 將不同的URL轉(zhuǎn)換為統(tǒng)一的、符合規(guī)范的等價URL
文檔指紋FP
大批量文檔快速判重
- shingle算法
- MinHash
- Simhash算法
- KSentence算法
URL 判重
- 提高查找和訪問效率
- 在散列表中存放網(wǎng)址經(jīng)過散列函數(shù)計算出的對應(yīng)的固定長度的散列值
- 這樣可以在平均情況下 O ( 1 ) O(1) O(1)的時間內(nèi)查找和更新占用 O ( n ) O(n) O(n)空間的網(wǎng)址列表
爬蟲功能
- 禮貌性: Web服務(wù)器有顯式或隱式的策略控制爬蟲的訪問
- 只爬允許爬的內(nèi)容、尊重 robots.txt
- 魯棒性: 能從采集器陷阱中跳出,能處理Web服務(wù)器的其他惡意行為
- 性能和效率: 充分利用不同的系統(tǒng)資源,包括處理器、存儲器和網(wǎng)絡(luò)帶寬優(yōu)先抓取“有用的網(wǎng)頁”
- 分布式: 可以在多臺機器上分布式運行
- 可擴展性: 添加更多機器后采集率應(yīng)該提高
- 新鮮度: 對原來抓取的網(wǎng)頁進(jìn)行更新
- 功能可擴展性:支持多方面的功能擴展,例如處理新的數(shù)據(jù)格式、新的抓取協(xié)議等
第3講 網(wǎng)頁分析技術(shù)
對于HTML文檔,有兩種看待方式:
- 一種是將文檔看作字符流:正則表達(dá)式
- 一種是將文檔看作樹結(jié)構(gòu):基于DOM
正則表達(dá)式 Regular Expression
定義
正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
作用
正則表達(dá)式通常被用來檢索、替換那些符合某個模式(規(guī)則)的文本。
特點
-
正則表達(dá)式匹配速度快
-
但表達(dá)能力較弱,只具有正規(guī)文法的表示能力
-
在對網(wǎng)頁內(nèi)容的信噪比要求不高的情況下可以使用基于正則表達(dá)式匹配的爬取程序
文檔對象模型(document object model,DOM)
定義
- DOM將一個XML文檔轉(zhuǎn)換成一個對象集合,然后可以任意處理該對象模型
- 這一機制也稱為“隨機訪問”協(xié)議
- 可以在任何時間訪問數(shù)據(jù)的任何一部分,然后修改、刪除或插入新數(shù)據(jù)
- DOM將HTML視為樹狀結(jié)構(gòu)的元素,所有元素以及他們的文字和屬性可通過DOM樹來操作與訪問
正則表達(dá)式與DOM樹方法的比較
正則表達(dá)式匹配
- 正則表達(dá)式匹配速度快,但表達(dá)能力較弱,只具有正規(guī)文法的表示能力
- 在對網(wǎng)頁內(nèi)容的信噪比要求不高的情況下可以使用基于正則表達(dá)式匹配的爬取程序
HTML DOM樹
- HTML DOM樹在解析HTML時速度較慢,但其表達(dá)能力相當(dāng)于上下文無關(guān)文法
- 在網(wǎng)頁自動分類等需要進(jìn)行網(wǎng)頁去噪處理的情況時使用基于HTML DOM樹的爬取程序
HTML解析器 HTML Parser
- 將html標(biāo)識解析為解析樹
- jsoup 是一款Java 的HTML解析器(Beautiful Soup 不是、瀏覽器不是)
Beautiful Soup 模塊
- python的一個模塊
- 提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能
- 它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù)
- 簡單好上手
RE 與 BeautifulSoup 的比較
- re正則表達(dá)式
- 匹配神器,速度快效率高
- BeautifulSoup
- 比較常用且使用簡單的技術(shù)
- 由于在操作過程中,會將整個文檔樹進(jìn)行加載然后進(jìn)行查詢匹配操作,使用過程中消耗資源較多
Scrapy 介紹
- 快速、高層次的屏幕抓取和web抓取框架
- 用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)
- Scrapy吸引人的地方在于它是一個框架
- 可重用設(shè)計
- 根據(jù)需求方便修改
- 輕松地實現(xiàn)爬蟲項目
第4講 爬蟲與網(wǎng)站的博弈
- 網(wǎng)站反爬后端策略:網(wǎng)頁在后端攔截
- User-Agent + Referer檢測
- 賬號及Cookie驗證
- 驗證碼
- IP限制頻次
- 網(wǎng)站反爬前端策略:網(wǎng)頁在前端顯示需要瀏覽器配合
- FONT-FACE拼湊式
Robot 協(xié)議
- 網(wǎng)站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取
- robots.txt文件是一個文本文件
User-agent
- User-Agent是Http協(xié)議中的一部分,屬于頭域的組成部分,向訪問網(wǎng)站提供訪問者信息
IP屏蔽
網(wǎng)站:
- 同一 IP 訪問頻繁 -> 封
- 網(wǎng)站限制某些IP訪問,僅允許指定IP地址訪問
爬蟲:
- 多IP并行
- 增大爬取時間間隔
- 連接代理服務(wù)器
- IP代理池
用戶登陸
- 用戶輸入:用戶名,口令
- 通過GET(POST)請求提交參數(shù)
- 后臺PHP 程序生成的網(wǎng)頁,數(shù)據(jù)在后臺數(shù)據(jù)庫
- 登陸成功,帶著Cookie繼續(xù)訪問其他網(wǎng)頁
模擬瀏覽器進(jìn)行交互
- 登錄錄入:用戶名,口令
- 鍵盤動作
- 鼠標(biāo)動作
- 網(wǎng)站AJAX響應(yīng)
驗證碼
- 交互內(nèi)容不能提前預(yù)知
- 圖像識別
- 獲取圖片
- 分析網(wǎng)頁下載圖片
- 屏幕截圖
- 圖片處理
- 獲取圖片中文字內(nèi)容
- OCR
- 獲取圖片
第5講 數(shù)據(jù)抽取與包裝器
Web數(shù)據(jù)抽取
- Web 數(shù)據(jù)抽取是指從頁面中將用戶感興趣的數(shù)據(jù)利用程序自動抽取到本地的過程
- 為了能夠保證抽取的準(zhǔn)確性,必須要能夠識別頁面模飯
- 定義(頁面模板) 頁面模板T= < C,L,S>
- C包含了導(dǎo)航、版權(quán)聲明、固定頁面修飾等這些不變的內(nèi)容
- L包含了頁面數(shù)據(jù)的格式規(guī)范
- S則是能夠從頁面數(shù)據(jù)中觀察到的模式
包裝器
包裝器
- 針對某一類特定的網(wǎng)頁
- 計算機可以理解并執(zhí)行的程序或抽取規(guī)則
包裝器的任務(wù)
- 將HTML格式的數(shù)據(jù)抽取并轉(zhuǎn)化為結(jié)構(gòu)化的格式
包裝器的核心是抽取規(guī)則
對于HTML文檔,有兩種看待方式:
- 字符流
- 樹結(jié)構(gòu)
相應(yīng)地,抽取規(guī)則也可以分為
- 基于分界符(或界標(biāo)符)的規(guī)則
- 基于樹路徑的規(guī)則
包裝器分類
從自動化程度來區(qū)分:
- 人工抽取
- 半自動抽取
- 自動抽取
Web 數(shù)據(jù)抽取評價標(biāo)準(zhǔn)
- 準(zhǔn)確程度:查準(zhǔn)率,查全率
- 抽取自動化程度:衡量用戶在抽取過程中的參與程度,分為手工、半自動和全自動三類
- 適應(yīng)性:指在頁面的內(nèi)容和結(jié)構(gòu)發(fā)生較小變化的情況下,該抽取方法或工具具有自適應(yīng)能力,仍然能夠繼續(xù)正常工作
- 修正率:需要手工調(diào)整使得準(zhǔn)確率和召回率達(dá)到100%的Web數(shù)據(jù)庫數(shù)量
查準(zhǔn)率,查全率:
第6講 包裝器頁面抽取方法
網(wǎng)頁的分類
按照頁面內(nèi)數(shù)據(jù)組織形式的不同,分為
- 單記錄頁面
- 多記錄頁面
按照頁面承載內(nèi)容的不同,分為
- 數(shù)據(jù)型頁面
- 文檔型頁面
兩者組合起來共有4 種頁面類型
- 多記錄數(shù)據(jù)型頁面
- 單記錄數(shù)據(jù)型頁面
- 單記錄文檔型頁面
- 多記錄文檔型頁面
多記錄數(shù)據(jù)型頁面的抽取方法
其中多記錄數(shù)據(jù)型抽取不考觀察和規(guī)則,掌握最后一頁總結(jié)即可
單記錄數(shù)據(jù)型頁抽取方法
- 增量式抽取:從多個連續(xù)頁面中抽取同結(jié)構(gòu)的記錄,以增量方式推導(dǎo)網(wǎng)頁模板
- 部分樹對齊算法:主要關(guān)心頁面模式發(fā)生變化導(dǎo)致的頁面模板變化時,如何調(diào)整和持續(xù)抽取數(shù)據(jù)的問題
單文檔型頁面Authority抽取方法
結(jié)合視覺信息的抽取方法
觀察1:文檔型頁面中,其正文一般占用頁面中最大的文本數(shù)據(jù)塊;(記住下面公式)
視覺信息的抽取方法,將無法很好地處理如下情況:
- 短正文的抽取
- 包含大量評論的頁面
抽取路徑學(xué)習(xí)/路徑規(guī)則
除了使用種子點seedElement
找出正文內(nèi)容外,在內(nèi)容返回前,還將正文的抽取路徑保存到數(shù)據(jù)庫中
改進(jìn)的自適應(yīng)數(shù)據(jù)抽取方法
- 基于視覺的方法+基于規(guī)則的方法 自動選擇
- 一種基于貝葉斯最優(yōu)決策的方法
- 定義(決策結(jié)果集合
DecisionSet
)- Vision: 表示最終將采用基于視覺的方法來抽取數(shù)據(jù)
- Rule: 表示最終將采用基于抽取路徑的方法來抽取數(shù)據(jù)
第7講 web數(shù)據(jù)存儲
爬蟲數(shù)據(jù)存儲
結(jié)構(gòu)化數(shù)據(jù)
- 結(jié)構(gòu)化文件:Excel、CSV文件、JSON 文件
- 數(shù)據(jù)庫
非結(jié)構(gòu)化數(shù)據(jù)
- raw data 儲存,直接存為txt文件、JPG文件
scrapy 支持的數(shù)據(jù)格式
CSV(comma-separated values)
- 是目前比較流行的一種文件存儲格式
- 以逗號間隔
- 優(yōu)點
- 被Excel和很多的應(yīng)用程序支持
- 用來做數(shù)據(jù)存儲容量小
- 很多數(shù)據(jù)集采用格式
JSON文件
- JavaScript 對象表示法 / JavaScript Object Notation
- 輕量級的文本數(shù)據(jù)交換格式
- 有對象和數(shù)組兩種結(jié)構(gòu)
- 最常用的格式是對象的鍵值對
XML文件
- Extensible Markup Language / 可擴展標(biāo)記語言
- 數(shù)據(jù)重用(存儲,攜帶,交換數(shù)據(jù);不是顯示數(shù)據(jù))
- 半結(jié)構(gòu)化集成數(shù)據(jù)
- XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點或節(jié)點集
- XQuery 被設(shè)計用來查詢 XML 數(shù)據(jù)
存入數(shù)據(jù)庫
數(shù)據(jù)庫提供了更強有力的數(shù)據(jù)存儲和分析能力
-
關(guān)系型數(shù)據(jù)庫 (SQLite、Mysql)
-
非關(guān)系型數(shù)據(jù)庫 (MongoDB)
-
結(jié)構(gòu)化數(shù)據(jù)存入 MySQL
-
非結(jié)構(gòu)化數(shù)據(jù)存入 MongoDB
第8講 web數(shù)據(jù)預(yù)處理
Web上爬取的數(shù)據(jù)
- 結(jié)構(gòu)化數(shù)據(jù) 記錄屬性
- 存儲
- 查詢,合并
- 機器學(xué)習(xí)/數(shù)據(jù)挖掘
- 非結(jié)構(gòu)化數(shù)據(jù)
- 單字段
- 大塊 純文本,圖片
數(shù)據(jù)無量綱化
- 歸一化 Normalization:將不同規(guī)格的數(shù)據(jù)轉(zhuǎn)換為同一規(guī)格
- 將數(shù)據(jù)縮放到指定范圍(通常是[0, 1])
- 將有量綱的表達(dá)式,經(jīng)過變換,化為無量綱的表達(dá)式
- 標(biāo)準(zhǔn)化 Standardization:將不同分布的數(shù)據(jù)轉(zhuǎn)換為特定分布的過程
歸一化和標(biāo)準(zhǔn)化的區(qū)別
歸一化
- 將樣本的特征值轉(zhuǎn)換到同一量綱下
- 把數(shù)據(jù)映射到[0,1]或者[-1, 1]區(qū)間內(nèi),僅由變量的極值決定
- 因區(qū)間放縮法是歸一化的一種
標(biāo)準(zhǔn)化
- 依照特征矩陣的列處理數(shù)據(jù)
- 其通過求z-score的方法,轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布
- 和整體樣本分布相關(guān),每個樣本點都能對標(biāo)準(zhǔn)化產(chǎn)生影響
如何選擇 歸一化 or 標(biāo)準(zhǔn)化
歸一化
- 對輸出結(jié)果范圍有要求
- 數(shù)據(jù)較為穩(wěn)定,不存在極端的最大最小值
標(biāo)準(zhǔn)化
- 數(shù)據(jù)存在異常值和較多噪音
- 可以間接通過中心化避免異常值和極端值的影響
- 中心化:平均值為0,對標(biāo)準(zhǔn)差無要求
- 一般流程為先中心化再標(biāo)準(zhǔn)化
為什么要歸一化 / 標(biāo)準(zhǔn)化?
- 無量綱化
- 例如房子數(shù)量和收入,因為從業(yè)務(wù)層知道,這兩者的重要性一樣,所以把它們?nèi)繗w一化
- 避免數(shù)值問題
- 太大的數(shù)會引發(fā)數(shù)值問題
- 某些模型求解需要
- 一些分類器需要計算樣本間的距離。如果一個特征值域范圍非常大,那么距離計算就主要取決于這個特征,從而與實際情況相悖
- 在使用梯度下降的方法求解最優(yōu)化問題時, 歸一化 / 標(biāo)準(zhǔn)化后可以提升模型的收斂速度
離散化的自動方法
基于決策樹的離散化(決策樹可以使連續(xù)值離散化)
- 使用決策樹算法自動選擇最優(yōu)的分割點,將數(shù)據(jù)離散化
- 適用場景:需要離散化數(shù)據(jù)以構(gòu)建決策樹模型
類別特征編碼
將類別變量轉(zhuǎn)化為數(shù)值型數(shù)據(jù)
- 標(biāo)簽編碼(Label Encoding)
- 將每個類別映射到一個唯一的整數(shù)
- 適用于類別之間有順序關(guān)系的情況(例如,低、中、高)
- 獨熱編碼(One-Hot Encoding)
- 將每個類別轉(zhuǎn)換為一個二進(jìn)制的向量
- 適用于類別之間沒有順序關(guān)系的情況(例如,顏色、國家等)
白化 Whitening
定義:白化是一種數(shù)據(jù)預(yù)處理技術(shù),旨在通過線性變換使數(shù)據(jù)具有以下特性:
- 特征去相關(guān):消除特征之間的相關(guān)性
- 方差歸一化:使每個特征的方差為1
經(jīng)過白化處理的數(shù)據(jù),其協(xié)方差矩陣變?yōu)閱挝痪仃嚒?/p>
作用:
- 消除不同特征之間的相關(guān)性
- 降低輸入數(shù)據(jù)特征之間的冗余性
- 輸入數(shù)據(jù)經(jīng)過白化處理后,特征之間相關(guān)性較低,并且所有特征具有相同的方差
- 白化的一個主要實現(xiàn)方式是使用PCA方法
為什么要進(jìn)行白化
解決特征相關(guān)性帶來的主要問題:模型不穩(wěn)定、過擬合、冗余信息、解釋性降低、梯度消失或爆炸(在深度學(xué)習(xí)中)
第9講 文本預(yù)處理
詞條化:將給定的字符序列拆分成一系列子序列的過程
中文分詞(Chinese Word Segmentation)
定義
- 將一個漢字序列切分成一個一個單獨的詞
- 分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程
方法1:基于理解的分詞方法
通過讓計算機模擬人對句子的理解,達(dá)到識別詞的效果(語法分析樹)
方法2:基于字符串匹配的分詞方法
-
基于詞典(規(guī)則)的方法
- “查字典” 法
- 按照一定策略將待分析的漢字串與一個“詞典”中的詞條進(jìn)行匹配
- 如果匹配成功,那么該漢字串就是一個詞
- 遇到不認(rèn)識的字串就分割成單字詞
-
策略
- 按照掃描方向:正向匹配和逆向匹配
- 按照掃描長度:最大匹配和最小匹配
- 最少切分(使每一句中切出的詞數(shù)最小)
-
優(yōu)點:
- 程序簡單易行,開發(fā)周期短
- 僅需很少的語言資源(詞表)
- 不需要任何詞法、句法、語義資源
- 可以自定義詞庫,增加新詞
-
缺點:
- Out of Vocabulary
- 歧義消解能力差
- 切分正確率不高,一般在95%左右
方法3:基于統(tǒng)計的分詞方法
思想
- 用字與字相鄰出現(xiàn)的頻率來反應(yīng)成詞的可靠度
- 統(tǒng)計語料中相鄰出現(xiàn)的各個字的組合的頻度
- 當(dāng)組合頻度高于某一個臨界值時,我們便可認(rèn)為此字組可能構(gòu)成一個詞語
優(yōu)點
- 分詞準(zhǔn)確度高
- 不需要切分詞典
- 能夠平衡地看待詞表詞和未登錄詞的識別問題
缺點
- 會經(jīng)常抽出一些共現(xiàn)頻度高、但并不是詞的常用字組
- 對常用詞的識別精度差,時空開銷大
- 學(xué)習(xí)算法的復(fù)雜度往往較高,計算代價較大,依賴手工定義的特征工程
實際應(yīng)用的統(tǒng)計分詞系統(tǒng)都要使用一部基本的分詞詞典(常用詞詞典)進(jìn)行串匹配分詞,同時使用統(tǒng)計方法識別一些新的詞,即將串頻統(tǒng)計和串匹配結(jié)合起來,既發(fā)揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結(jié)合上下文識別生詞、自動消除歧義的優(yōu)點。
基于HMM的中文分詞方法
隱馬爾可夫模型 Hidden Markov Model,HMM
隱馬爾科夫模型的三個基本問題
HMM實現(xiàn)中文分詞
Viterbi算法:對應(yīng)于中文分詞,它用來尋找最有可能產(chǎn)生某一句子的BEMS狀態(tài)值序列
-
在維特比算法中,我們定義了一個weight數(shù)組
-
w e i g h t [ i ] [ j ] weight[i][j] weight[i][j]表示到 j j j 這個字(可見狀態(tài)),隱藏狀態(tài)為 i i i 的概率
-
還定義了一個數(shù)組 p a t h [ i ] [ j ] path[i][j] path[i][j] 表示當(dāng)?shù)? j j j 個字的隱藏狀態(tài)為 i i i 時,第 j ? 1 j-1 j?1 個字(向前回溯)的隱藏狀態(tài)是 p a t h [ i ] [ j ] path[i][j] path[i][j] 的值
-
接下來包含4個步驟:
-
初始化第一列
-
使用遞推式向右下角求出每個格子內(nèi)的概率值
-
求到最后一個字的時候終止
-
回溯,沿著最終結(jié)果中最高的概率值,依據(jù)path數(shù)組,向前找回最大概率值路徑
-
第10講 文本表示
文本向量化
將文本信息數(shù)值化,從而便于進(jìn)行建模分析
文檔 —> 詞條集合:
- 詞袋(bag-of-words, BOW)
- 例如:搜索引擎
文本表示分為
- 離散表示
- 詞袋模型,one-hot(也叫獨熱編碼)、TF-IDF
- 分布式表示
- Distributed Representation(實現(xiàn)方式:主題模型 、文檔哈希、語言模型)
主題模型 topic modeling
- 發(fā)現(xiàn)詞之間的語義關(guān)聯(lián)
- LDA 向量維度是主題維度
- 超級耗時,所以業(yè)界不喜歡用
PLSA主題模型
概率潛在語義分析 PLSA Probabilistic Latent Semantic Analysis
模型訓(xùn)練:自動地發(fā)現(xiàn)文檔集中的主題(分布)
- 根據(jù)大量已知的文檔-詞項信息p(w|d)
- 訓(xùn)練出文檔-主題p(z|d)和主題-詞項p(w|z)
- 分布對應(yīng)了兩組Multinomial分布
- 采用EM算法估計這兩組分布的參數(shù)
LDA主題模型
Latent Dirichlet Allocation 隱含狄利克雷分布
LDA和PLSA思想上一致,改進(jìn)包括(1)增加了Dirichlet先驗(2)全貝葉斯化
文檔哈希
目標(biāo):hash code 的相似程度要能直接反映輸入內(nèi)容的相似程度
局部敏感哈希 LSH ——> Simhash算法
第11講 語言模型
統(tǒng)計語言模型
N-Gram語言模型
- 通過泛化解決0概率問題*(句子越長出現(xiàn)0概率問題的概率就越大)*
n 較大時
- 提供了更多的語境信息,語境更具區(qū)別性
- 但是,參數(shù)個數(shù)多、計算代價大、訓(xùn)練語料需要多、參數(shù)估計不可靠
n 較小時
- 語境信息少,不具區(qū)別性
- 但是,參數(shù)個數(shù)少、計算代價小、訓(xùn)練語料無需太多、參數(shù)估計可靠
理論上,n越大越好;經(jīng)驗上,trigram用的最多;盡管如此,原則上,能用bigram解決,絕不使用trigram。
神經(jīng)網(wǎng)絡(luò)語言模型
NNLM
(使用前 n-1 個詞預(yù)測第 n 個詞)
解決了傳統(tǒng)N-gram的兩個缺陷:
- 詞語之間的相似性可以通過詞向量來體現(xiàn)
- 在相似的上下文語境中,
NNLM
模型可以預(yù)測出相似的目標(biāo)詞,而傳統(tǒng)模型無法做到這一點
- 在相似的上下文語境中,
- 自帶平滑功能
- 解決了詞袋模型帶來的數(shù)據(jù)稀疏、語義鴻溝等問題
第12講 詞嵌入和文檔嵌入
詞向量化
- 獨熱編碼(One-Hot Encoding)
- 為每個詞分配一個唯一的二進(jìn)制向量
- 其中只有一個位置是1,其余位置是 0
- 詞嵌入(Word Embeddings)
- 將每個詞映射到低維連續(xù)向量空間
- 這些向量在語義上是相關(guān)的
- 如Word2Vec, GloVe, FastText等
Word2Vec
Word2Vec 通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,學(xué)習(xí)單詞的分布式表示(詞向量),主要基于以下兩種模型架構(gòu):
- CBOW(Continuous Bag-of-Words)
- 根據(jù)上下文單詞(周圍詞)預(yù)測當(dāng)前詞。
- 適合小型數(shù)據(jù)集,訓(xùn)練速度快。
- 示例:句子 “The cat sits on the mat” → 輸入 [“The”, “cat”, “on”, “the”, “mat”],預(yù)測目標(biāo)詞 “sits”。
- Skip-gram
- 根據(jù)當(dāng)前詞預(yù)測上下文單詞(反向CBOW)。
- 適合大型數(shù)據(jù)集,對稀有詞表現(xiàn)更好。
- 示例:輸入 “sits”,預(yù)測周圍的 [“The”, “cat”, “on”, “the”, “mat”]。
3個用處
- 列出所有相似詞語列表
- 詞匯的語義的類比
- 尋找對應(yīng)關(guān)系
CBOW(Continuous Bag-of-Words)
1. 核心思想
- 目標(biāo):利用上下文詞匯預(yù)測中心詞
- 輸入:周圍詞的one-hot向量(窗口內(nèi)的上下文詞)
- 輸出:預(yù)測中心詞的概率分布
2. 模型結(jié)構(gòu)
- 輸入層:上下文詞的one-hot向量(如窗口大小為2,則輸入4個詞)
- 投影層(共享權(quán)重):
- 將one-hot向量與嵌入矩陣 W V × N W_{V \times N} WV×N? 相乘( V V V是詞表大小, N N N是嵌入維度),得到詞向量
- 對上下文詞向量求平均,生成聚合的上下文表示
- 輸出層:
- 將平均向量與輸出矩陣 W N × V ′ W'_{N \times V} WN×V′? 相乘,通過softmax得到中心詞的概率分布
3. 數(shù)學(xué)表示
y ^ = softmax ( 1 C ∑ i = 1 C W ? x i ? W ′ ) \hat{y} = \text{softmax}\left( \frac{1}{C} \sum_{i=1}^C W \cdot x_i \cdot W' \right) y^?=softmax(C1?i=1∑C?W?xi??W′)
其中 C C C 是上下文詞數(shù)量, x i x_i xi? 是one-hot向量
損失函數(shù):交叉熵?fù)p失,最小化預(yù)測中心詞與真實標(biāo)簽的差異
5. 應(yīng)用
訓(xùn)練結(jié)束后的W就是詞向量的矩陣,任何一個單詞的One-Hot表示乘以這個矩陣W就可以得到其詞向量的表示
Skip-Gram
1. 核心思想
- 目標(biāo):用當(dāng)前詞(中心詞)預(yù)測其周圍窗口內(nèi)的上下文詞(如前后各2個詞)
- 輸入:中心詞的one-hot向量
- 輸出:上下文詞的概率分布(多分類問題)
2. 模型結(jié)構(gòu)
- 輸入層:中心詞的one-hot向量(維度為詞表大小 V V V)。
- 投影層:
- 輸入向量與嵌入矩陣 W V × N W_{V \times N} WV×N? 相乘,得到中心詞的詞向量( N N N 是嵌入維度)
- 輸出層:
- 將詞向量與輸出矩陣 W N × V ′ W'_{N \times V} WN×V′? 相乘,通過softmax得到每個上下文詞的概率
3. 訓(xùn)練優(yōu)化
- 損失函數(shù):交叉熵?fù)p失,最大化上下文詞的對數(shù)概率。
- 優(yōu)化技巧:
- 負(fù)采樣:訓(xùn)練時不讓模型從整個詞表找最可能的詞,而是直接給出這個詞,再給幾個噪聲詞(負(fù)例),能找出來就成功
- 層次
Softmax
:訓(xùn)練的時候先統(tǒng)計詞頻,建立霍夫曼樹,根據(jù)霍夫曼編碼進(jìn)行softmax回歸,更快
4. 特點
- 優(yōu)勢:
- 對罕見詞建模效果更好
- 適合大規(guī)模數(shù)據(jù)集,能捕捉更復(fù)雜的語義模式
- 劣勢:
- 訓(xùn)練速度比CBOW略慢(需處理更多上下文詞對)
Doc2Vec
Doc2Vec
:不僅能學(xué)習(xí)單詞的向量,還能學(xué)習(xí)文本的向量表示。用于聚類、分類。訓(xùn)練過程時,同時訓(xùn)練詞向量和段落向量。詞向量隨著滑動窗口的改變而改變,而只要滑動窗口還在本段落,段落向量不變(表示段落主題,只隨著模型參數(shù)更新而改變)。
- 是Word2vec的擴展,不僅學(xué)習(xí)單詞的向量,還學(xué)習(xí)文本的向量表示
- 能夠使一個變長的句子、段落或文檔表示為一個定長向量
- 段落向量模型添加了一個段落向量
Glove
- 全稱是global vector,改進(jìn)word2vector,成功利用語料庫的全局信息
- 采用了局部上下文信息和全局統(tǒng)計特征
損失函數(shù)公式
J = ∑ i , j = 1 V f ( X i j ) ( w i T w j + b i + b ˉ j ? log ? ( X i j ) ) 2 J = \sum_{i,j=1}^{V} f(X_{ij}) \left( w_i^T w_j + b_i + \bar_j - \log(X_{ij}) \right)^2 J=i,j=1∑V?f(Xij?)(wiT?wj?+bi?+bˉj??log(Xij?))2
- 符號說明:
- V V V:詞表大小。
- X i j X_{ij} Xij?:詞 i i i 和詞 j j j 在語料庫中的共現(xiàn)次數(shù)(即詞 j j j 出現(xiàn)在詞 i i i 上下文中的頻率)。
- w i , w j w_i, w_j wi?,wj?:詞 i i i 和詞 j j j 的向量表示。
- b i , b ˉ j b_i, \bar_j bi?,bˉj?:詞 i i i 和詞 j j j 的偏置項(標(biāo)量),用于捕捉詞頻的固有偏差。
- f ( X i j ) f(X_{ij}) f(Xij?):權(quán)重函數(shù),用于平衡高頻詞和低頻詞的影響。
GloVe
的優(yōu)化目標(biāo)是讓詞向量的內(nèi)積 w i T w j w_i^T w_j wiT?wj? 加上偏置項后,盡可能接近共現(xiàn)次數(shù)的對數(shù):
w i T w j + b i + b ˉ j ≈ log ? ( X i j ) w_i^T w_j + b_i + \bar_j \approx \log(X_{ij}) wiT?wj?+bi?+bˉj?≈log(Xij?)
第13講 文本分類
FastText
FastText
在 Word2Vec
的基礎(chǔ)上進(jìn)行了改進(jìn),特別適合處理形態(tài)豐富的語言(如德語、土耳其語)和短文本分類任務(wù)。
子詞嵌入
子詞模型 Sub-word,它通過分解單詞為更小的單元(n-gram 字符組合)來增強詞向量的表示能力。
核心思想
- 傳統(tǒng)
Word2Vec
將每個單詞視為一個原子單位(如 “apple” 對應(yīng)一個向量),但無法處理未登錄詞(OOV, Out-of-Vocabulary)。 FastText
將單詞拆分為 字符級 n-gram(如 3-gram:“apple” →<ap
,app
,ppl
,ple
,le>
),并計算這些子詞的向量之和作為單詞的最終表示。
數(shù)學(xué)表示
對于一個單詞 w w w,其向量 v w v_w vw? 是所有子詞向量 v g v_{g} vg? 的平均或求和:
v w = ∑ g ∈ G w v g v_w = \sum_{g \in G_w} v_g vw?=g∈Gw?∑?vg?
其中 G w G_w Gw? 是單詞 w w w 的所有 n-gram 子詞集合。
優(yōu)勢
? 解決未登錄詞問題:即使單詞未在訓(xùn)練集中出現(xiàn),仍可通過子詞組合生成向量。
? 更好的形態(tài)學(xué)建模:適用于德語、俄語等具有復(fù)雜詞形變化的語言。
? 共享子詞信息:相似詞(如 “running” 和 “runner”)共享部分子詞,語義關(guān)聯(lián)更強。
FastText
文本分類
FastText
提供了一種簡單高效的文本分類方法,特別適合 短文本(如新聞分類、情感分析)。
核心思想
- 將整個文本表示為 所有詞向量的平均(或求和)。
- 使用線性分類器(
Softmax
)預(yù)測類別標(biāo)簽。
模型結(jié)構(gòu)
- 輸入層:文本分詞后,每個單詞轉(zhuǎn)換為子詞向量
- 隱藏層:對一個文檔中所有單詞的向量進(jìn)行疊加平均
- 輸出層:Softmax 分類器
TextCNN
- 對CNN的輸入層做了一些變形。
- 自然語言是一維數(shù)據(jù),卷積核在一個方向上移動。
- 輸入:通過詞向量文件及詞向量矩陣,將文本向量化,支持后續(xù)進(jìn)行卷積池化等操作。
第14講 WEB圖像數(shù)據(jù)
圖像的特征主要包括
-
低層特征(Primitive Features)
-
語義特征(Semantic Features)
-
局部特征
-
全局特征
低級圖像特征主要有顏色、紋理和形狀,低級圖像特征包括局部特征和全局特征
顏色特征
- 顏色是彩色圖像最底層、最直觀的物理特征
- 通常對噪聲,圖像質(zhì)量的退化,尺寸、分辨率和方向等的變化具有很強的魯棒性
- 全局特征
顏色直方圖 ColorHistogram
最簡單、最常用的顏色特征
- 描述的是不同色彩在整幅圖像中所占的比例
- 統(tǒng)計分布特性
- 具有平移、尺度、旋轉(zhuǎn)不變性
- 特別適于描述那些難以進(jìn)行自動分割的圖像
- No space information
顏色矩 ColorMoment
基本思想
- 在顏色直方圖的基礎(chǔ)上計算出每個顏色的矩估計
- 顏色信息主要分布于低階矩中
- 一階矩(均值,mean)
- 二階矩(方差,viarance)
- 三階矩(斜度,skewness)
- 用這些統(tǒng)計量替代顏色的分布來表示顏色特征
- 它具有特征量少,處理簡單的特點
優(yōu)點
- 不需要顏色空間量化,特征向量維數(shù)低
- 常和其他特征結(jié)合
紋理特征
LBP特征 Local Binary Patterns
- LBP(局部二值模式)是一種用于紋理分析的局部特征描述方法,廣泛應(yīng)用于圖像處理、人臉識別、物體檢測等領(lǐng)域
- 其核心思想是通過比較像素點與其鄰域的灰度關(guān)系,生成二進(jìn)制編碼來表示局部紋理特征
計算步驟
- 選擇中心像素:對圖像中的每個像素點 ( x c , y c ) (x_c,y_c) (xc?,yc?) ,取其鄰域(通常是 3×3 窗口)
- 比較鄰域像素:將鄰域像素的灰度值與中心像素比較,大于等于中心值的記為
1
,否則記為0
- 生成二進(jìn)制編碼:按固定順序排列這些二進(jìn)制值,形成一個 8 位二進(jìn)制數(shù)(如
11001011
) - 轉(zhuǎn)換為十進(jìn)制:將該二進(jìn)制數(shù)轉(zhuǎn)為十進(jìn)制,作為中心像素的 LBP 值
- 對一幅灰度圖提取其原始的LBP算子之后,得到LBP圖譜,不過在應(yīng)用中一般采用LBP特征譜的統(tǒng)計直方圖
- 跟位置有很大關(guān)系,會因為位置沒有對準(zhǔn)而產(chǎn)生很大誤差,可以將圖片劃分為若干子區(qū)域,然后每個子區(qū)域建立LBP的統(tǒng)計直方圖
顯著的優(yōu)點
- 光照不變性
- 旋轉(zhuǎn)不變性
- 灰度不變性
局部形狀特征
HOG特征
- 方向梯度直方圖
- Histogram of Oriented Gradient, HOG
- 通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構(gòu)成特征(描述局部目標(biāo)的表象和形狀)
HOG特征提取算法的實現(xiàn)過程
- 圖像灰度化
- 對圖像顏色進(jìn)行Gamma校正
- 計算圖像每個像素的梯度
- 將圖像劃分成小cells
- 統(tǒng)計每個cell的梯度直方圖
- 將每幾個cell組成一個block
- 將圖像內(nèi)的所有block的HOG特征descriptor串聯(lián)
SIFT特征
- 尺度不變特征轉(zhuǎn)換
- Scale-invariant feature transform或SIFT
算法步驟
- 建立尺度空間
- 即建立高斯差分(DoG)金字塔
- 在尺度空間中檢測極值點,并進(jìn)行精確定位和篩選
- 特征點方向賦值
- 完成此步驟后,每個特征點有三個信息:位置、尺度、方向
- 計算特征描述子
- SIFT優(yōu)點:旋轉(zhuǎn)、尺度、亮度不變性,穩(wěn)定
- SIFT缺點:實時性不夠高,有時特征點較少,對邊緣光滑的目標(biāo)無法準(zhǔn)確提取特征點