獲「科技部人文社會科學研究中心」補助 AI in Finance: 金融與人工智慧成果分享平台

課程

2020/07/30
文字探勘
one-hot Encoding

在上一節萃取出文本關鍵字,但是關鍵字還需要轉換為可被分析的資料,本節會進行資料轉換的任務。一般類別型變數,像是:性別組別等等,如果為性別變數,一般會設男生為1,女生為0這種轉換方式。
在本節關鍵字轉換的方法為,利用上一節選出文本中前N名關鍵字,本節再個別與今日新聞配對,有出現在今日新聞設為1,反之設為0。
程式碼自定義為one_hot函式,最後第8節會利用這個函式將結果跑出。

df_zeros = np.zeros((len(dataframe),), dtype=int)
利用NumPy建立陣列
np.zeros((len(dataframe),), dtype=int)建立0元素的長度為dataframe的陣列,指定資料型態為整數,如下圖所示

tempdic = pd.DataFrame({'temp':df_zeros}, index = date) 利用剛剛命名為df_zeros的0陣列,建立空dataframe,index為日期,如下圖所示:
 

    for eachkey in keyword:
        tempdic[eachkey] = 0 
    OneHot_df = tempdic.drop('temp', axis=1)

將關鍵字利用迴圈預先建立關鍵字欄位,再刪除原建立名為temp的欄位

    for j in range(len(words)):  #j為第幾篇新聞
        for word in words[j]: # 第j篇新聞第k個字
            if word in keyword:
                OneHot_df[word][j] = 1               

j為第幾篇新聞,words為list型態資料,存有j篇新聞中斷詞完成的字詞,將words利用迴圈放入word,如果J篇新聞的詞等於關鍵字,該關鍵字欄位則為1。
    OneHot_df.to_csv("OneHot1.csv",index=1,header=1,encoding='utf_8_sig')
OneHot_df匯出,檔案名稱為OneHot1.csv