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

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

?? wjc.cpp

?? 通過隱馬爾可夫模型做詞性標注,即給定一個句子,得到它的最優詞性序列
?? CPP
字號:
#pragma   warning(disable:   4786)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <string>
#include <map>
using namespace std;
map <string,int>word_index;
map <string,int>pos_index;
vector <string> dict_word ;
vector <string> test_word ;
vector <string> test_pos ;
vector <string> dict_pos ;  //cunfang zidian zhong de suoyou cixing
int dict_word_size,dict_pos_size;
#define ping_hua 0.1;
struct pos_node
{
	int pos_num;
	float pos_pro;
};

void read_dict()
{
	string s1,s_pos,s_word,s;
	ifstream fin;
	fin.open("dict.txt");
	if(!fin)
	{
		cerr<<"error 100 opening dict.txt";
		exit(100);
	}
	int index_word=0,index_pos=0;
	while(getline(fin,s1))
	{
		int k=0;
		for(int i=0;i<s1.length();i++)
		{
			if(s1.compare(i,1,"\t"))
				k++;
			else 
			{	
				s_pos=s1.substr(k+1);     //提取位置K+1后的子串,cixing
                break;
			}
		}
		s_word=s1.substr(0,k);   //提取漢字詞到TEMP
        dict_word .push_back(s_word);
		word_index[string(s_word)]=index_word;
        index_word++;


        for(int j=0;j<s_pos.length();j++)
		{
			if(s_pos.compare(j,1," ")&&s_pos.compare(j,1,"\t"))
			{
				if(j+1<s_pos.length())
				{
					if(!s_pos.compare(j+1,1," ")||!s_pos.compare(j+1,1,"\t"))  //該詞性只有一個字母組成
						s=s_pos.substr(j,1); //提取一個字符

					else
						s=s_pos.substr(j,2);   //提取一個詞性,兩個字

				}
				else
					s=s_pos.substr(j,1);   //提取一個字符
			}
			if(!pos_index.count(s))  //mei zhaodao ,charu
			{
				pos_index[s]=index_pos;
				index_pos++;
				dict_pos.push_back(s);
			}
		}
	}

    dict_word_size=word_index.size();
	dict_pos_size=pos_index.size();

	for(int i=0;i<pos_index.size();i++)
		cout<<pos_index[dict_pos[i]]<<"  "<<dict_pos[i]<<endl;

	fin.close();
    
}

void count_pi_A_B(float **pos_to_pos,float **pos_to_word)
{
	string s1,s2,s_fir_pos,s_sce_pos,s_end_pos,s_word,fir_str,sce_str,end_str,end_pre_pos;
	int k=0,fir_null,sce_null,end_null,fir=1,from,to;

	ifstream fin1("corpus.txt");
	if(!fin1)
	{
		cerr<<"error 100 opening dict.txt";
		exit(100);
	}
	while(getline(fin1,s2))
	{
		if(s2.length()!=0)
		{
			end_null=s2.rfind("  ");
			if(fir!=1)//shangyihang de zuihou yige zhuandao xia yi hang de diyige
			{
					fir_null=s2.find("  "); 
					fir_str=s2.substr(0,fir_null);
					k=fir_str.find_first_of('/');                 
					s_fir_pos=fir_str.substr(k+1,2);
					from=pos_index[s_end_pos];	  
					to=pos_index[s_fir_pos]+1;
					pos_to_pos[from][to]++;    //di yi lie fang pi
			}
			fir_null=s2.find("  "); 
			fir_str=s2.substr(0,fir_null);
			k=fir_str.find_first_of('/'); 
			s_word=fir_str.substr(0,k);   //tiqu  yige ci,  qiu b.........
			s_fir_pos=fir_str.substr(k+1,2); //tiqu chu yige cixing
			from=word_index[s_word];   //xuoying ,dedao b
			to=pos_index[s_fir_pos];
			pos_to_word[from][to]++;

			pos_to_pos[pos_index[s_fir_pos]][0]++;//qiu pi
			while(fir_null!=end_null)
			{
				sce_null=s2.find("  ",fir_null+2);
				sce_str=s2.substr(fir_null+2,sce_null-fir_null-2);   //tiqu dierge chuan

				k=sce_str.find_first_of('/');                 
				s_word=sce_str.substr(0,k);   //tiqu chu yige ci   qiu b.................
				s_sce_pos=sce_str.substr(k+1,2); //tiqu chu yige cixing
				from=word_index[s_word];   //xuoying ,dedao b
				to=pos_index[s_sce_pos];
				pos_to_word[from][to]++;

				from=pos_index[s_fir_pos];
				to=pos_index[s_sce_pos];
				pos_to_pos[from][to+1]++;    //diyilie fang pi,  a
			


				fir_null=sce_null;
				s_fir_pos=s_sce_pos;
			}
			s_end_pos=s_sce_pos;//jilu xia shangyihang zuihou yige cixing 
		}

		fir=0;
	}
}

