1.1 分詞的概念(分詞的正向最大、逆向最大、雙向最大匹配法);
所謂詞典正向最大匹配就是將一段字串進行分隔,其中分隔 的長度有限制,然後將分隔的子字串與字典中的詞進行匹配,如果匹配成功則進行下一輪匹配,直到所有字串處理完畢,否則將子字串從末尾去除乙個字,再進行匹配,如此反覆。逆向匹配與此類似。
正向最大匹配法和逆向最大匹配法,都有其侷限性,因此有人又提出了雙向最大匹配法,雙向最大匹配法。即,兩種演算法都切一遍,然後根據大顆粒度詞越多越好,非詞典詞和單字詞越少越好的原則,選取其中一種分詞結果輸出。
如:「我們在野生動物園玩」,取最大匹配數7
正向最大匹配法,最終切分結果為:「我們/在野/生動/物/園/玩」,其中,兩字詞3個,單字字典詞為2,非詞典詞為1。
逆向最大匹配法,最終切分結果為:「我們/在/野生動物園/玩」,其中,五字詞1個,兩字詞1個,單字字典詞為2,非詞典詞為0。
非字典詞:正向(1)>逆向(0)(越少越好)
單字字典詞:正向(2)=逆向(2)(越少越好)
總詞數:正向(6)>逆向(4)(越少越好)
因此最終輸出為逆向結果。
1.2 詞、字元頻率統計;(可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫)
def statistic_top_word(word_list,top=100):
#統計每個單詞出現的次數,別將結果轉化為鍵值對(即字典)
result= dict(counter(word_list))
print(result)
#sorted對可迭代物件進行排序
#items()方法將字典的元素轉化為了元組,而這裡key引數對應的lambda表示式的意思則是選取元組中的第二個元素作為比較引數
#排序厚的結果是乙個列表,列表中的每個元素是乙個將原字典中的鍵值對轉化為的元祖
2.1 語言模型中unigram、bigram、trigram的概念;
2.2 unigram、bigram頻率統計;(可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫)
語言模型分為統計語言模型和神經網路語言模型。n-gram屬於統計語言模型。簡單 地說,語言模型就是用來計算乙個句子的概率的模型。一元語言模型中,我們的句子概 率定義為:
p(s)=p(w1)*p(w2)p(w3)…*p(wn) ,在這裡,這個式子成立的條件是有乙個假設,就是條件無關假設,我們認為每個詞都是條件無關的。
那好,剛剛說了語言模型是得到乙個句子的概率,此時我們句子的概率計算公式已經有了,那麼如何估計 p(w1)*p(w2)p(w3)…*p(wn) 這些值呢?
首先介紹一下,這裡的引數種類是一種 p(wn) ,但是引數例項有v個(v是我們的詞典大小)我們應該如何得到每個引數例項的值。用的是極大似然估計法。
步驟有:
分詞(可採用結巴分詞來進行分詞操作,其他庫也可以);去停用詞;構造詞表。
每篇文件的向量化。
詞袋模型
詞袋模型(bag of words,簡稱bow),所謂的詞袋模型是一種用機器學習演算法對文字進行建模時表示文字資料的方法。
詞袋模型假設我們不考慮文字中詞與詞之間的上下文關係,僅僅只考慮所有詞的權重。而權重與詞在文字**現的頻率有關。
與詞袋模型非常類似的乙個模型是詞集模型(set of words,簡稱sow),和詞袋模型唯一的不同是它僅僅考慮詞是否在文字**現,而不考慮詞頻。也就是乙個詞在文字在文字**現1次和多次特徵處理是一樣的。在大多數時候,我們使用詞袋模型。
向量化詞袋模型首先會進行分詞,在分詞之後,通過統計每個詞在文字**現的次數,我們就可以得到該文字基於詞的特徵,如果將各個文字樣本的這些詞與對應的詞頻放在一起,就是我們常說的向量化。向量化完畢後一般也會使用tf-idf進行特徵的權重修正,再將特徵進行標準化。 再進行一些其他的特徵工程後,就可以將資料帶入機器學習演算法進行分類聚類了。
總結下詞袋模型的三部曲:分詞(tokenizing),統計修訂詞特徵值(counting)與標準化(normalizing)。
在詞袋模型的統計詞頻這一步,我們會得到該文字中所有詞的詞頻,有了詞頻,我們就可以用詞向量表示這個文字。
from gensim import corpora, models, similarities
import jieba
sentences = ["我喜歡吃土豆","土豆是個百搭的東西","我不喜歡今天霧霾的北京"]
print('分詞後--------------')
words=
for doc in sentences:
print(words)
# 構造詞典
dic = corpora.dictionary(words)
print (dic)
print (dic.token2id)
# 語料庫
nlp 特徵提取 task2
1.1 分詞的概念 分詞的正向最大 逆向最大 雙向最大匹配法 漢語分詞難點 分詞規範 歧義切分 未登入詞識別。分詞規範 詞這個概念一直是漢語語言學界糾纏不清又揮之不去的問題,也就是說,對於詞的抽象定義 詞是什麼 和詞的具體界定 什麼是詞 迄今拿不出乙個公認的 具有權威性的詞表來。歧義切分 切分歧義是...
NLP基礎 Task2 特徵提取
基本文字處理技能 1.1 分詞的概念 分詞的正向最大 逆向最大 雙向最大匹配法 1.2 詞 字元頻率統計 可以使用python中的collections.counter模組,也可以自己尋找其他好用的庫 概念2.1 語言模型中unigram bigram trigram的概念 2.2 unigram ...
NLP實踐系列 2 特徵提取
自然語言處理中,特徵提取是十分重要的一環,而提取特徵,主要是提取單詞的特徵,比如讀音,和語義。這就涉及到了分詞的問題。分詞指的是將乙個單詞序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。現有的分詞方法可分為三大類 基於字串匹配的分詞方法 基於理解的分詞方法和基...