Bag of Word

預處理:

文章看成句子列表。句子看成辭彙列表。

統計所有的辭彙,構成詞典。設詞典長度為N

有了詞典之後,一個句子就是一個向量,向量中的每一項是辭彙在詞典中的索引。

把句子切成等長的,這需要先統計一下句子的長度分布,選擇一個合適的長度m。然後,把所有句子中超長部分切掉。

這樣,就可以把一個句子向量轉換為一個m*N的矩陣。矩陣的每一行是一個one-hot向量。

對這個矩陣按列求平均值,形成一個1*N的向量。(歸一化的詞頻向量)

這個向量作為輸入X。(1*N)

用此向量做句子分類,使用一個logistic模型:

y = A*X + b

pred = sigmoid(y)

target 是0/1

用pred和target的交叉熵做損失函數。

通過梯度下降演算法訓練A(5000*1),b(1*1)。

效果:

推薦閱讀:

第三章 自然語言理解的技術分類及比較
為何讀不懂你的那個TA
CRF 小結
SQLnet 代碼閱讀筆記
AI+互聯網金融--入職半年總結

TAG:自然語言處理 |