void pinghua(float **pos_to_pos,float **pos_to_word)
{
	int i,j;
	float all_pi=0,all_a=0,all_b=0,ph,size;
	ph=(float)ping_hua;
	for(i=0;i<dict_pos_size;i++)   //pi_pro
	{
		pos_to_pos[i][0]=pos_to_pos[i][0]+ph;
		all_pi=all_pi+pos_to_pos[i][0];
	}
	for(i=0;i<dict_pos_size;i++)
	{
		pos_to_pos[i][0]=pos_to_pos[i][0]/all_pi;
	}


	for(i=0;i<dict_pos_size;i++)   //a_pro   xianxing chazhi 
	{	
		all_a=0;
		for(j=1;j<=dict_pos_size;j++)
		    all_a=pos_to_pos[i][j]+all_a;
		for(j=1;j<=dict_pos_size;j++)
			pos_to_pos[i][j]=((1-ph)*pos_to_pos[i][j]/all_a)+ph;
	}

	
	for(j=0;j<dict_word_size;j++)//b_pro
	{
		size=0;
		all_b=0;
		for(i=0;i<dict_pos_size;i++)  
		{
			all_b=pos_to_word[j][i]+all_b;  //c(word[j])
			if(pos_to_word[j][i]!=0)
				size++;
		}

		for(i=0;i<dict_pos_size;i++) 
			pos_to_word[j][i]= (float)(pos_to_word[j][i]+1)/(all_b+size);
	}
}

