深度學習 DAY3:NLP發展史

NLP發展史

NLP發展脈絡簡要梳理如下:

(遠古模型,上圖沒有但也可以算NLP)
1940 - BOW(無序統計模型)
1950 - n-gram(基于詞序的模型)

(近代模型)
2001 - Neural language models(神經語言模型)
2008 - Multi-task learning(多任務學習)
2013 - Word embeddings(詞嵌入)
2013 - Neural networks for NLP(NLP神經網絡)
2014 - Sequence-to-sequence models

(現代模型)
2015 - Attention(注意力機制)
2015 - Memory-based networks(基于記憶的網絡)
2018 - Pretrained language models(預訓練語言模型)

1940 - 詞袋模型(BOW)

首先解釋一下什么是詞袋模型:

詞袋模型(Bag-of-Words, BOW) 是最早、最經典的文本表示方法之一(1940左右出現,甚至比n-gram還要早,我愿稱之為原始祖師爺)。它將一段文本看作一個「袋子」:里面盛放了這個文本所含的所有單詞,但忽略了單詞的順序、句法結構等信息,只關注單詞是否出現以及出現次數(或頻率)。這就好比把句子里的單詞都抓出來扔進一個袋子,搖勻后再數一數這些單詞都有什么、各出現幾次。

? ? ? ? ? ? ??

1.1 典型示例

假設我們的詞表是 "I","like","apples","banana",大小 V=4(指的就是一共有4個詞)。
有兩句話:

“I like apples”
“I like banana apples”
那么在詞袋表示下:

對于 “I like apples”:

"I" 出現 1 次
"like" 出現 1 次
"apples"出現 1 次
"banana"出現 0 次
向量表示可寫作 [1, 1, 1, 0]
對于 “I like banana apples”:

"I" 出現 1 次
"like" 出現 1 次
"apples"出現 1 次
"banana"出現 1 次
向量表示可寫作 [1, 1, 1, 1]
可以看到,這種表示只管詞的出現情況,不會去記錄 “banana”是在“apples”前還是后出現,也不會記錄它們之間的距離。這樣就得到最純粹的詞袋表示。

1950 - N-Gram模型

n-gram算法的基本思想是將文本拆分成若干個連續的n個詞的序列,并統計這些序列在文本中出現的頻率。這里的n是一個正整數,表示詞組中詞的個數。

例如,在句子“我喜歡學習自然語言處理”中,

1-gram(unigram)是單個詞,如“我”、“喜歡”等;
2-gram(bigram)是相鄰的兩個詞組成的詞組,如“我喜歡”、“喜歡學習”等;
3-gram(trigram)則是相鄰的三個詞組成的詞組,如“我喜歡學習”等。
通過統計這些n-gram的頻率,我們可以得到文本中各個詞組的出現概率分布。這些概率信息對于后續的文本生成、語言模型構建、文本分類等任務具有重要的指導意義。

n-gram 的預測原理可以用一個?奶茶店點單預測?的類比來理解。我們通過實際場景拆解其核心機制:


一、基本原理:局部依賴的馬爾可夫假設
1. 核心公式

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

假設預測第n個詞時,只需看前N-1個詞(如同奶茶店員只需記住最近3位顧客的點單)

2. 實際案例

當顧客連續點單:

"珍珠奶茶" → "布丁奶茶" → "椰果奶茶"

使用?trigram(N=3)?預測時:

  • 新顧客點單序列:"珍珠奶茶" → "布丁奶茶" → ?

  • 預測邏輯:根據前兩個飲品?"布丁奶茶"?預測下一個可能飲品

2001 - 神經語言模型(其實比這個更早的是n-gram和BOW,這兩個是基于統計的方法)

第一個神經語言模型是Bengio等人在2001年提出的前饋神經網絡,如圖所示:

? ? ? ? ? ???

這個模型將從表C中查找到的n個單詞作為輸入向量表征。這種向量被現在的學者們稱做“詞嵌入”。這些詞嵌入級聯后被輸入到一個隱藏層中,該隱藏層的輸出又被輸入到softmax。

場景示例:預測下一個詞

假設我們有一句話的前幾個詞:

“I like to eat …”

