基於CNN的新詞發現演算法
作者 | mczhao,攜程資深研發經理,專注於自然語言處理技術領域。
概覽
隨著消費熱點和網紅新梗的不斷湧現,在電商平台的NLP任務中,經常會出現一些之前沒有見過的字。這些字不在系統已有的字庫中,稱為"未登入詞"。
一方面,詞庫中詞的缺失影響了一些基於詞庫的分詞器的分詞質量,間接影響了文本召回質量和高亮提示的質量,即用戶文本搜尋的準確性和搜尋結果的可解釋性。
另一方面,在主流NLP深度學習演算法BERT/Transformer等等中,對中文處理時常使用字向量來取代詞向量。理論上使用詞向量的效果應是更好的,但是由於未登錄詞的原因,在實踐過程中使用字向量的效果更好。如果詞庫更加完善,那麼使用詞向量的效果將優於使用字向量的效果。
綜上,新詞發現是我們當下需要解決的問題。
一、傳統無監督的方法
中文新詞發現這個問題,在業界已經有了較成熟的解法。輸入是一些語料,將這些文字做NGram切分以後,產生候選片段。計算這些片段的一些統計特徵,再根據這些特徵判斷這個片段是不是一個字。
業界主流的做法是統計和觀察這三個面向的指標:熱度、內聚度、左右鄰字豐富度。描述這三個指標的文章網路上也有很多,這裡簡單介紹一下,細節可以參考Hello NLP和Smooth NLP的兩篇新詞發現文章。
1.1 熱度
使用詞頻來表示熱度。統計所有語料的所有片段的出現次數,那些高頻的片段往往就是一個字。
1.2 內聚度
使用點互資訊來衡量內聚度:
例如,我們判斷漢庭是不是一個詞,log(P("漢庭")/P("漢")P("庭"))。漢庭成詞的機率,和"漢庭"的熱度成正比,和"漢"、"庭"的單字熱度成反比。這個很好理解,像是漢字中最常出現的字"的",隨便一個漢字和"的"搭配的機率非常高,但是並不意味這"x的"或者"的x"就是一個詞,這裡"的"的單字熱度就起了一個抑制的作用。
1.3 左右鄰字豐富度
#左右鄰接熵來表示左右字的豐富程度。左右鄰接熵就是候選詞片段左邊或右邊出現的字的分佈的隨機性。可以拆開看左邊的熵和右邊的熵,也可以把兩個熵合併成一個指標。
例如,"香格里拉"這個片段其熱度和內聚度都非常高,對應其子片段"香格里"的熱度和內聚度也很高,但是因為"香格里"後面大部分情況都出現"拉"字,它的右鄰接熵很低,對其成詞起抑製作用,可以判斷出"香格里"三字不能單獨成詞。
二、經典方法的限制
經典方法的問題在於需要手動設定閾值參數。一個NLP專家在了解當前語料中片段的機率分佈以後,將這些指標透過公式組合或獨立使用,然後設定閾值來作為判斷標準,使用這個標準判斷的結果也可以做到很高的準確度。
但機率分佈或說詞頻並不是一成不變的,隨著語料庫越來越豐富,或者語料的加權熱度(通常是對應的商品熱度)波動變化,專家設定的公式中的參數和閾值也需要不斷調整。這就浪費了很多人力,讓人工智慧工程師淪為調參俠。
三、基於深度學習的新詞發現
3.1 詞頻機率分佈圖
上述業界已有演算法的三個指標,根本來源的特徵只有一個,就是詞頻。在統計學的方法中,通常會把一些簡單又關鍵的統計量以圖片的方式展示,比如直方圖、箱線圖等等,即使沒有模型介入,光憑人看,還是能夠一眼做出正確的判斷。可以把語料切出所有長度限定的片段,把片段的詞頻歸一化為0-255,映射為二維矩陣,行表示起始的字符,列表示終止的字符,一個像素點就是一個片段,像素點的明暗程度就是這個候選詞片段的熱度。
#上圖是"浦東機場華美達飯店"這個短句的詞頻機率分佈圖,我們驚喜地發現,光憑我們的肉眼,也大致可以分出一些較為明亮的、等腰直角三角形的區塊,例如:"浦東"、"浦東機場"、"機場"、"華美達酒店"等等。這些區塊可以判斷對應的片段正是我們所需要的字。
3.2 經典影像分割演算法
#透過觀察詞頻機率分佈圖,我們可以把一個短句分詞問題轉換成一個影像分割問題。早期的影像分割演算法,和上述的新詞發現演算法差不多,也是基於閾值的偵測邊緣灰階變化的演算法,隨著技術發展,現在一般使用深度學習演算法,其中比較著名的是U-Net影像分割演算法。
U-Net的前半部分使用卷積下取樣,提取多層不同粒度的特徵,後半部分上採樣,將這些特徵在同一解析度下concat起來,最後透過全連接層Softmax得到像素層級的分類結果。
3.3 基於卷積網路的新詞發現演算法
#對詞頻機率分佈圖的切分和對圖的切分類似,都是將位置相鄰且灰階相近的部分切出來。所以對短句的切分,也可以參考影像分割演算法,使用全卷積網路來做。使用卷積來做的原因是,無論我們在切割短句或影像的時候,都更多的關注局部訊息,就是靠近切割邊緣那些像素點。使用多層網路的原因,多層的池化可以表現出對不同層特徵的閾值判斷,例如我們對地圖地形切割的時候既要考慮坡度(一階導/差分)還需要考慮坡度的變化(二階導/差分),兩者分別取閾值並且組合方式不僅僅是簡單的線性加權而是串行的網路。
對於新詞發現場景我們設計如下的演算法:
- #先把短句的詞頻分佈圖用0填充到24x24;
- 先有兩個3x3的捲積層,並輸出4通道;
- 把兩個卷積層concat起來,再做一次3x3的捲積,並且輸出單通道;
- 損失函數使用logistic=T,所以最後一層不用做softmax輸出即可用於分類;
##相比於U-Net,有以下差異:
#1)放棄了下取樣和上取樣,原因是一般用來分割的短句比較短,詞頻分佈圖的解析度本來就不高,所以模型也隨之簡化了。
2)U-Net是三分類(分塊1、分塊2、在邊緣上),此演算法只需要二分類(像素點是否為單字)。所以最後輸出的結果也是不一樣的,U-Net輸出一些連續的分塊和分割線,而我們只需要某個點是不是陽性的。
下圖是訓練完模型以後,用模型預測的結果。我們可以看到輸出結果中,"上海"(上這一行、海這一列)、"虹橋"、"商務區"這三個詞對應的像素點被識別了出來。如果想探究模型是怎麼生效的,可以看中間層的捲積核。我們先將模型捲積層的捲積核數從4簡化到1,訓練以後,透過TensorFlow的API檢視中間層:model.get_layer('Conv2').__dict__。我們發現Conv2層的捲積核如下:
可以看到第一行和第二行對模型的效果是相反的,對應了該像素點的上一行減掉當前行的差分(帶權重),如果灰度差異越大,這個像素點代表的字串越有可能成詞。
也可以看到第一行第二列0.04505884的絕對值比較小,可能是因為第一行減第二行的正向參數和第三列減第二列的負向參數相互抵消。
五、最佳化空間
本文描述的是一個結構非常簡單的全卷積網路模型,還有很大的提升空間。
一是擴充特徵選取範圍。 例如,本文中輸入特徵只有詞頻,如果把左右鄰接熵也納入輸入特徵,切分的效果會更加精準。
二是增加網路深度。 透過模型分析,發現第一層卷積主要是為了因應那些用0填滿的像素點產生的case,實際關注真實熱度的捲積只有一層,如果是3x3的捲積核只能看到一階差分結果,目前像素的前後第二行和第二列就沒有考慮到。可以適當擴大卷積核大小或加深網絡,來使模型的視野更大。但加深網路也會帶來過度擬合的問題。
最後,這個模型不僅可以用來補充詞庫以提高分詞效果,並且可以直接用作分詞的參考,在分詞流程的候選詞召回和分詞路徑打分這兩個步驟中都可以應用這個模型的預測結果。
以上是基於CNN的新詞發現演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