float max(float **i_j_pro,float **pos_to_pos,int i,int j,int &rec_k)
{
	float max=0;
	for(int k=0;k<dict_pos.size();k++)
	{
		if(i_j_pro[i][k]*pos_to_pos[k][j+1]>max)
		{
			max=i_j_pro[i][k]*pos_to_pos[k][j+1];
			rec_k=k;
		}
	}
	return max;
}
void viterbi(float **pos_to_pos,float **pos_to_word,float **i_j_pro,string **most_state,string *new_state)
{
	int i,j,index,rec_k=0;
	float mmax;
	string state;
	if(word_index.count(test_word[0]))    //ci yizai yuliaoku zhong chuxian
	{
		index=word_index[test_word[0]];
	    for(j=0;j<dict_pos_size;j++) //pi
			i_j_pro[0][j]=pos_to_pos[j][0]*pos_to_word[index][j];  //pi[j]*...
	}
	else  //gaici wei wei denglu ci  ,renwei meige cixing changsheng gaici de gailv dou yiyang 
	{
		 for(j=0;j<dict_pos_size;j++) //pi   
			 i_j_pro[0][j]=pos_to_pos[j][0]; 
	}
///////////////////////////////////////////////////
	for(i=1;i<test_word.size();i++)  //ci de gesh
	{
		if(word_index.count(test_word[i]))
		{
			index=word_index[test_word[i]];
			for(j=0;j<dict_pos_size;j++) //pi
			{
				mmax=max(i_j_pro,pos_to_pos,i-1,j,rec_k);
				i_j_pro[i][j]=mmax*pos_to_word[index][j];
				most_state[i][j]=dict_pos[rec_k];
			}
		}
		else     //gaici wei wei denglu ci
		{
			for(j=0;j<dict_pos_size;j++) //pi
			{
				mmax=max(i_j_pro,pos_to_pos,i-1,j,rec_k);
				i_j_pro[i][j]=mmax;
				most_state[i][j]=dict_pos[rec_k];
			}
		}
	}

	
	mmax=i_j_pro[test_pos.size()-1][0];  //qiu zuidazhi  pos_to_pos de diyilie fang pi
	state=dict_pos[0]; 
	for(int k=1;k<dict_pos.size();k++)
	{
		if(i_j_pro[test_word.size()-1][k]>mmax)
		{
			mmax=i_j_pro[test_pos.size()-1][k];
			rec_k=k;
		}
	}
	state=dict_pos[rec_k];                //Xn
	new_state[test_pos.size()-1]=state;
	for(k=test_pos.size()-1;k>=1;k--)
	{
		new_state[k-1]=most_state[k][rec_k];
		rec_k=pos_index[new_state[k-1]];
	}       

}
void tag_test(float **pos_to_pos,float **pos_to_word)
{
	string s ,s2,one_sentence,fir_str,s_fir_pos,s_sce_pos,s_word,sce_str;
	int end_null,fir_null,sce_null,k,i;
	ifstream fin1("test.txt");
	if(!fin1)
	{
		cerr<<"error 100 opening dict.txt";
		exit(100);
	}

	ofstream fout("result.txt");
	if(!fout)
	{
		cerr<<"error 100 opening result.txt";
		exit(100);
	}
    int line=1;
	float all_cor=0,all=0;
	while(getline(fin1,s))
	{
		if(s.length()!=0)  //tiqu yige juzi de ci he cixing ,bing cunru dongtai shuzu
		{
	        end_null=s.rfind("  ");
			
			fir_null=s.find("  ");  
			fir_str=s.substr(0,fir_null);
			k=fir_str.find_first_of('/'); 
			s_word=fir_str.substr(0,k);   //tiqu  yige ci,  qiu b.........
			s_fir_pos=fir_str.substr(k+1,2); //tiqu chu yige cixing
			test_pos.push_back(s_fir_pos); //cunchu cixing
			test_word.push_back(s_word);         //cunchu ci

			while(fir_null!=end_null)
			{
				sce_null=s.find("  ",fir_null+2);
				sce_str=s.substr(fir_null+2,sce_null-fir_null-2);   //tiqu dierge chuan
				k=sce_str.find_first_of('/');                 
				s_word=sce_str.substr(0,k);   //tiqu chu yige ci   qiu b.................
				s_sce_pos=sce_str.substr(k+1,2); //tiqu chu yige cixing
				test_pos.push_back(s_sce_pos); //cunchu cixing
				test_word.push_back(s_word);         //cunchu ci
				fir_null=sce_null;
			}

			string **most_state=new string* [test_word.size()];
			for(i=0;i<test_word.size();i++)
				most_state[i]=new string [dict_pos_size];

			string *new_state=new string [test_word.size()] ;

			float **i_j_pro=new float* [test_word.size()] ;
			for(i=0;i<test_word.size();i++)
				i_j_pro[i]=new float [dict_pos_size];

			viterbi(pos_to_pos,pos_to_word,i_j_pro,most_state,new_state);  ////diaoyong vertebi

			float num=0.0;		
			float pro;
			for(int i=0;i<test_word.size();i++)
			{
                all++;
				if(test_pos[i]==new_state[i])
				{
					num++;
					all_cor++;
				}
			}

			pro=num/test_word.size();	
			fout<<"line"<<line<<"      "<<num<<"    "<<test_word.size()<<"     "<<pro<<endl;
			line++;
			test_word.clear();   ///qingkong
			test_pos.clear();
		}
	}
	fout<<"the totla pro of correct is "<<all_cor<<"/"<<all<<"="<<all_cor/all<<endl;
	fin1.close();
	fout.close();
}
int main()
{
	read_dict();      //讀詞典
	float **pos_to_pos=new float* [dict_pos_size] ;  //詞性轉移 ,jian yige erwei shuzu 
	for(int row=0;row<dict_pos_size;row++)
	{
		pos_to_pos[row]=new float [dict_pos_size+1];   //di 0 lie fang pi
		for(int x=0;x<=dict_pos_size;x++)
			pos_to_pos[row][x]=0;  
	}

    float **pos_to_word=new float* [dict_word_size];
	int x;
	for(row=0;row<dict_word_size;row++)
	{
		pos_to_word[row]=new float [dict_pos_size];
		for(x=0;x<dict_pos_size;x++)
			pos_to_word[row][x]=0;      
	}
	cout<<"GENERATING HMM,WAIT FOR A MOMENT,PLEASE...."<<endl;
	count_pi_A_B(pos_to_pos,pos_to_word);  //dedao HMM
	pinghua(pos_to_pos,pos_to_word);   //平滑
	tag_test(pos_to_pos,pos_to_word);   //標注
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
毛片av一区二区三区| 91搞黄在线观看| 成人国产精品免费观看视频| 99在线热播精品免费| 日韩欧美综合在线| 亚洲成在人线免费| www.日本不卡| www国产亚洲精品久久麻豆| 亚洲宅男天堂在线观看无病毒| 国产成人av一区二区三区在线 | 性做久久久久久久久| 国产精品一区二区视频| 91精品国产综合久久香蕉麻豆| 国产精品九色蝌蚪自拍| 久久er精品视频| 欧美精品成人一区二区三区四区| 亚洲欧美日韩综合aⅴ视频| 国产麻豆精品久久一二三| 欧美久久免费观看| 亚洲成a人v欧美综合天堂| 欧美自拍偷拍午夜视频| 中文字幕一区二区三区四区 | 亚洲一区二区三区爽爽爽爽爽| 丁香网亚洲国际| 久久久99免费| 国产精品一区三区| 国产欧美一二三区| 国产成人av电影在线播放| 精品毛片乱码1区2区3区| 奇米精品一区二区三区在线观看 | 色哟哟一区二区在线观看| 国产日本欧洲亚洲| 丁香一区二区三区| 国产精品国产三级国产有无不卡| 国产91丝袜在线播放九色| 国产色产综合色产在线视频| 国产sm精品调教视频网站| 久久亚洲一区二区三区四区| 国产精品影视在线观看| 欧美激情一区二区三区全黄| 国产成人午夜精品影院观看视频| 国产亚洲人成网站| 懂色av一区二区三区蜜臀| 天使萌一区二区三区免费观看| 在线免费观看不卡av| 一区二区三区中文字幕在线观看| 色偷偷88欧美精品久久久| 亚洲午夜电影在线观看| 欧美日高清视频| 国产综合久久久久影院| 国产欧美日韩在线| 91精品福利视频| 午夜国产精品影院在线观看| 精品人在线二区三区| 国产成人免费视频网站| 亚洲精品第1页| 91精品国产全国免费观看 | 亚洲在线观看免费视频| 91麻豆精品国产无毒不卡在线观看| 日韩黄色小视频| 日韩欧美国产wwwww| 国产成人小视频| 亚洲一区二区欧美日韩| 久久久久久久综合日本| 欧美性videosxxxxx| 黄页视频在线91| 一区二区日韩电影| 久久精品一区二区| 91精品1区2区| 成人综合婷婷国产精品久久蜜臀 | 欧美男同性恋视频网站| 国产成人av电影免费在线观看| 亚洲日本丝袜连裤袜办公室| 日韩精品一区二区三区中文不卡| 99精品国产99久久久久久白柏| 亚洲国产成人va在线观看天堂| 欧美成va人片在线观看| 欧洲国内综合视频| 成人美女视频在线观看18| 日韩和的一区二区| 中文字幕av一区二区三区| 中文一区二区在线观看| 欧美在线观看视频在线| 国产一区激情在线| 一区二区三区久久| 国产日产欧美一区二区三区| 欧美一区三区四区| 99国产精品国产精品毛片| 免费在线视频一区| 亚洲欧美日韩电影| 国产亚洲欧洲一区高清在线观看| 欧美日韩性生活| 91麻豆视频网站| 国产99一区视频免费| 蜜臀av一区二区在线观看| 亚洲愉拍自拍另类高清精品| 国产人成亚洲第一网站在线播放 | 玉足女爽爽91| 国产精品青草久久| 久久久久国产精品人| 日韩欧美第一区| 不卡的av网站| 丰满亚洲少妇av| 精品一区二区综合| 久久99精品久久久久久动态图| 亚洲成人免费在线观看| 亚洲精品五月天| 国产精品国产三级国产三级人妇 | 中文字幕av不卡| 日韩欧美综合在线| 欧美肥妇毛茸茸| 欧美视频一区二区在线观看| 一本久道久久综合中文字幕| aaa亚洲精品| 91女厕偷拍女厕偷拍高清| 国产福利精品一区| 国产激情一区二区三区四区| 国产一区二区免费视频| 国产综合成人久久大片91| 精品在线你懂的| 久草热8精品视频在线观看| 麻豆高清免费国产一区| 精品无人区卡一卡二卡三乱码免费卡| 日本欧美久久久久免费播放网| 青青草原综合久久大伊人精品优势| 日韩成人免费看| 蜜桃视频一区二区三区| 九色porny丨国产精品| 国产另类ts人妖一区二区| 精品系列免费在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品国产免费人成电影在线观看四季 | 久久综合狠狠综合| 国产丝袜在线精品| 日韩一区欧美小说| 亚洲国产精品嫩草影院| 喷白浆一区二区| 国产精品1区二区.| 色哟哟一区二区在线观看| 在线成人免费观看| 国产午夜久久久久| 亚洲欧美激情在线| 日韩成人伦理电影在线观看| 国产精品综合在线视频| 波多野结衣一区二区三区| 欧美亚洲动漫制服丝袜| 欧美成人艳星乳罩| 亚洲日本护士毛茸茸| 亚洲福利视频一区| 国产馆精品极品| 色婷婷国产精品| 制服丝袜中文字幕一区| 国产精品免费视频网站| 五月天丁香久久| 国产v日产∨综合v精品视频| 欧美猛男男办公室激情| 国产精品久久久久桃色tv| 亚洲国产欧美另类丝袜| 国产一二三精品| 欧洲精品一区二区| 久久精品亚洲麻豆av一区二区 | 国产日产欧美一区| 亚洲成人自拍一区| 成人在线一区二区三区| 777久久久精品| 中文字幕一区二区三区蜜月| 玖玖九九国产精品| 在线视频一区二区三| 久久精品一区二区三区不卡牛牛| 亚洲va中文字幕| 色老汉一区二区三区| 久久久影院官网| 久色婷婷小香蕉久久| 欧美日韩中文字幕精品| 国产精品视频一区二区三区不卡| 爽好多水快深点欧美视频| 91视频观看视频| 国产欧美日韩三区| 久久精品久久综合| 欧美精品自拍偷拍动漫精品| 亚洲欧美在线另类| 国产成人亚洲综合a∨婷婷| 91精品欧美久久久久久动漫| 一区二区三区丝袜| 在线播放欧美女士性生活| 亚洲综合成人在线| 99久久99精品久久久久久 | 伊人开心综合网| 成人激情免费电影网址| 日韩精品影音先锋| 日本在线不卡一区| 欧美欧美午夜aⅴ在线观看| 亚洲精品视频自拍| 色综合久久久久网| 自拍av一区二区三区| 99国产一区二区三精品乱码| 中文字幕日韩欧美一区二区三区| 国产精品影音先锋| 国产精品每日更新在线播放网址| 成人免费的视频|