07.C2W2.Part-of-Speech (POS) Tagging and Hidden Markov Models

往期文章請點這里

目錄

  • Overview
  • Part of Speech Tagging
  • Markov Chains
  • Markov Chains and POS Tags
    • POS tags as States
    • Transition probabilities
    • The transition matrix
    • Initial probabilities
  • Hidden Markov Models
    • Emission probabilities
    • Summary
  • Calculating Probabilities
    • Transition probabilities
    • The corpus
    • Populating the Transition Matrix
    • Smoothing
  • Populating the Emission Matrix
  • The Viterbi Algorithm
    • Viterbi algorithm - a graph algorithm
    • Viterbi algorithm Steps
  • Viterbi: Initialization
  • Viterbi: Forward Pass
  • Viterbi: Backward Pass
    • Implementation notes

往期文章請點這里

Overview

●What is part of speech tagging?
●Markov chains
●Hidden Markov models
●Viterbi algorithm
●Example

Part of Speech Tagging

詞性標注(Part of Speech Tagging),簡稱POS Tagging,是自然語言處理(NLP)中的一個任務,它涉及到識別文本中每個單詞的詞性類別。詞性,或稱詞類,是指一個詞在句子中的語法功能,如名詞、動詞、形容詞、副詞等。
詞性標注對于理解句子結構和語義非常重要,它可以幫助計算機更好地解析語言,從而支持諸如機器翻譯、信息檢索、文本摘要、情感分析等高級語言處理任務。例如,在句子 “The cat sat on the mat” 中,詞性標注可能會標記 “The” 為定冠詞(DT),“cat” 為名詞(Noun),“sat” 為動詞(Verb),“on” 為介詞(Preposition),“the” 為定冠詞(DT),“mat” 為名詞(Noun)。通過這種方式,詞性標注為進一步的語言分析提供了基礎。
例子:
在這里插入圖片描述
關于詞性標簽縮寫可參照:

Lexical TermTagExample Words
NounNNsomething, nothing
VerbVBlearn, study
DeterminerDTthe, a
Wh-adverbWRBwhy, where
AdjectiveJJbig, happy
AdverbRBquickly, very
PronounPRPhe, she, it
PrepositionINon, at, of
ConjunctionCCand, but, or
PossessivePOS's, his, her
ArticleARTthe, a, an
NumeralCDone, two, three
ExclamationUHoh, wow
AuxiliaryVBZis, are, has
ModalMDcan, could, will
ComparativeJJRbigger, faster
SuperlativeJJSbiggest, fastest
GerundVBGrunning, studying
InfinitiveVBNto run, to study
ParticipleVBDran, studied
InterjectionINTJhello, goodbye

請注意,詞性標簽的命名可能因不同的詞性標注系統而有所不同,但上述表格提供了一些常見的詞性標簽和示例。
詞性標簽的應用
在這里插入圖片描述
命名實體識別(Named Entity Recognition, NER):命名實體識別是識別文本中的特定實體,如人名、地點、組織、日期等。詞性標注在此過程中非常有用,因為它可以幫助確定實體的邊界。例如,如果一個名詞(NN)后面跟著一個特定的詞性,如地名(例如“New York”),詞性標注可以幫助確定這個名詞是一個地點實體。

語音識別(Speech Recognition):語音識別系統將口語轉化為文本。詞性標注在此過程中有助于提高識別的準確性。由于口語中的語法結構可能不如書面語規范,詞性標注可以幫助系統理解句子結構,從而更準確地將口語轉化為正確的文本形式。

指代消解(Coreference Resolution):指代消解是確定文本中不同代詞或名詞短語指向相同實體的過程。詞性標注有助于識別和匹配可能的指代關系。例如,如果一個代詞(如“he”)出現在句子中,詞性標注可以幫助確定這個代詞的性別和數量,進而幫助系統找到它所指的名詞短語。上面的圖中,“埃菲爾鐵塔位于巴黎,它高324米”,這里可以用指代消解推斷“它”是指什么。

