亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cnaivebayes.cpp

?? 貝葉斯公式
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	string FileNameTmp="";

	//如果目錄的最后一個字母不是'\',則在最后加上一個'\' 
	int len=sTestFilesPath.size(); 
	if (sTestFilesPath.at(len-1) != '\\') 
		sTestFilesPath += "\\";

	string TempName = sTestFilesPath+"*.txt";
	string sText="";
    int nClassID=0;

	long hFile;

	struct _finddata_t  TestFile;

    if((hFile = _findfirst(TempName.c_str(), &TestFile )) == -1L)
	{
    	cout<<"路徑無法訪問!"<<endl;
        return ;
	}
	

	string Path="";

	//重新寫類別文件
	for(int i=0;i<m_nClassNum;i++)
	{
		char szTempResFile[200];
		sprintf(szTempResFile,"Res\\C%d.txt",i);
		DeleteFile(szTempResFile);
	}

	CSSPS ssps;
	ssps.Init("Zssps");

	do
	{
      
		FileNameTmp=TestFile.name;//訓練文件的名稱
 		Path=sTestFilesPath+FileNameTmp;//獲取文件路徑
		string sSrcContent="";	
		ifstream fin1(Path.c_str());
		getline(fin1,sSrcContent,'\0');
		string sContent = ssps.GetVecStr (sSrcContent);
		nClassID=TestTermFile(sContent);

		 //寫文件Ci.txt
		char szResFile[20];
        memset(szResFile,0,20);
		sprintf(szResFile,"Res\\C%d.txt",nClassID);
		ofstream Fou;
		Fou.open(szResFile,ios::out|ios::app);
		Fou << Path << endl;
		Fou.close();

	}while(! _findnext( hFile, &TestFile ) );

}

//-----------------------------------------------------------------------------------------//
//   功能:       對每篇文檔進行測試。
//	 返回值:	  該文檔所屬類別
//----------------------------------------------------------------------------------------//
int CNaiveBayes::TestTermFile(string sContent)
{
	    string::size_type pos=0, prev_pos=0;	
	    string::size_type wordnum_pos=0;
		string word;
		
		double *pro=new double[m_nClassNum];//存儲各特征項取log后的和
		memset(pro,0,m_nClassNum*sizeof(double));
		wordnum_pos = sContent.find_first_of( ' ',wordnum_pos );
		
		//每篇文章的詞數nWordNum		
		string sWordNum = sContent.substr( 0,wordnum_pos );
		int nWordNum = atoi( sWordNum.c_str() );
		
		pos=++wordnum_pos;
		prev_pos=pos;
		while((pos = sContent.find_first_of( ' ', pos ))!=string::npos)
		{
			//取得每個word 的key:weight
			string::size_type key_pos=0, weight_pos=0;
			word = sContent.substr( prev_pos, pos - prev_pos );
			prev_pos = ++pos;
			
			//取得每個word的key并計算在類中的先驗概率
			key_pos = word.find_first_of( ':', key_pos );
			string str_key = word.substr( 0 , key_pos );
			int key = atoi(str_key.c_str());
			
			for(int i=0;i<m_nClassNum;i++)
			{	
				pro[i]=pro[i]+log(m_ppfTrainRes[i][key]);
			
			}
			
		}
		
		//處理最后一個空格后的word
		word = sContent.substr( prev_pos, pos - prev_pos );
		string::size_type key_pos=0;
		key_pos = word.find_first_of( ':', key_pos );
		string str_key = word.substr( 0 , key_pos );
		int key = atoi(str_key.c_str());
		
		
		for(int i=0;i<m_nClassNum;i++)
		{	
			pro[i]=pro[i]+log(m_ppfTrainRes[i][key])+log(m_pfPrC[i]);
		
        }

		//對測試文本進行分類
		
		double t;
		t = pro[0];
		int max_pro_num = 0;
		
		for(int s = 1 ; s < m_nClassNum ; s++ )
		{
			double k = pro[s];
			if( t < k && k != 0 && t != 0 )
				
			{
				max_pro_num = s;
				t = k;
			}
		}
		

		m_pnResNum[max_pro_num]++;

		return max_pro_num;

}

