我正在研究一個chatbot程序來練習python,以及一些sklearn機器學習算法。python正常化大數
現在我只是給chatbot隨機句,並告訴它,如果句子是正確的。每個單詞都爲自己,類型(語法)和情緒(正面,負面,中性,低俗等等)分配了鍵。
將每個輸入給定的句子保存到csv文件後。 每個句子有三個特徵:key,key_type,key_mood和一個標籤:0(不正確)和1(正確)。
首先,對於每個鍵,我有一個對應每個單詞的鍵的列表。我認爲這是一個好主意,因爲它會跟蹤插入單詞的順序。
不幸的是,當保存到csv列表被轉換成包含列表的字符串,我不知道如何從字符串中提取列表(即使我知道如何,我不知道你是否可以提供一個列表模型的列表,我的猜測可能不是)。
於是我想出了這樣的:而不是功能的列表,我可以有一個數字,表示數字的這個名單:
for word in self.words:
for key in word.word_dict():
sentence_dict[key] += int(float(word.word_dict()[key]))* 10 **(3*n)
n+=1
因此,例如,對於「鍵」鍵「你怎麼樣「將是8007006,8是」How「的單詞鍵,7是」「和6」你「。 類似的,這個句子的「key_type」是12002001,「question word」是12,「verb」是2,「代名詞」是1。 不幸的是,由於這些鍵的製作方式,我在相同的數據集中輸入了大量的數字,而且數量相當小,我認爲它會拋出模型。
我嘗試使用np.sigmoid正常化,但這只是爲我的大多數鍵輸出1(它們太大)。
所以我的問題是:有沒有一種方法來規範化這些鍵的方式不能打敗他們的目的?如果沒有,您是否有更好的想法來確定如何將這些鍵提供給模型,而不會丟失單個單詞鍵的添加順序?
或者它是一種還是那些需要神經網絡的情況?
謝謝我會嘗試。我轉換爲CSV的對象是PD數據框。這會起作用嗎? – DataBrown
如果我沒有弄錯,PD數據框已經有'.to_json'和'.read_json'方法,所以你可以直接使用它們。 –
我剛剛證實,熊貓數據框確實有'.to_json'方法,但'read_json'是熊貓的一部分,而不是數據框的具體內容。因此,創建json'data = df.to_json()'並將其恢復爲'pd.read_json(data)' –