Markov Chains

在這里插入圖片描述
上例中,learn是動詞,在英語語法中,動詞后面會接什么詞性的單詞呢?大概率是名詞。
這個現象也稱為:Part of Speech Dependencies

在這里插入圖片描述
這里使用可視化的方式來表示單詞序列的詞性變換,這個也是馬爾科夫鏈
在這里插入圖片描述
馬爾科夫鏈可以表示為一個有向圖,圖中的節點表示模型的狀態(state),這里 Q = { q 1 , q 2 , q 3 } Q=\{q_1,q_2,q_3\} Q={q1?,q2?,q3?}

Markov Chains and POS Tags

POS tags as States

將句子看做是帶有相關詞性標注的詞序列,就可以用馬爾科夫鏈來表示這個序列:
在這里插入圖片描述

Transition probabilities

將邊加上狀態轉移(過渡)概率,可得到下圖:
在這里插入圖片描述
馬爾科夫鏈有一個非常重要的假設或者說性質,就是:下一個事件的概率僅僅取決于當前事件。例如在下圖中,下一個詞的狀態只有當前詞learn來決定,而與前面的詞無關,只需要看綠色圈圈即可。
在這里插入圖片描述

The transition matrix

可用矩陣來保存狀態轉移概率:
在這里插入圖片描述
矩陣每一行的和為1,即: ∑ j = 1 N a i j = 1 \sum_{j=1}^N a_{ij}=1 j=1N?aij?=1

Initial probabilities

對于句子的第一個詞,沒有前一個狀態來決定其狀態:
在這里插入圖片描述
我們可以引入一個初始概率 π \pi π來表示初始單詞詞性生成概率:
在這里插入圖片描述
將表格寫成矩陣的形式為:
A = [ 0.4 0.1 0.5 0.2 0.2 0.6 0.4 0.3 0.3 0.2 0.3 0.5 ] A = \begin{bmatrix} 0.4 & 0.1 &0.5\\ 0.2 & 0.2 &0.6\\ 0.4 & 0.3 &0.3\\ 0.2 & 0.3 &0.5 \end{bmatrix} A= ?0.40.20.40.2?0.10.20.30.3?0.50.60.30.5? ?

Hidden Markov Models

Hidden表示狀態是隱藏的,可將詞性標簽的狀態看做是隱藏狀態,因為它們從文本數據中不直接可觀察到。機器能觀察到的只有句子中的單詞。我們用虛線節點表示隱藏狀態,則其過渡概率可以用N+1乘N維的矩陣A表示,N是隱藏狀態的數量。
在這里插入圖片描述

Emission probabilities

發射概率指的是在給定一個特定的狀態時,觀察到某個具體輸出(或觀察值)的概率。簡單來說,它描述了在某個隱藏狀態下,某個可見事件(如單詞、聲音等)發生的可能性。例如這里在隱藏狀態VB的狀態下,生成一些詞(觀測值)的概率如下圖所示:
在這里插入圖片描述
右邊是發射概率的表格形式,發射矩陣表示詞性標簽代表的每個最終隱藏狀態到語料庫中的M個單詞的轉換概率。
同樣的,每一行的概率和為1,即: ∑ j = 1 V b i j = 1 \sum_{j=1}^V b_{ij}=1 j=1V?bij?=1
注意,圖示中三個詞在不同隱藏狀態下的生成概率都大于0,是因為詞在不同上下文中可能會有不同的詞性。
He lay on his back.
I’ll be back.
第一句back是名詞,第二句是副詞。

Summary