我們的目標是:用神經網絡根據已有的上下文I like to eat來預測下一個詞(比如 “apples”, “rice”, “pizza” 等)。

1. 準備輸入(詞索引)

  • 首先,我們給詞表(vocabulary)中的每個單詞都分配一個 索引 (index)。在最底層,模型看到的輸入并不是 “I, like, to, eat” 的字符,而是它們在詞表中的索引編號。
  • 比如:
    • “I” → index = 101
    • “like” → index = 532
    • “to” → index = 7
    • “eat” → index = 85
  • 在圖中,這些索引就對應 “index for wt?3?”、“index for wt?2” 等。

下面舉一個具體示例,幫助理解圖中神經網絡語言模型(Neural Language Model)是如何工作的。


場景示例:預測下一個詞

假設我們有一句話的前幾個詞:

“I like to eat …”

我們的目標是:用神經網絡根據已有的上下文I like to eat來預測下一個詞(比如 “apples”, “rice”, “pizza” 等)。

1. 準備輸入(詞索引)

  • 首先,我們給詞表(vocabulary)中的每個單詞都分配一個 索引 (index)。在最底層,模型看到的輸入并不是 “I, like, to, eat” 的字符,而是它們在詞表中的索引編號。
  • 比如:
    • “I” → index = 101
    • “like” → index = 532
    • “to” → index = 7
    • “eat” → index = 85
  • 在圖中,這些索引就對應 “index for wt?3w_{t-3}wt?3?”、“index for wt?2w_{t-2}wt?2?” 等。

2. 從詞嵌入矩陣 C 中查詢 Embedding

  • 模型里有一個嵌入矩陣(Embedding Matrix),通常記作 C。它是一個「表」,用來將「詞索引」映射成「向量表示」。
  • 舉例,如果詞表的大小是 V=10000,而我們的詞向量維度設為 d=300,那么 C 的大小就是 10000 x 300。每一行對應一個單詞的 300 維向量。
  • 當輸入是索引 [101, 532, 7, 85](表示 “I like to eat”)時,模型會分別去 C 的第 101 行、第 532 行、第 7 行、第 85 行,把那幾行向量取出來:
    • C("I") = 一個 300 維向量
    • C("like") = 一個 300 維向量
    • C("to") = 一個 300 維向量
    • C("eat") = 一個 300 維向量
  • 這幾條向量就如同圖中那幾個藍色小方框,里面放著紅色小圓點(表示向量維度的數值)。

3. 將若干個詞向量組合輸入到隱層

  • 拿到這四個詞向量后,通常會拼接 (concatenate) 或者做其他操作(例如平均、加和等),形成一個長的向量,作為神經網絡的輸入。
  • 隨后,這個長向量會通過一個(或多個)隱層 (hidden layer)
    • 圖中用 “tanh” 表示可能存在一個全連接層 + 激活函數(如 tanh??或 ReLU)。
    • 模型會將輸入向量映射到一個新的表示空間,學習到“這些詞組合在一起時,它們所包含的上下文信息”。

4. 輸出層(Softmax)得到下一詞概率分布

  • 隨后,隱層的輸出會傳遞給輸出層 (output layer),這里通常是一個大小為 V(詞表大小)的全連接層,再接一個 Softmax。
  • Softmax 會將網絡輸出變成一個概率分布,即對詞表中每個可能的詞(1 到 V)給出一個概率:

  • 這就意味著模型會輸出類似:
    • “apples” → 0.28
    • “rice” → 0.15
    • “pizza” → 0.10
    • “is” → 0.05
    • “and” → 0.01
    • …(其他詞)
  • 這些值相加等于 1,表示在給定 “I like to eat” 這個上下文時,模型認為下一個詞是 “apples” 的概率最高,其次是 “rice”,再然后是 “pizza”,依此類推。

5. 訓練 & 參數更新

  • 在訓練過程中,我們會有大量的句子樣本(真實文本)。模型會對每個句子中的每個位置嘗試預測下一個詞,然后與真實詞做對比,計算交叉熵損失或負對數似然等。
  • 通過反向傳播 (backpropagation),模型會不斷更新:
    • Embedding Matrix C(讓詞向量變得更能表達單詞的含義與語境),
    • 隱層/輸出層的權重(讓網絡更好地捕捉上下文與下一詞的依賴關系)。