//-----------------------------------------------------------------------------------------//
//   功能:       讀入類的先驗概率及對應該類的特征項的先驗概率。
//----------------------------------------------------------------------------------------//

void CNaiveBayes::PrwFRead()
{
	
	string PrcF="Pr\\Prc.txt";
	
	ifstream prcf(PrcF.c_str());
	string strPrC="";
	string classID="";//存儲類序號
	string classfreV="";//存儲類的先驗概率
	int clsID=0;
	int pos1=0;
	int pos2=0;
    
	while(getline(prcf,strPrC,'\n')!=NULL)//讀取行
	{
     	pos1=0;
		pos2=0;
		
		if((pos2= strPrC.find_first_of( ' ',pos1 ))!=-1)
		{
			classID=strPrC.substr(pos1,pos2-pos1);
            const char *cID=classID.c_str();
			clsID=atoi(cID);
			pos2++;
		}
	   if((pos1= strPrC.find_first_of( ' ',pos2))!=-1)
		{
			pos1++;
			classfreV=strPrC.substr(pos1,-1);
			const char *cFV=classfreV.c_str();
			m_pfPrC[clsID]=atof(cFV);
		//	cout<<clsID<<" "<<m_pfPrC[clsID]<<endl;
	   }
	}
	
	
	char PrwDir[20];
	memset(PrwDir,' ',20*sizeof(char));

	for (int i = 0 ; i < m_nClassNum ; i++ )
	{
		sprintf(PrwDir,"Pr\\PrW in C%d.txt",i);
		ifstream prwf(PrwDir);
		//ifstream prwf(PrwF.c_str());
		string strPrW="";
		string feaNum="";
		string fesVal="";
		int featID=0;
		float featVal;
		
		
		while(getline(prwf,strPrW,'\n')!=NULL)//讀取行
		{
			pos1=0;
			pos2=0;
			
			if((pos2= strPrW.find_first_of( '\t',pos1 ))!=-1)
			{
				feaNum=strPrW.substr(pos1,pos2-pos1);
				
				pos2++;
			}
			const char *feaN=feaNum.c_str();
			featID=atoi(feaN);
			//cout<<featID<<"  ";
			fesVal=strPrW.substr(pos2,-1);
			//cout<<fesVal.c_str()<<endl;
			const char *feaV=fesVal.c_str();
			//featVal=atof(feaV);
			m_ppfTrainRes[i][featID]=atof(feaV);
			//  cout<<featID<<" "<<m_ppfTrainRes[i][featID]<<endl;
			
		}  
	}
	
}


//-----------------------------------------------------------------------------------------//
//   功能:       
//----------------------------------------------------------------------------------------//
int CNaiveBayes::InitPara(bool bPreTrain,string sTrainFilesPath)
{
	InitClassInfo();

	if (bPreTrain)
	{
		PreTrain(sTrainFilesPath);
	}

	//從文件_all_words.lst中讀取特征詞總個數
	ifstream wfile("..\\Dic\\DF\\_all_words.lst");
	string sTemp="";
	getline(wfile,sTemp,' ');//讀取特征詞總個數
	m_nFeatureNum=atoi(sTemp.c_str());
	
	m_ppfTrainRes = new float *[m_nClassNum];
	for(int i=0;i<m_nClassNum;i++)
	{
		m_ppfTrainRes[i]=new float[m_nFeatureNum];
		memset(m_ppfTrainRes[i],0,m_nFeatureNum*sizeof(float));
	}

    return m_nClassNum;
}

int CNaiveBayes::InitClassInfo()
{
	//從文件class.lst中讀取類別數、類名
	ifstream cfile("class.lst");
	string sTemp="";
    getline(cfile,sTemp,'\n');//讀取類別數
	m_nClassNum = atoi(sTemp.c_str());
	sTemp="";
	m_psClassName = new string[m_nClassNum];
	m_pnTrainNum = new int[m_nClassNum];
	int nClassIndex=0;
	
	while(getline(cfile,sTemp,'\n')!=NULL)//讀取行
	{
		m_psClassName[nClassIndex]=sTemp.c_str();//將類名存入m_psClassName數組
		m_mapClassName2ID[sTemp] = nClassIndex;
		nClassIndex++;
		sTemp="";
		if (nClassIndex>=m_nClassNum) 
		{
			break;
		}
	}
	
	m_pfPrC = new double[m_nClassNum];
    memset(m_pfPrC,0,m_nClassNum*sizeof(double));
	
	return m_nClassNum;
}