States:
Q = { q 1 , ? , q N } Q = \{q_1, \cdots, q_N\} Q={q1?,?,qN?}
Transition matrix:
A = [ a 1 , 1 ? a 1 , N 0 ? ? a N + 1 , 1 ? a N + 1 , N ] A=\begin{bmatrix} a_{1,1} & \cdots & a_{1,N} \\ 0 & \ddots & \vdots \\ a_{N+1,1} & \cdots & a_{N+1,N} \\ \end{bmatrix} A= ?a1,1?0aN+1,1??????a1,N??aN+1,N?? ?
Emission matrix:
B = [ b 1 , 1 ? b 1 V ? ? ? b N 1 ? a N V ] B=\begin{bmatrix} b_{1,1} & \cdots & b_{1V} \\ \vdots & \ddots & \vdots \\ b_{N1} & \cdots & a_{NV} \\ \end{bmatrix} B= ?b1,1??bN1??????b1V??aNV?? ?

Calculating Probabilities

Transition probabilities

根據實例計算轉移概率,假設語料庫如下:
在這里插入圖片描述
我們用顏色來表示不同的詞性標簽,從詞庫中可以統計得到,例如藍色到紫色出現了兩次,語料庫中以藍色開頭的標簽數量是3:
在這里插入圖片描述
transition probability:
在這里插入圖片描述
要計算馬爾科夫模型的所有轉移概率,必須統計語料庫中所有標簽對出現次數。
1.Count occurrences of tag pairs
C ( t i ? 1 , t i ) C(t_{i-1},t_i) C(ti?1?,ti?)
2.Calculate probabilities using the counts
P ( t i ∣ t i ? 1 ) = C ( t i ? 1 , t i ) ∑ j = 1 N C ( t i ? 1 , t j ) P(t_i | t_{i-1}) = \frac{C(t_{i-1}, t_i)}{\sum_{j=1}^{N} C(t_{i-1}, t_j)} P(ti?ti?1?)=j=1N?C(ti?1?,tj?)C(ti?1?,ti?)?

The corpus

假設有以下語料庫:
In a Station of the Metro
The apparition of these faces in the crowd :
Petals on a wet , black bough .
語料庫中每一行是一個單獨的句子。先在句首添加起始標記,以便計算初始概率:
在這里插入圖片描述

然后將所有字母轉成小寫字母,這里沒有去掉標點,因為是一個toy model
在這里插入圖片描述

Populating the Transition Matrix

先準備好空表:
在這里插入圖片描述
先用與相關標記的計數來填充矩陣的第一列(矩陣的行代表當前狀態,列代表下一個狀態,值代表從當前狀態轉移到下一個狀態的轉移概率),先用不同顏色來標記狀態:
在這里插入圖片描述
對于第一列,需要計算下面標記組合出現的次數

在這里插入圖片描述
得到以下結果:
在這里插入圖片描述
按這個方式可以填充其他部分,這里有一個trick,注意到語料庫中沒有動詞VB,所以,矩陣中VB所在的行列均為0:
在這里插入圖片描述
最后結果如下(這里O-O,在語料中出現了八次,注意最后一句加上標點,有4次):
在這里插入圖片描述
接下來計算轉移概率:
在這里插入圖片描述
但是VB這行會出現分母為0的情況。

Smoothing

為解決這個問題,需要加上一個很小的值 ? \epsilon ?,最后公式變成:
P ( t i ∣ t i ? 1 ) = C ( t i ? 1 , t i ) + ? ∑ j = 1 N C ( t i ? 1 , t j ) + N × ? P(t_i | t_{i-1}) = \frac{C(t_{i-1}, t_i)+\epsilon}{\sum_{j=1}^{N} C(t_{i-1}, t_j)+N\times \epsilon} P(ti?ti?1?)=j=1N?C(ti?1?,tj?)+N×?C(ti?1?,ti?)+??
分母加上一項,以保證概率總和為1
在這里插入圖片描述
這里如果用 ? = 0.001 \epsilon=0.001 ?=0.001,這轉移矩陣就得到:
在這里插入圖片描述
平滑之后沒有為0的概率,VB的轉移概率是相等的。
實際操作中,第一行不需要加 ? \epsilon ?,加上會使得標點符號也會有概率出現在句首,這個是不科學的。