6. 小結

綜合起來,這個流程就是:

  1. 將離散單詞索引 → 查表得到向量 (Embedding) → 隱層 → 輸出層 (Softmax) → 獲得概率分布
  2. 通過大量語料訓練,讓模型參數學到“在特定上下文時,下一個詞更可能是什么”。

這個思路在當年是對傳統 n-gram 語言模型的一次巨大改進,因為神經網絡可以通過共享的詞向量解決數據稀疏和泛化能力差的問題,并且在處理多樣化的文本時效果更好。

語言建模通常是應用RNN時的第一步,是一種非監督學習形式。盡管它很簡單,但卻是本文后面討論的許多技術發展的核心:

詞嵌入:word2vec 的目標是簡化語言建模。

sequence-to-sequence 模型:這種模型通過一次預測一個單詞生成一個輸出序列。

預訓練語言模型:這些方法使用來自語言模型的表述進行遷移學習。

反過來講,這意味著近年來 NLP 的許多重要進展都可以歸結為某些形式的語言建模。為了“真正”理解自然語言,僅僅從文本的原始形式中學習是不夠的。我們需要新的方法和模型。

2008- 多任務學習

多任務學習是在多個任務上訓練的模型之間共享參數的一種通用方法。在神經網絡中,可以通過給不同層施以不同的權重,來很容易地實現多任務學習。多任務學習的概念最初由Rich Caruana 在1993年提出,并被應用于道路跟蹤和肺炎預測(Caruana,1998)。直觀地說,多任務學習鼓勵模型學習對許多任務有用的表述。這對于學習一般的、低級的表述形式、集中模型的注意力或在訓練數據有限的環境中特別有用。

在2008年,Collobert 和 Weston 將多任務學習首次應用于 NLP 的神經網絡。在他們的模型中,查詢表(或單詞嵌入矩陣)在兩個接受不同任務訓練的模型之間共享,如下面的圖所示。?

2013- 詞嵌入

用稀疏向量表示文本,即所謂的詞袋模型在 NLP 有著悠久的歷史。正如上文中介紹的,早在 2001年就開始使用密集向量表示詞或詞嵌入。Mikolov等人在2013年提出的創新技術是通過去除隱藏層,逼近目標,進而使這些單詞嵌入的訓練更加高效。雖然這些技術變更本質上很簡單,但它們與高效的word2vec配合使用,便能使大規模的詞嵌入訓練成為可能。

Word2vec有兩種風格,如下面的圖所示:連續字袋 CBOW 和 skip-gram。不過他們的目標不同:一個是根據周圍的單詞預測中心單詞,而另一個則相反。

? ? ? ??

雖然這些嵌入在概念上與使用前饋神經網絡學習的嵌入在概念上沒有區別,但是在一個非常大的語料庫上訓練之后,它們就能夠捕獲諸如性別、動詞時態和國家-首都關系等單詞之間的特定關系,如下圖所示。

2014 - NLP 神經網絡

2013 年和 2014 年是 NLP 問題開始引入神經網絡模型的時期。使用最廣泛的三種主要的神經網絡是:循環神經網絡、卷積神經網絡和遞歸神經網絡。

循環神經網絡(RNNs) 循環神經網絡是處理 NLP 中普遍存在的動態輸入序列的一個最佳的技術方案。Vanilla RNNs (Elman,1990)很快被經典的長-短期記憶網絡(Hochreiter & Schmidhuber,1997)所取代,它被證明對消失和爆炸梯度問題更有彈性。在 2013 年之前,RNN 仍被認為很難訓練;Ilya Sutskever 的博士論文為改變這種現狀提供了一個關鍵性的例子。下面的圖對 LSTM 單元進行了可視化顯示。雙向 LSTM(Graves等,2013)通常用于處理左右兩邊的上下文。

卷積神經網絡(CNNs) 卷積神經網絡本來是廣泛應用于計算機視覺領域的技術,現在也開始應用于語言(Kalchbrenner等,2014;Kim等,2014)。文本的卷積神經網絡只在兩個維度上工作,其中濾波器(卷積核)只需要沿著時間維度移動。下面的圖顯示了NLP中使用的典型 CNN。