bool CNaiveBayes::PreTrain(string sTrainFilesPath)
{
	CSSPS ssps;
	ssps.Init("Zssps");	

	string sSubTrainFilesPath="";	
	//如果目錄的最后一個字母不是'\',則在最后加上一個'\' 
	int len=sTrainFilesPath.size(); 
	if (sTrainFilesPath.at(len-1) != '\\') 
	{
		sTrainFilesPath += "\\";
	}
	for(int nClassIndex=0;nClassIndex<m_nClassNum;nClassIndex++)
	{
		sSubTrainFilesPath = sTrainFilesPath + m_psClassName[nClassIndex];
		ssps.TrainFiles(sSubTrainFilesPath.c_str(), m_psClassName[nClassIndex].c_str());
	}

	return true;
}

int CNaiveBayes::TestAFile(string sTestFilePath)
{
	string sSrcContent="";	
	ifstream fin1(sTestFilePath.c_str());
	getline(fin1,sSrcContent,'\0');
	CSSPS ssps;
	ssps.Init("Zssps");
	string sContent = ssps.GetVecStr (sSrcContent);
	int nClassID=TestTermFile(sContent);

	return nClassID;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国av在线一区| 91激情五月电影| 欧美日韩视频一区二区| 国产精品系列在线播放| 蜜桃视频在线观看一区| 人人狠狠综合久久亚洲| 日韩精品亚洲一区| 免费高清在线视频一区·| 五月激情综合婷婷| 日本sm残虐另类| 激情综合色丁香一区二区| 经典一区二区三区| 国产一区二区不卡老阿姨| 国产精品一二三四五| 国产精品亚洲专一区二区三区 | 一级做a爱片久久| 亚洲精品亚洲人成人网在线播放| 日韩毛片在线免费观看| 亚洲一区二区三区四区的| 亚洲国产精品一区二区www在线 | 日韩欧美在线影院| 337p粉嫩大胆色噜噜噜噜亚洲| 国产亚洲欧洲997久久综合 | 欧美在线观看视频在线| 91精品国产综合久久精品麻豆| 精品成人一区二区三区四区| 国产日韩欧美精品一区| 亚洲女子a中天字幕| 日韩 欧美一区二区三区| 国产精品一区二区免费不卡| 色哟哟国产精品| 日韩午夜在线影院| 国产精品卡一卡二卡三| 婷婷激情综合网| 岛国精品在线播放| 91精品在线免费| 国产精品高清亚洲| 日本欧美在线看| 99免费精品视频| 欧美一级艳片视频免费观看| 中文字幕电影一区| 日韩综合小视频| 99精品国产热久久91蜜凸| 欧美一级欧美三级在线观看| 中文字幕中文在线不卡住| 毛片一区二区三区| 在线观看区一区二| 国产欧美日产一区| 麻豆精品蜜桃视频网站| 色94色欧美sute亚洲线路一ni| 久久综合五月天婷婷伊人| 亚洲成a天堂v人片| 色婷婷久久久久swag精品 | 国产mv日韩mv欧美| 欧美一级午夜免费电影| 亚洲线精品一区二区三区| 国产精品456| 精品久久久久久久久久久院品网| 亚洲成人午夜电影| 色综合色狠狠综合色| 欧美国产日本韩| 国产福利一区二区三区在线视频| 91精品国产一区二区三区香蕉| 亚洲综合视频在线观看| 99精品欧美一区| 中文字幕在线一区二区三区| 国产一区二区精品久久| 精品久久国产老人久久综合| 青青草国产精品97视觉盛宴 | 日韩国产高清在线| 欧美综合在线视频| 亚洲精品乱码久久久久| av一二三不卡影片| 亚洲欧美一区二区在线观看| 国产盗摄女厕一区二区三区| 久久综合狠狠综合久久综合88| 蜜臀av亚洲一区中文字幕| 欧美一级片在线看| 欧美a级理论片| 欧美sm美女调教| 国产制服丝袜一区| 国产午夜三级一区二区三| 国产精品主播直播| 国产精品麻豆久久久| 99热这里都是精品| 亚洲一区视频在线观看视频| 欧美日韩国产经典色站一区二区三区| 五月激情丁香一区二区三区| 91精品国模一区二区三区| 捆绑调教美女网站视频一区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产成人精品综合在线观看 | 亚洲一区二区三区精品在线| 欧美日韩午夜影院| 日韩综合一区二区| 久久综合九色综合欧美就去吻| 粉嫩蜜臀av国产精品网站| 国产精品美女一区二区| 色综合久久久久网| 亚洲成人av一区二区| 精品成人一区二区三区四区| 成人av中文字幕| 亚洲国产va精品久久久不卡综合| 欧美mv日韩mv| 色婷婷精品大在线视频| 免费在线观看视频一区| 欧美国产日产图区| 欧美猛男超大videosgay| 韩国在线一区二区| 一区二区三区资源| 精品伦理精品一区| 欧美视频在线观看一区| 国产美女视频一区| 亚洲成va人在线观看| 亚洲国产精品精华液2区45| 欧美性大战久久久| 国产精品 欧美精品| 亚洲二区在线观看| 欧美激情一区三区| 日韩欧美在线1卡| 色综合天天综合在线视频| 麻豆精品在线视频| 亚洲已满18点击进入久久| 久久精品日韩一区二区三区| 欧美猛男超大videosgay| 成人福利视频网站| 精品在线一区二区三区| 亚洲一级二级三级在线免费观看| 国产亚洲一区二区三区在线观看| 欧美日韩激情一区二区| av亚洲产国偷v产偷v自拍| 黄一区二区三区| 日本女人一区二区三区| 亚洲综合激情另类小说区| 国产精品嫩草99a| 久久一日本道色综合| 日韩亚洲欧美成人一区| 欧美三级午夜理伦三级中视频| 成人app软件下载大全免费| 国产麻豆精品视频| 久久99国产精品免费网站| 日韩高清国产一区在线| 性久久久久久久久久久久| 亚洲午夜影视影院在线观看| 亚洲情趣在线观看| 亚洲欧洲www| 亚洲免费毛片网站| 亚洲免费看黄网站| 亚洲中国最大av网站| 一区二区成人在线| 亚洲一二三专区| 亚洲黄一区二区三区| 樱花影视一区二区| 亚洲国产中文字幕在线视频综合| 亚洲乱码精品一二三四区日韩在线| ...av二区三区久久精品| 国产精品电影一区二区三区| 国产精品丝袜黑色高跟| 国产精品伦一区| 亚洲欧美激情视频在线观看一区二区三区| 性久久久久久久久久久久| 亚洲欧美欧美一区二区三区| 亚洲精品国产一区二区精华液| 亚洲欧美日韩在线不卡| 亚洲一区二区三区美女| 五月天精品一区二区三区| 麻豆久久久久久| 高清不卡一二三区| 色一情一伦一子一伦一区| 欧美日精品一区视频| 制服丝袜成人动漫| 久久久精品日韩欧美| 国产精品女人毛片| 亚洲高清中文字幕| 黄色资源网久久资源365| 成人一区二区在线观看| 色综合久久久久久久久| 欧美日韩一区二区三区不卡| 欧美电影免费观看高清完整版在线观看 | 国产精品国产自产拍高清av| 一区二区三国产精华液| 美女精品自拍一二三四| 福利视频网站一区二区三区| 色就色 综合激情| 精品欧美久久久| 亚洲色图另类专区| 美腿丝袜亚洲三区| 波多野洁衣一区| 日韩免费在线观看| 亚洲人成网站在线| 激情小说亚洲一区| 色婷婷国产精品久久包臀 | 国产成人一区在线| 欧美丝袜丝交足nylons| 久久久久国色av免费看影院| 亚洲一区二区精品久久av| 国产成人av电影在线| 在线不卡一区二区| 亚洲欧美日韩系列| 国产精品一区在线观看你懂的|