Populating the Emission Matrix

上面的轉移矩陣只考慮了詞性的轉化,這里需要將具體的詞也考慮進來,例如:
在這里插入圖片描述
我們希望計算一個詞性標簽與特定詞語的共現次數,例如:
在這里插入圖片描述

在這里插入圖片描述
進一步用復雜一點例子:
在這里插入圖片描述
以第一列為例,這里不是計算標簽對的數量,而是計算一個詞與特定標簽相關聯的次數:
在這里插入圖片描述
例如 C ( N N , i n ) = 0 C(NN,in)=0 C(NN,in)=0表示在語料庫中in與Noun標簽并無關聯,同理in與動詞也無關系,在其他標簽類別中出現了兩次:
在這里插入圖片描述
最后的概率由以下公式計算:
P ( w i ∣ t i ) = C ( t i , w i ) + ? ∑ j = 1 N C ( t i , w j ) + N ? ? = C ( t i , w i ) + ? C ( t i ) + N ? ? P(w_i | t_i) = \frac{C(t_i, w_i) + \epsilon}{\sum_{j=1}^{N} C(t_i, w_j) + N \cdot \epsilon}\\ =\cfrac{C(t_i, w_i) + \epsilon}{C(t_i)+ N \cdot \epsilon} P(wi?ti?)=j=1N?C(ti?,wj?)+N??C(ti?,wi?)+??=C(ti?)+N??C(ti?,wi?)+??
其中,大與字母N代表標簽數,大寫字母V代表我們的詞匯表大小。

The Viterbi Algorithm

Viterbi algorithm - a graph algorithm

維特比算法是一個圖算法,下面以句子:I love to learn為例,來演示其原理。在這里插入圖片描述

這里綠色顯示的轉移概率是0.3,橙色顯示的發射概率為0.5
在這里插入圖片描述
那么第一個單詞為I的概率實際是聯合概率:0.5×0.3=0.15
在這里插入圖片描述
接下來觀察到love有兩種可能,分別是O→NN和O→VB在這里插入圖片描述
由于VB對應生成love的發射概率要大,因此選擇O→VB:
在這里插入圖片描述
這I后面接love的概率為:0.5×0.5=0.25
在這里插入圖片描述
由于love后面的to只會在O狀態下出現:
在這里插入圖片描述
love后面接to的概率為:0.2×0.4=0.08
最后是learn,只會在VB狀態出現:
在這里插入圖片描述
其出現概率是0.5×0.2=0.1
在這里插入圖片描述
最后可得到所有單詞序列對應的隱藏狀態概率為:
0.15 ? 0.25 ? 0.08 ? 0.1 = 0.0003 0.15*0.25*0.08*0.1=0.0003 0.15?0.25?0.08?0.1=0.0003

Viterbi algorithm Steps

一共三步:
1.Initialization step
2.Forward pass
3.Backward pass

這里要用到兩個輔助矩陣:
在這里插入圖片描述
矩陣C保存中間的最優概率,矩陣D保存訪問過的狀態的索引。
下面詳細講解三個步驟。

Viterbi: Initialization

初始化步驟是填充輔助矩陣C和D第一列的:
在這里插入圖片描述
填充結果為:
在這里插入圖片描述
填充公式為:
c i , 1 = π i ? b i , c i n d e x ( w 1 ) = a 1 , i ? b i , c i n d e x ( w 1 ) c_{i,1}=\pi_i*b_{i,cindex(w_1)}\\ =a_{1,i}*b_{i,cindex(w_1)} ci,1?=πi??bi,cindex(w1?)?=a1,i??bi,cindex(w1?)?
C矩陣中的第一列表示從圖中的起始狀態 π \pi π到第一個標簽 t i t_i ti?和單詞 w 1 w_1 w1?的轉換概率,示例圖中有三個隱藏狀態。
從公式中可以看到,第一列單詞 w 1 w_1 w1?出現的概率是初始化概率乘以狀態發射概率,初始化概率從矩陣A中可以得到,發射概率從矩陣B中可以得到。
對于矩陣D:
在這里插入圖片描述
第一列直接設置為0即可:
d i , 1 = 0 d_{i,1}=0 di,1?=0
因為沒有遍歷任何之前的詞性標簽。