寫在前面&筆者的個人理解目前,在整個自動駕駛系統當中,感知模組扮演了其中至關重要的角色,行駛在道路上的自動駕駛車輛只有通過感知模組獲得到準確的感知結果後,才能讓自動駕駛系統中的下游規控模組做出及時、正確的判斷和行為決策。目前,具備自動駕駛功能的汽車中通常會配備包括環視相機感測器、光達感測器以及毫米波雷達感測器在內的多種數據資訊感測器來收集不同模態的信息,用於實現準確的感知任務。基於純視覺的BEV感知演算法因其較低的硬體成本和易於部署的特點,以及其輸出結果能便捷地應用於各種下游任務,因此受到工業

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

C++sort函數底層採用歸併排序,其複雜度為O(nlogn),並提供不同的排序演算法選擇,包括快速排序、堆排序和穩定排序。

人工智慧(AI)與執法領域的融合為犯罪預防和偵查開啟了新的可能性。人工智慧的預測能力被廣泛應用於CrimeGPT(犯罪預測技術)等系統,用於預測犯罪活動。本文探討了人工智慧在犯罪預測領域的潛力、目前的應用情況、所面臨的挑戰以及相關技術可能帶來的道德影響。人工智慧和犯罪預測:基礎知識CrimeGPT利用機器學習演算法來分析大量資料集,識別可以預測犯罪可能發生的地點和時間的模式。這些資料集包括歷史犯罪統計資料、人口統計資料、經濟指標、天氣模式等。透過識別人類分析師可能忽視的趨勢,人工智慧可以為執法機構

