分類:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct train_data
};vector
train_text; //每個完整的訓練文字
vector
all_words; //所有不同的單詞 ,縱軸
vector
all_trains; //所有訓練文字,橫軸
int right_sum; //**正確的個數
//nb adding part
struct each_word
};//構建詞帶
struct emotion
};emotion each_emotion[7];
//nb adding part
// youhua part
double add[7] = ;
//youhua part
void reading_file(void );
void class_calculating();
bool cmp(const emotion & , const emotion & );
int main()
void reading_file()
train.close();
stringstream s;
int index;
int emotion_value;
string emotion;
string word;
for (int i = 0; i < train_text.size(); i ++)
else
continue;
}if (flag)
bool flag1 = true;
for (int i = 0; i < all_words.size(); i ++)
else
continue;
}if (flag1)
all_words.push_back(word);
}s.clear();
}}void class_calculating()
p = strtok(null, " ");
while (p != null)
// else
// continue;
// }
// if (flag)
bool flag1 = true;
for (int i = 0; i < all_words.size(); i ++)
else
continue;
}if (flag1)
all_words.push_back(temp);
p = strtok(null, " ");
}for (int i = 1; i <= 7; i ++)
else
continue;
}if (flag)
}each_emotion[i].probability = pro * (1.0 / (abs(each_emotion[i].times - train_text.size())));
}sort(each_emotion + 1, each_emotion + 7, cmp);
cout
<< each_emotion[6].emotion2 << endl;
if (each_emotion[6].emotion2 == test_train.emotion)
}cout
<< "正確個數: "
<< right_sum << endl;
// for (int i = 1; i < 7 ; i ++)
// cout << each_emotion[i].times << endl;
}bool cmp(const emotion &a, const emotion & b)
回歸:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct ct
};struct train_data
};vector
train_text; //每個完整的訓練文字
vector
all_words; //所有不同的單詞 ,縱軸
vector
all_trains; //所有訓練文字,橫軸
int right_sum; //**正確的個數
void reading_file(void );
void get_tf(void );
void regre_calculating(void );
int main()
void reading_file()
else
continue;
}if (flag1)
all_words.push_back(word);
//統計每個訓練文字中的單詞
bool flag2 = true;
for (int i = 0; i < new_train.word.size(); i ++)
else
continue;
}if (flag2)
p2 = strtok(null, " ");
}char *p3 = strtok(d, ",");
p3 = strtok(null, ",");
p3 = strtok(null, ",");
stringstream ss;
double fre;
while (p3 != null)
all_trains.push_back(new_train);
}}void get_tf()
}if (flag)
all_trains[i].tf.push_back(0);}}
}void regre_calculating()
}if (flag)
p2 = strtok(null, " ");
}map
m;for (int i = 0; i < test_train.word.size(); i ++)
map fre;
fre[1] = 0; fre[2] = 0; fre[3] = 0;
fre[4] = 0; fre[5] = 0; fre[6] = 0;
for (int i = 0; i < all_trains.size(); i ++)
}if (flag)
v.push_back((1.0 + test_train.word[j].num) / (test_train.sum + all_words.size()));
}for (int t = 0; t < v.size(); t ++)
fre[1] += temp_fre * all_trains[i].fre_set[0];
fre[2] += temp_fre * all_trains[i].fre_set[1];
fre[3] += temp_fre * all_trains[i].fre_set[2];
fre[4] += temp_fre * all_trains[i].fre_set[3];
fre[5] += temp_fre * all_trains[i].fre_set[4];
fre[6] += temp_fre * all_trains[i].fre_set[5];
}double all_fre = fre[1] + fre[2] + fre[3] + fre[4] + fre[5] + fre[6];
out << fre[1] / all_fre << '\t'
<< fre[2] / all_fre << '\t'
<< fre[3] / all_fre << '\t'
<< fre[4] / all_fre << '\t'
<< fre[5] / all_fre << '\t'
<< fre[6] / all_fre << endl;
}}
貝葉斯推斷之拉普拉斯近似
p w t,x frac 分母 p t x 是與引數 w 無關,可視為常量。定義函式 g 如下 g w x,t,sigma 2 p t x,w p w sigma 2 因此,g 與 p w t,x 之比為常數。上文介紹了點估計法求解 p w t,x 本文介紹拉普拉斯近似法求解 p w t,x 由於沒...
拉普拉斯融合演算法
無意看到了拉普拉斯的影象融合演算法,瀏覽了幾篇部落格,終於弄懂了其中的原理,現在作乙個記錄,方便以後理解使用。演算法流程 1.分別計算待融合的兩幅影象的拉普拉斯金字塔 2.計算得到兩幅影象最頂層的高斯金字塔 這一步包含在第一步當中,因為在求拉普拉斯金字塔前要先得到影象的高斯金字塔 3.生成每一級的掩...
拉普拉斯邊緣檢測 邊緣檢測演算法1 拉普拉斯運算元
拉普拉斯運算元,是學影象處理最先學習的,是乙個二階差分演算法。一階差分運算元,就是 相鄰畫素相減。二階差分運算元,就是 在 一階差分運算元上,繼續做相鄰畫素相減。三階差分運算元,就是在 二階差分上,繼續差分 所以,比較容易理解。opencv裡面,提供了乙個 laplace api 由api描述,該實...