NLP(理論基礎)

2021-09-26 14:21:33 字數 2196 閱讀 8709

小白一枚,看了很多天的nlp,也沒看出什麼頭緒。**不**的我感覺只要用心去看,即使看不懂,一點一點的去啃,也能看個大概。最重要的是思想。

1)nltk安裝(pip install nltk)

nltk就是乙個工具包,裡面有很多語料,很多模型。可以用來分詞。

import nltk

sentence = 「hello, world"

tokens = nltk.word_tokenize(sentence)

print tokens

#['hello', 『,', 'world']

2)jieba安裝(pip install jieba)

import jieba

seg_list = jieba.cut("我來到北京清華⼤學", cut_all=true)

print "full mode:", "/ ".join(seg_list) # 全模式

seg_list = jieba.cut("我來到北京清華⼤學", cut_all=false)

print "default mode:", "/ ".join(seg_list) # 精確模式

seg_list = jieba.cut("他來到了⽹易杭研⼤廈") # 預設是精確模式

print ", ".join(seg_list)

seg_list = jieba.cut_for_search("⼩明碩⼠畢業於中國科學院計算所,後在⽇本京都⼤學深造")

# 搜尋引擎模式

print ", ".join(seg_list)

總結:中文分詞和英文分詞不同,雖然英文有空格,好分詞,但是英文分詞也會遇到一些問題(網路符號@qq.com,需要正則表達預處理,時態歸一化等)

流程:句子--->分詞--->詞性標註--->歸一化--->去除停止詞

上一步介紹了分詞,這一步開始對分詞進行編碼

思路:統計特徵詞表,對應位置為1

缺點:稀疏、沒有位置關係

bow和one-hot很相似,都不考慮位置關係。構建乙個詞表,統計每個詞出現的頻數。

ont-hot:乙個詞的向量表示

bow:一句話的向量表示

句子\詞表

weyou

hework

are103

011bow表示一句話的向量。統計每個詞出現的頻數。

tf-idf的引入,單單看某乙個詞在一句話中的頻率不足以說明問題,還需要看該詞出現句子的頻率。

舉例子:乙個文件有100個單詞,其中單詞baby出現了3次,那麼tf(baby)=3/100=0.03

所以:tf-idf(baby)=0.03*4=0.12

作用:過濾高頻詞,保留重要詞語。

1)、情感分析

第一種:基於詞表,每個詞都有對應的情感度,對於一句話只需要累加每個詞的情感度即可。

第二種:基於ml,句子和標籤,可以訓練。句子的向量表示是基於詞袋模型。

2)、文字相似度

文字相似度,只需要用詞袋模型表示句子向量,然後餘弦定理計算即可。

統計每個詞的tf-idf的值,值越大,重要度越大。

4)、文字分類

文字分類,同理也是用向量表示句子。然後ml分類。(其實情感分析也屬於簡單的文字分類問題),這裡的句子向量用到了tf-idf。

總結:句子向量表示都沒有考慮位置關係,基於詞袋模型,統計詞頻。

one-hot:(like編碼)0 1 0 0 0 0 0 0

共現矩陣:(like編碼)2 0 0 1 0 1 0 0

缺點:優化了詞與詞間的位置關係,但是存在的問題還是維度災難

svd奇異值分解,進行降維(如何降維,請檢視)

利用條件概率,判斷一句話出現的概率。搜狗輸入法**下乙個字,也可以用於分詞。

注意:容易弄混淆,n-gram完全是根據詞表計算概率來著(實戰,請檢視)。

2)、word2vec(cbow、skip-gram)

3)、bert

總結:nlp前期一直探索單詞和句子的向量表示方式。如果能很好的表示。那麼後續任務就很簡單了。

TCP IP理論基礎

一 tcp ip的分層模型 osi協議參考模型,它是基於國際標準化組織 iso 的建議發展起來的,它分為7個層次 應用層 表示層 會話層 傳輸層 網路層 資料鏈路層及物理層。這個7層的協議模型雖然規定得非常細緻和完善,但在實際中卻得不到廣泛的應用,其重要的原因之一就在於它過於複雜。但它仍是此後很多協...

TCP IP理論基礎

linux中網路棧的介紹一般分為四層的internet模型。分別為應用層 傳輸層 網際層和網路介面。tcp ip實際上是乙個協同工作的通訊家族,為網路資料通訊提供通路。為方便將tcp ip協議族大致上分為三部分 1.internet協議 ip 這一部分也稱為網路層。主要包括ip icmp和arp。其...

SCM理論基礎

在乙個大型的專案中,會有很多人員,比如說專案管理者 開發人員等,人多的情況下,很可能就會在及時溝通 管理等方面出現問題,具體可以總結為 這些問題的存在,不僅會使我們的開發效率很低,做出來的產品質量也會受影響。有了scm,就很好的解決了這些問題。scmsoftwareconfiguration man...