Viterbi: Forward Pass

前向傳遞是填充矩陣C和D的第二步。
在這里插入圖片描述
對于矩陣C,使用的公式為:
c i , j = max ? k c k , j ? 1 ? a k , i ? b i , c i n d e x ( w j ) c_{i,j}=\underset{k}{\max}c_{k,j-1}*a_{k,i}*b_{i,cindex(w_j)} ci,j?=kmax?ck,j?1??ak,i??bi,cindex(wj?)?
例如要計算 c 1 , 2 c_{1,2} c1,2?
在這里插入圖片描述

c 1 , 2 = max ? k c k , 1 ? a k , 1 ? b i , c i n d e x ( w 2 ) c_{1,2}=\underset{k}{\max}c_{k,1}*a_{k,1}*b_{i,cindex(w_2)} c1,2?=kmax?ck,1??ak,1??bi,cindex(w2?)?
b i , c i n d e x ( w 2 ) b_{i,cindex(w_2)} bi,cindex(w2?)?是狀態 t 1 t_1 t1? w 2 w_2 w2?的發射概率
a k , 1 a_{k,1} ak,1?是狀態 t k t_k tk?到當前狀態 t 1 t_1 t1?的轉移概率
t k 1 t_{k1} tk1?表示已經遍歷的前一個路徑的概率
這里選擇k使得整個公式最大化
在這里插入圖片描述
對于矩陣D:
在這里插入圖片描述
使用以下公式:
d i , j = arg?max ? k c k , 1 ? a k , 1 ? b i , c i n d e x ( w 2 ) d_{i,j}=\underset{k}{\argmax}c_{k,1}*a_{k,1}*b_{i,cindex(w_2)} di,j?=kargmax?ck,1??ak,1??bi,cindex(w2?)?

Viterbi: Backward Pass

到這一步,C和D已經填充完畢
現在需要從D中提取路徑,它代表了最可能生成我們給定的詞序列的隱藏狀態的序列(從第一個到第K個)
首先,在矩陣C的最后一列中計算具有最高概率的條目 c i , K c_{i,K} ci,K?的系引。這個索引處的概率是最可能的隱藏狀態序列生成給定詞序列的概率。
s = arg?max ? i c i , K s=\underset{i}{\argmax}c_{i,K} s=iargmax?ci,K?
在這里插入圖片描述
例如:這里最高概率的條目是第一個,概率為0.01,也就是對應的 c 1 , 5 c_{1,5} c1,5?
這個索引表示你觀察到單詞 w 5 w_5 w5?時遍歷的最后一個隱藏狀態。也就是生成 w 5 w_5 w5?最有可能狀態是 t 1 t_1 t1?詞性標簽,將 t 1 t_1 t1?加到序列的最后:
在這里插入圖片描述
然后根據D中的值查找矩陣D中的下一個索引:

在這里插入圖片描述

Implementation notes

1.In Python index starts with 0!
2.Use log probabilities,防止概率值太小相乘導致下溢
c i , j = max ? k c k , j ? 1 ? a k , i ? b i , c i n d e x ( w j ) c_{i,j}=\underset{k}{\max}c_{k,j-1}*a_{k,i}*b_{i,cindex(w_j)} ci,j?=kmax?ck,j?1??ak,i??bi,cindex(wj?)?
取log后:
log ? c i , j = max ? k log ? ( c k , j ? 1 ) + log ? ( a k , i ) + log ? ( b i , c i n d e x ( w j ) ) \log c_{i,j}=\underset{k}{\max}\log( c_{k,j-1})+\log( a_{k,i})+\log (b_{i,cindex(w_j)}) logci,j?=kmax?log(ck,j?1?)+log(ak,i?)+log(bi,cindex(wj?)?)

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

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