卷積神經網絡的一個優點是它們比 RNN 更可并行化,因為其在每個時間步長的狀態只依賴于本地上下文(通過卷積運算),而不是像 RNN 那樣依賴過去所有的狀態。使用膨脹卷積,可以擴大 CNN 的感受野,使網絡有能力捕獲更長的上下文(Kalchbrenner等,2016)。CNN 和 LSTM 可以組合和疊加(Wang等,2016),卷積也可以用來加速 LSTM(Bradbury等, 2017)。

遞歸神經網絡 RNN 和 CNN 都將語言視為一個序列。然而,從語言學的角度來看,語言本質上是層次化的:單詞被組合成高階短語和從句,這些短語和從句本身可以根據一組生產規則遞歸地組合。將句子視為樹而不是序列的語言學啟發思想產生了遞歸神經網絡(Socher 等人, 2013),如下圖所示

? ? ? ? ? ? ? ??

遞歸神經網絡從下到上構建序列的表示,這一點不同于從左到右或從右到左處理句子的 RNN。在樹的每個節點上,通過組合子節點的結果來計算新的結果。由于樹也可以被視為在 RNN 上強加不同的處理順序,所以 LSTM 自然地也被擴展到樹上(Tai等,2015)。?

RNN 和 LSTM 可以擴展到使用層次結構。單詞嵌入不僅可以在本地學習,還可以在語法語境中學習(Levy & Goldberg等,2014);語言模型可以基于句法堆棧生成單詞(Dyer等,2016);圖卷積神經網絡可以基于樹結構運行(Bastings等,2017)。?

2014-sequence-to-sequence 模型

2014 年,Sutskever 等人提出了 sequence-to-sequence 模型。這是一個使用神經網絡將一個序列映射到另一個序列的通用框架。在該框架中,編碼器神經網絡逐符號處理一個句子,并將其壓縮為一個向量表示;然后,一個解碼器神經網絡根據編碼器狀態逐符號輸出預測值,并將之前預測的符號作為每一步的輸入,如下圖所示。

機器翻譯是對這個框架比較成功的應用。2016 年,谷歌宣布將開始用神經 MT 模型取代基于單片短語的 MT 模型(Wu等,2016)。根據 Jeff Dean 的說法,這意味著用 500 行神經網絡模型替換 50 萬行基于短語的MT代碼。

由于其靈活性,這個框架現在是自然語言生成任務的首選框架,其中不同的模型承擔了編碼器和解碼器的角色。重要的是,解碼器模型不僅可以解碼一個序列,而且可以解碼任意表征。例如,可以基于圖像生成標題(Vinyals等,2015)(如下圖所示)、基于表生成文本(Lebret等,2016)和基于應用程序中源代碼更改描述(Loyola等,2017)。? ?

? ? ? ? ? ? ? ? ? ? ? ? ?

sequence-to-sequence 學習甚至可以應用于 NLP 中輸出具有特定結構的結構化預測任務。為了簡單起見,輸出被線性化,如下面的圖所示,用于進行選區解析。神經網絡已經證明了在有足夠數量的訓練數據進行選區分析(Vinyals等,2015)和命名實體識別(Gillick等, 2016)的情況下,直接學習可以產生這種線性化輸出的能力。

2015- 注意力機制

注意力機制(Bahdanau 等,2015)是神經網絡機器翻譯(NMT)的核心創新之一,也是使 NMT模型勝過經典的基于短語的MT系統的關鍵思想。sequence-to-sequence模型的主要瓶頸是需要將源序列的全部內容壓縮為一個固定大小的向量。注意力機制通過允許解碼器回頭查看源序列隱藏狀態來緩解這一問題,然后將其加權平均作為額外輸入提供給解碼器,如下面的圖所示?

? ? ? ? ? ? ? ???

