資料預處理:
1,符號處理:
def go_split(s,min_len):
# 拼接正規表示式
symbol = ',;。!、?!'
symbol = "[" + symbol + "]+"
# 一次性分割字串
result = re.split(symbol, s)
return [x for x in result if len(x)>min_len]
def is_dup(s,min_len):
result = go_split(s,min_len)
return len(result) !=len(set(result))
def is_neg_symbol(uchar):
neg_symbol=['!', '0', ';', '?', '、', '。', ',']
return uchar in neg_symbol
2,分詞
#encoding=utf-8
#author linxinzhu
import jieba
import sys
reload(sys)
sys.setdefaultencoding('utf8')
f = open('3.txt','r')
outf = open('4.txt','w')
for line in f:
line = line.decode("utf-8").encode("utf-8")
seg_text = jieba.cut(line.replace("\t"," ").replace("\n"," ")) # 去掉\t \n然後用jieba分詞切分
outline = " ".join(seg_text) # combined into a outline
# outline = outline.encode("utf-8") + "\t__label__" + e + "\n" # add label
outf.write(outline)
3,使用fasttaxt生成向量
import fasttext
# skipgram model
model = fasttext.skipgram('data.txt', 'model')
print model.words # list of words in dictionary
# cbow model
model = fasttext.cbow('data.txt', 'model')
print model.words # list of words in dictionary
引數
input_file 訓練檔案路徑(必須)
output 輸出檔案路徑(必須)
lr 學習率 default 0.05
lr_update_rate 學習率更新速率 default 100
dim 訓練的詞向量維度 default 100
ws 上下文視窗大小 default 5
epoch epochs 數量 default 5
min_count 最低出現的詞頻 default 5
word_ngrams n-grams 設定
loss 損失函式 default ns
minn 最小字元長度 default 3
maxn 最大字元長度 default 6
thread 執行緒數量 default 12
t 取樣閾值 default 0.0001
silent 禁用 c++ 擴充套件日誌輸出 default 1
encoding 指定 input_file 的編碼 default utf-8
fasttext 文件: 資料預處理
現實世界中資料大體上都是不完整,不一致的髒資料,無法直接進行資料探勘,或挖掘結果差強人意。為了提前資料探勘的質量產生了資料預處理技術。資料預處理有多種方法 資料清理,資料整合,資料變換,資料歸約等。這些資料處理技術在資料探勘之前使用,大大提高了資料探勘模式的質量,降低實際挖掘所需要的時間。一 資料清...
資料預處理
常見的資料預處理方法,以下通過sklearn的preprocessing模組來介紹 變換後各維特徵有0均值,單位方差。也叫z score規範化 零均值規範化 計算方式是將特徵值減去均值,除以標準差。sklearn.preprocessing scale x 一般會把train和test集放在一起做標...
資料預處理
用cut函式分箱 有時把數值聚集在一起更有意義。例如,如果我們要為交通狀況 路上的汽車數量 根據時間 分鐘資料 建模。具體的分鐘可能不重要,而時段如 上午 下午 傍晚 夜間 深夜 更有利於 如此建模更直觀,也能避免過度擬合。這裡我們定義乙個簡單的 可復用的函式,輕鬆為任意變數分箱。def binni...