相關文章

全志A527 T527 設置左右分屏修改為單屏幕,應用分屏改為單屏

1.前言 android13中,A527的系統設置變成,左邊是一級菜單,右側是二級菜單, 這樣跟我們以前android7/8/9的布局是不一樣的,我們需要將它修改為一級菜單,點進去才是二級菜單這種。 效果如下 2.系統設置實現分析 它這里使用的是google新出的embedding activity, 相關的知…

LabVIEW中自定義Ring控件的圖標

在LabVIEW中,自定義Ring控件的圖標可以讓用戶界面更加直觀和友好。以下是如何在LabVIEW中自定義Ring控件的圖標的詳細步驟: 步驟1:創建或獲取圖標 首先,你需要創建或獲取你想要在Ring控件中使用的圖標。你可以使用圖像編輯軟件&…

Docker拉取失敗,利用github將鏡像推送到阿里云

背景 由于近期國內docker鏡像地址失效(2024年6月份開始),導致pull docker 鏡像總是超時。 涉及到的網址和工具 https://github.com/tech-shrimp/docker_image_pusherhttps://hub.docker.com/search阿里云 GITHUB配置 fork https://githu…

【C++初階】與C相比,C++多出來簡單又好用的語法(命名空間、輸入輸出、缺省參數、函數重載)

文章目錄 一、 C的第一個代碼1、C兼容C語言2、hello world 如何用C語法來寫 二、命名空間namespace1、為什么有命名空間2、定義3、命名空間的使用4、注意事項 三、輸入輸出四、缺省參數1、定義2、注意 五、函數重載1、定義2、使用 六、謝謝觀看! 一、 C的第一個代碼…

go mod 依賴管理補充2

依賴包的版本問題,別的開發語言有沒有類似的問題?是怎么解決的? 舉例:java java的依賴包的版本問題,通過Maven模塊來操作,可以指定依賴包版本號,如下: go.mod 文件 go.mod文件是G…

怎么用 matlab 設計滯后-超前串聯校正網絡

🏆本文收錄于「Bug調優」專欄,主要記錄項目實戰過程中的Bug之前因后果及提供真實有效的解決方案,希望能夠助你一臂之力,幫你早日登頂實現財富自由🚀;同時,歡迎大家關注&&收藏&&…

Java多態的理解

目錄 一、什么是多態 二、多態實現的條件 三、實例分析 四、多態應用之一(多態數組) 五、多態參數 一、什么是多態 在Java中,多態是面向對象編程中的一個重要概念,它允許不同類型的對象對同一方法進行不同的實現。具體來說&…

Kaggle網站免費算力使用,深度學習模型訓練

聲明: 本文主要內容為:kaggle網站數據集上傳,訓練模型下載、模型部署、提交后臺運行等教程。 1、賬號注冊 此步驟本文略過,如有需要可以參考其他文章。 2、上傳資源 不論是上傳訓練好的模型進行預測,還是訓練用的…

如何提升美國Facebook直播的整體體驗?

Facebook作為全球最大的社交媒體平臺之一,提供了直播功能,用戶可以實時分享生活、見解和創意。許多商家通過美國Facebook直播來獲取更多客戶,但直播時可能會遇到網絡卡頓的問題,導致觀看體驗不佳。本文將探討如何解決這個問題&…

文華財經盤立方期貨通鱷魚指標公式均線交易策略源碼