?注意力機制有很多不同的形式(Luong等,2015)。這里有一個簡短的概述。注意力機制廣泛適用于任何需要根據輸入的特定部分做出決策的任務,并且效果不錯。它已被應用于一致性解析(Vinyals等,2015)、閱讀理解(Hermann等,2015)和一次性學習(Vinyals等,2016)等諸多領域。輸入甚至不需要是一個序列,即可以包含其他表示,如圖像字幕(Xu等,2015),如下圖所示。注意力機制的一個額外的功能是,它提供了一種少見的功能,我們可以通過檢查輸入的哪些部分與基于注意力權重的特定輸出相關來了解模型的內部工作方式。

?

2015 - 基于記憶的網絡(已完全被transformer取代,甚至我都沒怎么聽過,可完全忽略)

注意力機制可以看作是模糊記憶的一種形式。記憶由模型的隱藏狀態組成,模型選擇從記憶中檢索內容。研究者們提出了許多具有更明確記憶的模型。這些模型有不同的變體,如神經圖靈機(Graves等,2014)、記憶網絡(Weston等,2015)和端到端記憶網絡(Sukhbaatar等,2015)、動態記憶網絡(Kumar等,2015)、神經微分計算機(Graves等,2016)和循環實體網絡(Henaff等,2017)。

記憶的訪問通常基于與當前狀態的相似度,類似于注意力,通常可以寫入和讀取。模型在如何實現和利用內存方面有所不同。例如,端到端記憶網絡多次處理輸入,并更新記憶以實現多個推理步驟。神經圖靈機也有一個基于位置的尋址,這允許他們學習簡單的計算機程序,如排序。基于記憶的模型通常應用于一些特定任務中,如語言建模和閱讀理解。在這些任務中,長時間保存信息應該很有用。記憶的概念是非常通用的:知識庫或表可以充當記憶,而記憶也可以根據整個輸入或它的特定部分填充。

2018 - 預訓練語言模型(這個和上面也是相似的,屬于被Transformer 統治 NLP 之前的最后一波 LSTM 時代的輝煌,本質還是LSTM,可完全忽略)

預訓練的詞嵌入與上下文無關,僅用于初始化模型中的第一層。一系列監督型任務被用于神經網絡的預訓練。相反,語言模型只需要無標簽的文本;因此,訓練可以擴展到數十億個tokens, new domains, new languages。預訓練語言模型于 2015 年被首次提出(Dai & Le,2015);直到最近,它們才被證明在各種任務中效果還是不錯的。語言模型嵌入可以作為目標模型中的特征(Peters等,2018),或者使用語言模型對目標任務數據進行微調(Ramachandranden等,2017; Howard & Ruder,2018)。添加語言模型嵌入可以在許多不同的任務中提供比最先進的技術更大的改進,如下面的圖所示。

? ? ? ? ? ? ? ? ? ??

預訓練的語言模型已經被證明可以用更少的數據進行學習。由于語言模型只需要無標記的數據,因此對于標記數據稀缺的低資源語言尤其有用。

其他里程碑事件
其他一些技術發展沒有上面提到的那樣流行,但仍然有廣泛的影響。

基于字符的表示
在字符上使用 CNN 或 LSTM 以獲得基于字符的詞表示的做法現在相當普遍,特別是對于形態信息重要或有許多未知單詞的豐富的語言和任務,效果更加明顯。據我所知,序列標簽使用基于字符的表示(Lample 等人,2016;普蘭克等人,2016),可以減輕在計算成本增加的情況下必須處理固定詞匯表的需要,并支持完全基于字符的 NMT (Ling 等人, 2016;Lee 等人,2017)。

對抗學習
對抗學習方法已經在 ML 領域掀起了風暴,在 NLP 中也有不同形式的應用。對抗性的例子越來越被廣泛使用,它不僅是作為一種工具來探究模型和理解它們的失敗案例,而且也使自身更加魯棒(Jia & Liang, 2017)。(虛擬)對抗性訓練,即最壞情況擾動(Miyato 等人,2017)和領域對抗性損失(Ganin 等人, 2016;Kim 等人,2017),同樣可以使模型更加魯棒。生成對抗網絡(GANs)對于自然語言生成還不是很有效(Semeniuta 等人, 2018),但在匹配分布時很有用(Conneau 等人, 2018)。

