- 長文字的智慧型解析實戰
如何從紛繁多變、資訊量龐雜的冗長文字中獲取關鍵資訊,一直是文字領域難題。隨著深度學習的熱潮來臨,有許多新方法來到了 nlp 領域,給相關任務帶來了更多優秀成果,也給大家帶來了更多應用和想象的空間。
- 用傳統的監督學習模型對一段文文字進行分類的基本過程:
一段原始文字→(資料預處理)→處理後的文字→(特徵工程)→features→(輸入)→
→(輸出)→類別
注:特徵工程是整個機器學習過程中最要的部分。特徵決定了機器學習的上限,而機器學習演算法只是逼近這個上限。
train_set.csv:此資料集用於訓練模型,每一行對應一篇文章。文章分別在「字」和「詞」的級別上做了脫敏處理。共有四列: 第一列是文章的索引(id),第二列是文章正文在「字」級別上的表示,即字元相隔正文(article);第三列是在「詞」級別上的表示,即詞語相隔正文(word_seg);第四列是這篇文章的標註(class)。
注:每乙個數字對應乙個「字」,或「詞」,或「標點符號」。「字」的編號與「詞」的編號是獨立的!
test_set.csv:此資料用於測試。資料格式同train_set.csv,但不包含class。
- countvectorizer() #文字特徵提取
- 達觀杯智慧型文字處理競賽**
1#-*- coding: utf-8 -*-
2"""
3created on sat dec 1 17:14:12 201845
@author: administrator
6"""78
9print("
開始......")
10import
pandas as pd11#
pandas用於處理更大的資料集
12from sklearn.linear_model import
logisticregression13#
定義邏輯回歸函式
14from sklearn.feature_extraction.text import
countvectorizer15#
定義文字特徵提取
16 df_train = pd.read_csv('
./train_set.csv')
17 df_test = pd.read_csv('
./test_set.csv')
18 df_train.drop(columns=['
article
','id
'], inplace=true)19#
刪除指定列 , inplace可選引數
20 df_test.drop(columns=['
article
'],inplace=true)21#
測試資料刪除指定列article
22 vectorizer = countvectorizer(ngram_range=(1,2),min_df=3,max_df=0.9,max_features=100000)
23 vectorizer.fit(df_train['
word_seg'])
24 x_train = vectorizer.transform(df_train['
word_seg'])
25 x_test = vectorizer.transform(df_test['
word_seg'])
26 y_train = df_train['
class
']-127#
訓練一分類器28#
知識點定位:統監督學習演算法之線性邏輯回歸模型aaa
29 lg = logisticregression(c=4,dual =true)30#
c:正則化係數λ的倒數,float型別,預設為1.0。31#
必須是正浮點型數。像svm一樣,越小的數值表示越強的正則化;
32lg.fit(x_train,y_train)
33'''
根據訓練好的分型別對測試集的樣本進行**
'''34 y_test =lg.predict(x_test)
35"""
儲存**結果至本地
"""36 df_test['
class
'] = y_test.tolist()#
tolist()將陣列或者矩陣轉換成列表
37 df_test['
class
'] = df_test['
class
'] + 1
38 df_result = df_test.loc[:,['
id','
class']]
39 df_result.to_csv('
./result.csv
',index =false)
4041
print("
ok")
機器學習 高階演算法課程學習總結
作為乙個機器學習方面的小白,在閔老師課上學的兩個聚類演算法,即經典的k means聚類和基於隨機遊走的聚類演算法,是我學習到的頭兩個與機器學習相關的演算法。演算法課上,閔老師先講了簡單但是經典的k means聚類演算法,讓我們對聚類演算法有了乙個初步的理解,緊接著又花了大量的時間剖析了基於隨機遊走的...
機器學習 KNN演算法(一)
k近鄰 k nearest neighbor,k nn 1968年提出了最初的鄰近演算法 是一種基於分類和回歸的演算法 基於例項的學習 懶惰學習 演算法思想 給定測試樣本,基於某種距離度量找出訓練集中與其最靠近的k個訓練樣本,然後基於這k個鄰居的資訊來 通常,在分類任務中,可使用 投票法 即選擇這k...
機器學習演算法筆記(一)
1 容斥原理 a.容斥原理是組合數學方法,可以求解集合 復合事件的概率等。b.計算幾個集合並集的大小,先計算出所有單個集合的大小,減去所有兩個集合相交的部分,加上三個集合相交的部分,再減去四個集合相交的部分,以此類推,一直計算到所有集合相交的部分。c.概率論 事件ai i 1,n p ai 為對應事...