文華財經盤立方期貨通鱷魚指標公式均線交易策略源碼: 新建主圖幅圖類型指標都可以! VAR1:(HL)/2; 唇:REF(SMA(VAR1,5,1),3),COLORGREEN; 齒:REF(SMA(VAR1,8,1),5),COLORRED; 顎:REF(SMA(VAR1,13,1),8),COLORBLUE;

C++規范

一、VS工具集列表: Visual Studio 2008:v90 Visual Studio 2010:v100 Visual Studio 2012:v110 Visual Studio 2013:v120 Visual Studio 2015:v140 (v140_xp) Visual Studio 2017&a…

FinClip SDK 入駐鴻蒙生態伙伴市場,激發鴻蒙應用創新活力

華為近期宣布開放“鴻蒙生態伙伴SDK市場”,甄選各類優質、安全的SDK加入聚合平臺,致力于幫助各行業開發者輕松、高效地打造鴻蒙原生應用。 目前,已有18個領域、超過350個SDK適配HarmonyOS NEXT版本,并有超過120個SDK完成上架發布…

【Linux Git入門】Git的介紹

文章目錄 前言git簡介git是什么git的作用為什么要學習git安裝git總結前言 在現代軟件開發中,版本控制系統已經成為了不可或缺的工具。其中,Git是最受歡迎的版本控制系統之一。Git是由Linux的創造者Linus Torvalds在2005年創建的,用于管理Linux內核的開發。Git是一個分布式版…

const 修飾不同內容區分

1.修飾局部變量 const int a 1;int const a 1; 這兩種是一樣的 注意: const int b; 該情況下編譯器會報錯:常量變量"b”需要初始值設定項 將一個變量沒有賦初始值直接const修飾后,在以后時無法更改內容的。 2.修飾常量字符串 a.…

智享AI自動直播系統:打造獨一無二的屬于你自己的AI主播

隨著科技的迅猛發展,人工智能(AI)技術已經滲透到了我們生活的方方面面。其中,AI自動直播系統作為新興的技術應用,正逐漸改變著傳統直播行業的格局。本文將深入探討智享AI自動直播系統的優勢,以及它如何幫助…

哪些算法會使用最大似然估計

邏輯回歸(Logistic Regression): 邏輯回歸通過最大化似然函數來估計模型參數,使得觀察到的數據最有可能由模型生成。 樸素貝葉斯分類器(Naive Bayes Classifier): 樸素貝葉斯使用貝葉斯定理&…

Laravel - laravel-websockets 開發詳解

1.我laravel-websockets 的開發環境 Laravel 9.0Laravel WebSockets (最新版)Laravel Vite 2. 安裝服務器端包 beyondcode/laravel-websockets 運行以下命令安裝laravel-websockets composer require beyondcode/laravel-websockets 安裝完后&#…

【Linux命令入門】查找文件

文章目錄 前言whichlocatewhereisfindgrep總結前言 在日常的Linux使用中,我們經常需要查找文件,無論是為了找到某個特定的配置文件,還是為了找到某個丟失的文檔。Linux提供了一些強大的命令行工具,可以幫助我們在系統中查找文件。這些工具包括find,locate,which,wherei…

「樹莓派入門」樹莓派進階02-傳感器應用與交通燈項目

傳感器是樹莓派實現智能化的關鍵。通過本教程,你可以開始嘗試使用傳感器來增強樹莓派的功能。 一、傳感器在樹莓派中的作用 傳感器是樹莓派與外界環境交互的重要工具。它們可以檢測各種物理量,如光、聲音、溫度等,并將這些物理量轉換為電信號,供樹莓派讀取和處理。 二、數…

C++ Linux調試(無IDE)

跨平臺IDE編譯調試C很方便,如QTCreate 、VSCode、Eclipse等,但是如果只能使用Shell控制臺呢,gdb調試的優勢就很明顯了,在沒有IDE的情況下,這個方式最有效。因為上手不是很難,特此整理 參考鏈接 目錄 1、G…