強化學習
強化學習已被證明對具有時間依賴性的任務有效,例如在訓練期間選擇數據(Fang 等人, 2017;Wu 等人, 2018)和建模對話(Liu 等人, 2018)。RL 對于直接優化不可微的末端度量(如 ROUGE 或 BLEU)也有效,反而在匯總中優化替代損失(如交叉熵)(Paulus 等人, 2018;Celikyilmaz 等人,2018)和機器翻譯場景效果就不明顯了(Ranzato 等人,2016)。類似地,逆向強化學習在過于復雜而無法指定數據的情況下也很有用,比看圖說話任務(Wang 等人, 2018)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67589.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS 背景與邊框:從基礎到高級應用

CSS 背景與邊框:從基礎到高級應用 1. CSS 背景樣式1.1 背景顏色示例代碼:設置背景顏色 1.2 背景圖像示例代碼:設置背景圖像 1.3 控制背景平鋪行為示例代碼:控制背景平鋪 1.4 調整背景圖像大小示例代碼:調整背景圖像大小…

HarmonyOS簡介:應用開發的機遇、挑戰和趨勢

問題 更多的智能設備并沒有帶來更好的全場景體驗 連接步驟復雜數據難以互通生態無法共享能力難以協同 主要挑戰 針對不同設備上的不同操作系統,重復開發,維護多套版本 多種語言棧,對人員技能要求高 多種開發框架,不同的編程…

【Linux】列出所有連接的 WiFi 網絡的密碼