01前景概要目前,難以在檢測效率和檢測結果之間取得適當的平衡。我們研究了一種用於高解析度光學遙感影像中目標偵測的增強YOLOv5演算法,利用多層特徵金字塔、多重偵測頭策略和混合注意力模組來提高光學遙感影像的目標偵測網路的效果。根據SIMD資料集,新演算法的mAP比YOLOv5好2.2%,比YOLOX好8.48%,在偵測結果和速度之間達到了更好的平衡。 02背景&動機隨著遠感技術的快速發展,高解析度光學遠感影像已被用於描述地球表面的許多物體,包括飛機、汽車、建築物等。目標檢測在遠感影像的解釋中

一、多模態大模型的歷史發展上圖這張照片是1956年在美國達特茅斯學院舉行的第一屆人工智慧workshop,這次會議也被認為拉開了人工智慧的序幕,與會者主要是符號邏輯學屆的前驅(除了前排中間的神經生物學家PeterMilner)。然而這套符號邏輯學理論在隨後的很長一段時間內都無法實現,甚至到80年代90年代還迎來了第一次AI寒冬期。直到最近大語言模型的落地,我們才發現真正承載這個邏輯思維的是神經網絡,神經生物學家PeterMilner的工作激發了後來人工神經網絡的發展,也正因為此他被邀請參加了這個

一、58畫像平台建置背景首先和大家分享下58畫像平台的建造背景。 1.傳統的畫像平台傳統的想法已經不夠,建立用戶畫像平台依賴數據倉儲建模能力,整合多業務線數據,建構準確的用戶畫像;還需要數據挖掘,理解用戶行為、興趣和需求,提供演算法側的能力;最後,還需要具備數據平台能力,有效率地儲存、查詢和共享用戶畫像數據,提供畫像服務。業務自建畫像平台和中台類型畫像平台主要區別在於,業務自建畫像平台服務單條業務線,按需定制;中台平台服務多條業務線,建模複雜,提供更為通用的能力。 2.58中台畫像建構的背景58的使用者畫像

寫在前面&筆者的個人理解在自動駕駛系統當中,感知任務是整個自駕系統中至關重要的組成部分。感知任務的主要目標是使自動駕駛車輛能夠理解和感知周圍的環境元素,如行駛在路上的車輛、路旁的行人、行駛過程中遇到的障礙物、路上的交通標誌等,從而幫助下游模組做出正確合理的決策和行為。在一輛具備自動駕駛功能的車輛中,通常會配備不同類型的信息採集感測器,如環視相機感測器、雷射雷達感測器以及毫米波雷達感測器等等,從而確保自動駕駛車輛能夠準確感知和理解周圍環境要素,使自動駕駛車輛在自主行駛的過程中能夠做出正確的決斷。目