【Linux】列出所有連接的 WiFi 網絡的密碼 終端輸入 sudo grep psk /etc/NetworkManager/system-connections/*會列出所有連接過 Wifi 的信息,格式類似 /etc/NetworkManager/system-connections/AAAAA.nmconnection:pskBBBBBAAAAA 是 SSID,BBBBB 是對…

如何使用tushare pro獲取股票數據——附爬蟲代碼以及tushare積分獲取方式

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、pandas是什么?二、使用步驟 1.引入庫2.讀入數據 總結 一、Tushare 介紹 Tushare 是一個提供中國股市數據的API接口服務,它允許用戶…

觀察者模式和訂閱發布模式的關系

有人把觀察者模式等同于發布訂閱模式,也有人認為這兩種模式存在差異,本質上就是調度的方法不同。 發布訂閱模式: 觀察者模式: 相比較,發布訂閱將發布者和觀察者之間解耦。(發布訂閱有調度中心處理)

linux 環境安裝 dlib 的 gpu 版本

默認使用 pip 安裝的 dlib 是不使用 gpu 的 在國內社區用百度查如何安裝 gpu 版本的 dlib 感覺信息都不太對,都是說要源碼編譯還有點復雜 還需要自己安裝 cuda 相關的包啥的,看著就頭大 于是想到這個因該 conda 自己就支持了吧,然后查了一下…

【HarmonyOS之旅】基于ArkTS開發(三) -> 兼容JS的類Web開發(二)

目錄 1 -> HML語法 1.1 -> 頁面結構 1.2 -> 數據綁定 1.3 -> 普通事件綁定 1.4 -> 冒泡事件綁定5 1.5 -> 捕獲事件綁定5 1.6 -> 列表渲染 1.7 -> 條件渲染 1.8 -> 邏輯控制塊 1.9 -> 模板引用 2 -> CSS語法 2.1 -> 尺寸單位 …

三路排序算法

三路排序算法 引言 排序算法是計算機科學中基礎且重要的算法之一。在數據分析和處理中,排序算法的效率直接影響著程序的執行速度和系統的穩定性。本文將深入探討三路排序算法,包括其原理、實現和應用場景。 一、三路排序算法的原理 三路排序算法是一…

Python的那些事第五篇:數據結構的藝術與應用

新月人物傳記:人物傳記之新月篇-CSDN博客 目錄 一、列表(List):動態的容器 二、元組(Tuple):不可變的序列 三、字典(Dict):鍵值對的集合 四、集合&#xf…

【AI】DeepSeek 概念/影響/使用/部署

在大年三十那天,不知道你是否留意到,“deepseek”這個詞出現在了各大熱搜榜單上。這引起了我的關注,出于學習的興趣,我深入研究了一番,才有了這篇文章的誕生。 概念 那么,什么是DeepSeek?首先百…

MapReduce簡單應用(一)——WordCount

目錄 1. 執行過程1.1 分割1.2 Map1.3 Combine1.4 Reduce 2. 代碼和結果2.1 pom.xml中依賴配置2.2 工具類util2.3 WordCount2.4 結果 參考 1. 執行過程 假設WordCount的兩個輸入文本text1.txt和text2.txt如下。 Hello World Bye WorldHello Hadoop Bye Hadoop1.1 分割 將每個文…

Dest1ny漏洞庫:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好,今天是Dest1ny漏洞庫的專題!! 會時不時發送新的漏洞資訊!! 大家多多關注,多多點贊!!! 0x01 產品簡介 用友U8 Cloud是用友推出的新一代云ERP,主要聚…

使用where子句篩選記錄

默認情況下,SearchCursor將返回一個表或要素類的所有行.然而在很多情況下,常常需要某些條件來限制返回行數. 操作方法: 1.打開IDLE,加載先前編寫的SearchCursor.py腳本 2.添加where子句,更新SearchCursor()函數,查找記錄中有<>文本的<>字段 with arcpy.da.Searc…

使用國內鏡像加速器解決 Docker Hub 拉取鏡像慢或被屏蔽的問題

一、問題背景 Docker Hub 是 Docker 默認的鏡像倉庫&#xff0c;但由于網絡限制&#xff0c;國內用戶直接拉取鏡像可能面臨以下問題&#xff1a; 下載速度極慢&#xff08;尤其是大鏡像&#xff09;。連接超時或完全被屏蔽&#xff08;部分網絡環境&#xff09;。依賴國外源的…

AI大模型開發原理篇-4:神經概率語言模型NPLM

神經概率語言模型&#xff08;NPLM&#xff09;概述 神經概率語言模型&#xff08;Neural Probabilistic Language Model, NPLM&#xff09; 是一種基于神經網絡的語言建模方法&#xff0c;它將傳統的語言模型和神經網絡結合在一起&#xff0c;能夠更好地捕捉語言中的復雜規律…

2.1.2 Bayer陣列與去馬賽克

文章目錄 Bayer陣列去馬賽克方法 Bayer陣列 由于傳感器只能感受到光的強度&#xff0c;而無法感知顏色&#xff0c;所以需要用紅、綠、藍顏色的濾光片將光中的R、G、B亮度濾出&#xff0c;再通過R、G、B的組合得到各種色彩。Bayer陣列是使用一個傳感器獲得彩色圖像的方法&#…

紅黑樹的學習

紅黑樹的概念 紅黑樹&#xff0c;是一種二叉搜索樹&#xff0c;但在每個結點上增加一個存儲位表示結點的顏色&#xff0c;可以是Red或 Black。 通過對任何一條從根到葉子的路徑上各個結點著色方式的限制&#xff0c;紅黑樹確保沒有一條路徑會比其他路徑長出倆倍&#xff0c;因…

2025年01月31日Github流行趨勢

項目名稱&#xff1a;Qwen2.5項目地址url&#xff1a;https://github.com/QwenLM/Qwen2.5項目語言&#xff1a;Shell歷史star數&#xff1a;13199今日star數&#xff1a;459項目維護者&#xff1a;jklj077, JustinLin610, bug-orz, huybery, JianxinMa項目簡介&#xff1a;Qwen…

Java基礎面試題總結(題目來源JavaGuide)

問題1&#xff1a;Java 中有哪 8 種基本數據類型&#xff1f;它們的默認值和占用的空間大小知道不&#xff1f; 說說這 8 種基本數據類型對 應的包裝類型。 在 Java 中&#xff0c;有 8 種基本數據類型&#xff08;Primitive Types&#xff09;&#xff1a; 基本數據類型關鍵…

人工智能|基本概念|人工智能相關重要概念---AI定義以及模型相關知識

一、 前言&#xff1a; 最近deepseek&#xff08;深度求索&#xff09;公司的開源自然語言處理模型非常火爆。 本人很早就對人工智能比較感興趣&#xff0c;但由于種種原因沒有過多的深入此領域&#xff0c;僅僅是做了一點初步的了解&#xff0c;借著這個deepseek&#xff0…