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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? childfrm.cpp

?? 計(jì)算機(jī)英漢機(jī)器翻譯系統(tǒng)中的英語詞性標(biāo)注方法實(shí)現(xiàn)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// ChildFrm.cpp : implementation of the CChildFrame class
//

#include "stdafx.h"
#include "PosTag.h"

#include "ChildFrm.h"
#include "MainFrm.h"
#include "PosTagDoc.h"
#include "PosTagView.h"
#include "test.h"
#include "Mtnodelist.h"
#include "MTNodeStu.h"
#include "math.h"
#include "Bplus.h"
#include "setnumdialog.h"

//CString CateChangePenn(char Test[10]);



extern SentenceType	g_objMorSent;
extern DictNode* WordRestore(char *inputword, int nSearchMod);
int sentenceNum=1;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CChildFrame

IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)

BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
	//{{AFX_MSG_MAP(CChildFrame)
	ON_COMMAND(ID_POSTAG, OnPostag)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChildFrame construction/destruction

CChildFrame::CChildFrame()
{
	// TODO: add member initialization code here
}

CChildFrame::~CChildFrame()
{
}

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CMDIChildWnd::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CChildFrame diagnostics

#ifdef _DEBUG
void CChildFrame::AssertValid() const
{
	CMDIChildWnd::AssertValid();
}

void CChildFrame::Dump(CDumpContext& dc) const
{
	CMDIChildWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CChildFrame message handlers

bool CChildFrame::SearchWordInit1(LPSTR pszSysDicIndexName,
								LPSTR pszHuffmanFreqDataName)
{
	char szSysDictIndexName[MAX_FILENAME_LEN]; // 索引文件名
	char szSysDictDtaName[MAX_FILENAME_LEN]; // 二級(jí)索引文件名
	char szSysDictDatName[MAX_FILENAME_LEN]; // 數(shù)據(jù)文件名
	//yys 98.5.22 Bgn
	char szAddtionDictIndexName[MAX_FILENAME_LEN]; // 索引文件名
	char szAddtionDictDtaName[MAX_FILENAME_LEN]; // 二級(jí)索引文件名
	char szAddtionDictDatName[MAX_FILENAME_LEN]; // 數(shù)據(jù)文件名
	
	char pszAddtionDicIndexName[] = "DictRes\\AddDict";	//系統(tǒng)附加詞典名
	DictSearch qsearch;
	int found=0;
	strcpy(szSysDictIndexName,pszSysDicIndexName);
	strcat(szSysDictIndexName,".idx");
	strcpy(szAddtionDictIndexName,pszAddtionDicIndexName);
	strcat(szAddtionDictIndexName,".idx");	
	
	strcpy(szSysDictDtaName,pszSysDicIndexName);
	strcat(szSysDictDtaName,".dta");
	strcpy(szAddtionDictDtaName,pszAddtionDicIndexName);
	strcat(szAddtionDictDtaName,".dta");	
	
	strcpy(szSysDictDatName,pszSysDicIndexName);
	strcat(szSysDictDatName,".dat");
	strcpy(szAddtionDictDatName,pszAddtionDicIndexName);
	strcat(szAddtionDictDatName,".dat");	
	if ( (( (CPosTagApp* ) AfxGetApp() ) ->m_fpSysIndexDat = fopen(szSysDictDatName,"r+b") ) == NULL ||
		 (( (CPosTagApp* ) AfxGetApp() ) ->m_fpAddtionIndexDat = fopen(szAddtionDictDatName,"r+b") ) == NULL ) {
		CString strMsg;
		strMsg.Format("Cann't open file %s or %s ! ",
			szSysDictDatName,szAddtionDictDatName);
		AfxMessageBox(strMsg);
		return FALSE;
	}
	( (CPosTagApp* ) AfxGetApp() ) ->m_obSysDiction = new Dictionary(szSysDictDtaName,szSysDictIndexName,0);
    ( (CPosTagApp* ) AfxGetApp() ) ->m_obAddtionDiction = new Dictionary(szAddtionDictDtaName,szAddtionDictIndexName,0);
  	found=qsearch.LoadSysHushTableFromIndexDat(( (CPosTagApp* ) AfxGetApp() ) ->m_fpSysIndexDat,( (CPosTagApp* ) AfxGetApp() ) ->m_fpAddtionIndexDat);
	if(found==0)
		return FALSE;
	return TRUE;
}

void CChildFrame::OnPostag() 
{
	// TODO: Add your command handler code here
	if ( SearchWordInit1("DictRes\\EcDict","DictRes\\HuffFreq.dat") == TRUE )
	{
		bIsInit=TRUE;
	}

	
	if ( !bIsInit )	
	{
		AfxMessageBox("Please Initializing!");
		return;
	}

	char szSour[3000];
	CPosTagView* pView;
	int nCurrLineIndex;
	CString strLine;
	int nLen,Len;


//	char Re_CompareFileName[]="cdqprg\\re_compare.txt";	//44個(gè)詞性標(biāo)注符號(hào)
//	FILE* fpOutput1;
	fpOutput1=fopen(Re_CompareFileName,"wb");
	if ( fpOutput1 == NULL )
	{
		char stErrorMsg[200];
		sprintf(stErrorMsg,"Error Open %s !",Re_CompareFileName);
		AfxMessageBox(stErrorMsg);
		return;
	}
	

	pView=(CPosTagView*)GetActiveView( ); 
	nCurrLineIndex = pView->GetRichEditCtrl().LineFromChar(-1);// 取當(dāng)前行號(hào)
	for (m_nCurrLineIndex=0;m_nCurrLineIndex<sentenceNum;m_nCurrLineIndex++)
	{

	nLen = pView->GetRichEditCtrl().GetLine(nCurrLineIndex,strLine.GetBuffer(300));
	//Test
	if (nLen<=2)
	break;

	char cTemp;
	cTemp=strLine.GetBuffer(300)[nLen-2];
	cTemp=strLine.GetBuffer(300)[nLen-1];
	//Test
	Len = nLen;

	if ( strLine.GetBuffer(300)[Len-2] == 13 )
	{
		strLine.GetBuffer(300)[Len-2] = '\0';
		strLine.ReleaseBuffer();
	}
	else
	{
		while (strLine.GetBuffer(300)[Len-2] != 13 )
		{
			strLine.GetBuffer(300)[Len]='\0';
			CString strLineTemp;
			strLine.ReleaseBuffer();
			nCurrLineIndex = nCurrLineIndex+1;
			nLen = pView->GetRichEditCtrl().GetLine(nCurrLineIndex,strLineTemp.GetBuffer(300));	
			if ( strLineTemp.GetBuffer(300)[nLen-2] == 13 )
			{
				strLineTemp.GetBuffer(300)[nLen-2] = '\0';
				strLineTemp.ReleaseBuffer();
				Len = Len+nLen;
				strLine+=strLineTemp;
				break;
			}
			else
			{
				strLineTemp.GetBuffer(300)[nLen] = '\0';
				strLineTemp.ReleaseBuffer();
				Len = Len+nLen;
				strLine+=strLineTemp;
			}
		}
	}
	strcpy(szSour,strLine);	
	nCurrLineIndex = nCurrLineIndex+1;	
	MorphorAnalyze(szSour);
	BestSequence();
	}
	fclose(fpOutput1);
	delete ( (CPosTagApp* ) AfxGetApp() ) ->m_obSysDiction;
	delete ( (CPosTagApp* ) AfxGetApp() ) ->m_obAddtionDiction;
	AfxMessageBox("OK!"); 	
}


void  CChildFrame::BestSequence()
{
	CString linTmp1,linTmp2,linTmp3;
	CString strTmp1,strTmp2,strTmp3;
	CString posTmp1,posTmp2;
	char crTmp[200];
//	char Test[10];
	double n_prob;
	double posPro[10];
	double b[44];
	double beginPro[44];
	double viterbiPro[200][44];
	double posPairPro[44][44];
	CStringArray viterbiPos[200];	//記錄第I個(gè)單詞中最大viterbiPro值所對(duì)應(yīng)的前一個(gè)單詞的詞性

	CStringArray viterbiAnn[200];	//記錄第I(0~499)個(gè)單詞的J(0~44)個(gè)詞性
	CStringArray wordContent;
	CStringArray posAnnotate;
	CStringArray possibleAnn;
	int i,j,l,h,s,t;
	int ncount;
	int count[200][8],nowcount[8];
	const int c_nMaxLineLen=1500;
	char szOneLine[c_nMaxLineLen];

	char szPennTableName[]="cdqprg\\conmarker.txt";
	char divertFileName[]="cdqprg\\divmatrix.txt";	//轉(zhuǎn)移概率矩陣
	char beginFileName[]="cdqprg\\beginstate.txt";	//初始狀態(tài)分布
	
	CStringArray npos;

	FILE* fpInput2;
	fpInput2=fopen(szPennTableName,"rb");
	if ( fpInput2 == NULL )
	{
		char stErrorMsg[200];
		sprintf(stErrorMsg,"Error Open %s !",szPennTableName);
		AfxMessageBox(stErrorMsg);
		return;
	}

	FILE* fpInput3;
	fpInput3=fopen(divertFileName,"rb");
	if ( fpInput3 == NULL )
	{
		char stErrorMsg[200];
		sprintf(stErrorMsg,"Error Open %s !",divertFileName);
		AfxMessageBox(stErrorMsg);
		return;
	}
	for ( i=0;i<44;i++)
	{//轉(zhuǎn)移概率賦值
		fgets(szOneLine,c_nMaxLineLen,fpInput3);		
		linTmp3=szOneLine;
		for ( int j=0;j<44;j++ )
		{
			strTmp3=linTmp3.Left(linTmp3.Find("  "));
			posPairPro[i][j]=atof(strTmp3);
			linTmp3=linTmp3.Right(linTmp3.GetLength()-linTmp3.Find("  ")-2);
		}
	}

	FILE* fpInput4;
	fpInput4=fopen(beginFileName,"rb");
	if ( fpInput4 == NULL )
	{
		char stErrorMsg[200];
		sprintf(stErrorMsg,"Error Open %s !",beginFileName);
		AfxMessageBox(stErrorMsg);
		return;
	}
	for ( i=0;i<44;i++ )
	{//初始狀態(tài)賦值
		fgets(szOneLine,c_nMaxLineLen,fpInput4);		
		linTmp3=szOneLine;
		strTmp3=linTmp3.Right(linTmp3.GetLength()-linTmp3.Find(' ')-1);
		beginPro[i]=atof(strTmp3);
	}
/*
	char viterbiFileName[]="viterbi.txt";
	FILE* fpOutput;
	fpOutput=fopen(viterbiFileName,"wb");
	if ( fpOutput == NULL )
	{
		char stErrorMsg[200];
		sprintf(stErrorMsg,"Error Open %s !",viterbiFileName);
		AfxMessageBox(stErrorMsg);
		return;
	}
*/	struct DictNode *CurNode;
	int m=0;	
	CurNode = g_objMorSent.m_pWordFirst;
	while ( CurNode!=NULL )
	{
		i=0;
		strTmp1 = CurNode->m_pszEnglish;
		
		Find(strTmp1,wordContent);	//單詞內(nèi)容(詞性、發(fā)射概率)都存于arDictContent數(shù)組中
									//取CurNode.m_pFirstChin.m_nCate
									//及CurNode.m_pNextChin.m_nCate....的值賦予arDictContent數(shù)組中,
									//若有多個(gè)詞性,需分別賦值且每個(gè)詞性的發(fā)射概率都為1。
		if (strcmp(strTmp1,"There")!=0 &&
			strcmp(strTmp1,"there")!=0)
		{
/*			if ( strcmp(strTmp1,CurNode->m_pszOrig)==NULL )
			{//只在單詞與原型一致時(shí)使用系統(tǒng)詞性(')
			if ( strcmp(strTmp1,CurNode->m_pszOrig)==NULL )
			{//只在單詞與原型不一致時(shí)使用系統(tǒng)詞性(")
*/				if ( CurNode->m_pszAmbig != 0 )
				{
					strTmp3 = CurNode->m_pszAmbig;
					i=1;
					posTmp2="";
					posTmp1 = strTmp3.Left(strTmp3.Find('/'));
					if ( strchr(posTmp1,'v')!=0 && strchr(posTmp1,'a')==0 )
						posTmp2="v/";
					else
						posTmp2=posTmp1+"/";
					strTmp3 = strTmp3.Right(strTmp3.GetLength()-strTmp3.Find('/')-1);
					while ( strstr(strTmp3,"/") != NULL )
					{
						posTmp1 = strTmp3.Left(strTmp3.Find('/'));
						if ( strchr(posTmp1,'v')!=0 && strchr(posTmp1,'a')==0 )
						{
							if (strstr(posTmp2,"v/")==0)
							{
								posTmp2=posTmp2+"v/";
							}
							else
							{
								strTmp3 = strTmp3.Right(strTmp3.GetLength()-strTmp3.Find('/')-1);
								break;
							}
						}
						else
						{
							posTmp2=posTmp2+posTmp1+"/";
						}
						strTmp3 = strTmp3.Right(strTmp3.GetLength()-strTmp3.Find('/')-1);
						i=i+1;
					}
					posTmp1=strTmp3;
					if ( strchr(posTmp1,'v')!=0 && strchr(posTmp1,'a')==0 )
					{
						if (strstr(posTmp2,"v/")==0)
						{
							posTmp2=posTmp2+"v";
							i=i+1;
						}
						else
							posTmp2=posTmp2.Left(posTmp2.GetLength()-1);
					}
					else
					{
						posTmp2=posTmp2+posTmp1;
						i=i+1;
					}
				}
				if (i>wordContent.GetSize())
				{
					wordContent.RemoveAll();
					ChangeWordContent(posTmp2,wordContent);
				}
//			}
		}
		t=0;
		for ( i=0;i<wordContent.GetSize();i++ )
		{
			strTmp2=wordContent[i];
			posTmp1=strTmp2.Right(strTmp2.GetLength()-strTmp2.Find(" ")-1);
			n_prob=atof(posTmp1);
			posTmp1=strTmp2.Left(strTmp2.Find(" "));
			posTmp1=" "+posTmp1+"  ";
			j=0;
			while ( !feof(fpInput2) )
			{
				fgets(szOneLine,c_nMaxLineLen,fpInput2);	
				linTmp2=szOneLine;
				if ( strstr(linTmp2,posTmp1)==0 )
				{
					j=j+1;
				}
				else
				{
					b[j]=n_prob;
					posTmp2=linTmp2.Right(linTmp2.GetLength()-linTmp2.Find(" ")-1);
					posTmp2=posTmp2.Left(posTmp2.Find("  "));
					break;
				}
			}
			fseek(fpInput2,0L,SEEK_SET); 

			s=0;
			h=0;
			if ( m==0 )
			{
				if (beginPro[j]==0 )
				{
					posPro[s]=0;
					viterbiPro[m][j]=0;
				}
				else
				{
					posPro[s]=exp(log(beginPro[j])+log(b[j]));
					viterbiPro[m][j]=posPro[s];
				}
				s=s+1;
				npos.Add(posTmp2);
				count[m][t]=j;
				t=t+1;
				possibleAnn.Add( posTmp2 );
			}
			else
			{
				for ( int l=0;l<viterbiAnn[m-1].GetSize();l++ )
				{
					if ( viterbiPro[m-1][l]==0 || posPairPro[count[m-1][l]][j]==0  )
					{
						posPro[s]=0;
					}
					else
					{
						posPro[s]=exp(log(viterbiPro[m-1][l])+log(posPairPro[count[m-1][l]][j])+log(b[j]));
					}
					s=s+1;
					npos.Add(viterbiAnn[m-1][l]);
					nowcount[h]=j;
					h=h+1;
					possibleAnn.Add(posTmp2);
				}
			}
			if ( possibleAnn.GetSize() != 1 )
			{
				for (  l=1;l<possibleAnn.GetSize();l++ )
				{
					if ( posPro[0]<posPro[l] )
					{
						posPro[0]=posPro[l];
						nowcount[0]=nowcount[l];
						possibleAnn[0]=possibleAnn[l];
						npos[0]=npos[l];
					}
				}				
				h=0;
			}
			viterbiAnn[m].Add(possibleAnn[0]);
			ncount=viterbiAnn[m].GetSize()-1;
			viterbiPro[m][ncount]=posPro[0];
			if ( m != 0 )
			{
				count[m][ncount]=nowcount[0];
			}
			viterbiPos[m].Add(npos[0]);
//			fprintf(fpOutput,"viterbiPro[%d][%d]=%7.6e %s %s\n",m,ncount,viterbiPro[m][ncount],viterbiAnn[m][ncount],viterbiPos[m][ncount]);
			possibleAnn.RemoveAll();
			npos.RemoveAll();
		}
		wordContent.RemoveAll();

		CurNode = CurNode->m_pNextWordNode;
		m=m+1;
	}


	for ( i=m-1;i>=0;i-- )
	{//確定最佳詞性序列
		if ( i==m-1 )

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区免费观在线| 7777精品伊人久久久大香线蕉 | 国产在线一区二区| 亚洲精品免费在线播放| 精品动漫一区二区三区在线观看| 91麻豆成人久久精品二区三区| 盗摄精品av一区二区三区| 亚洲一区视频在线| 日本一区二区三区四区在线视频 | 高清免费成人av| 三级在线观看一区二区| 亚洲欧美日韩在线播放| 国产亚洲成aⅴ人片在线观看| 6080国产精品一区二区| 日本国产一区二区| 成人黄色大片在线观看| 日韩av一区二区三区四区| 亚洲精品欧美激情| 亚洲视频在线一区| 国产精品午夜在线观看| 久久在线免费观看| 欧美大片在线观看一区| 欧美久久久久久蜜桃| 91国产丝袜在线播放| www.日韩大片| 成人福利视频网站| 东方aⅴ免费观看久久av| 韩国一区二区三区| 久久99久久99精品免视看婷婷| 视频在线在亚洲| 一区二区成人在线| 亚洲精品videosex极品| 亚洲人妖av一区二区| 亚洲视频在线一区二区| 综合自拍亚洲综合图不卡区| 国产精品久久免费看| 国产精品美女久久福利网站| 国产偷国产偷亚洲高清人白洁| 精品国产欧美一区二区| 欧美白人最猛性xxxxx69交| 欧美一级高清片| 欧美成人三级在线| 精品成人a区在线观看| 久久综合色婷婷| 国产欧美日韩在线看| 国产精品美女久久久久久久| **网站欧美大片在线观看| 亚洲日本在线a| 亚洲国产视频一区| 日韩国产精品久久| 韩国中文字幕2020精品| 成人综合在线观看| 色八戒一区二区三区| 欧美色手机在线观看| 欧美一区二区三区在线看| 精品久久久久久久久久久久久久久| 精品欧美久久久| 亚洲国产岛国毛片在线| 亚洲区小说区图片区qvod| 亚洲成人免费在线| 另类小说综合欧美亚洲| 高清不卡一二三区| 色av成人天堂桃色av| 91精品国产综合久久蜜臀| 精品国产免费人成电影在线观看四季| 久久久国产午夜精品| ...xxx性欧美| 青草国产精品久久久久久| 国产乱码精品一区二区三| 91一区一区三区| 欧美一区二区三区电影| 久久综合九色综合97婷婷 | 亚洲乱码国产乱码精品精98午夜| 亚洲一二三级电影| 国产一区二区三区久久久| 99精品国产99久久久久久白柏| 精品视频1区2区3区| 国产亚洲综合性久久久影院| 亚洲乱码中文字幕综合| 另类小说图片综合网| 色综合咪咪久久| 精品国偷自产国产一区| 亚洲久草在线视频| 激情五月婷婷综合网| 在线视频国内自拍亚洲视频| 精品久久久久久亚洲综合网 | 久久99精品久久久久| 不卡欧美aaaaa| 日韩一区二区在线播放| 亚洲色图制服诱惑| 国产自产视频一区二区三区| 在线观看日产精品| 日本一区二区免费在线| 青青草97国产精品免费观看 | 欧美精品一区二区三区高清aⅴ| 亚洲桃色在线一区| 国产美女在线观看一区| 欧美日韩一区二区三区四区| 亚洲国产成人在线| 麻豆精品一二三| 欧美色图在线观看| 1024成人网| 粉嫩av一区二区三区在线播放| 久久久久久黄色| 亚洲成人精品在线观看| 99视频在线精品| 国产日韩综合av| 久久国内精品视频| 欧美精品亚洲一区二区在线播放| 国产精品欧美经典| 国产乱码精品一区二区三区五月婷| 欧美另类久久久品| 亚洲尤物视频在线| 91丝袜呻吟高潮美腿白嫩在线观看| 久久久综合九色合综国产精品| 日韩黄色片在线观看| 欧美视频你懂的| 一区二区三区高清不卡| 97超碰欧美中文字幕| 中文字幕第一页久久| 国产精品77777| 2014亚洲片线观看视频免费| 奇米影视在线99精品| 欧美三级电影在线观看| 亚洲小说春色综合另类电影| 色激情天天射综合网| 亚洲欧美日韩在线| 91社区在线播放| 亚洲乱码中文字幕综合| 97精品电影院| 亚洲男人天堂av| 色婷婷综合中文久久一本| 中文字幕一区二区三区蜜月| 波多野结衣在线aⅴ中文字幕不卡| 久久久99久久| 国产+成+人+亚洲欧洲自线| 国产午夜精品在线观看| 国产成人免费视频一区| 中文字幕精品三区| k8久久久一区二区三区| 亚洲色图都市小说| 在线观看免费亚洲| 亚洲成人av免费| 91精品免费在线| 久久66热re国产| 国产亚洲一区二区三区在线观看| 国产风韵犹存在线视精品| 欧美激情在线观看视频免费| 成人a区在线观看| 一区二区三区色| 欧美精品一二三区| 国内精品免费在线观看| 日本一区二区久久| 色综合天天综合网天天看片| 一区二区激情小说| 日韩午夜电影在线观看| 国产精品88888| 一区二区在线电影| 欧美一区二区在线观看| 国产美女精品在线| 亚洲免费观看高清在线观看| 欧美日韩一级二级| 激情五月激情综合网| 中文字幕中文字幕一区二区| 欧美无砖专区一中文字| 毛片av一区二区| 亚洲国产高清不卡| 欧美日韩一级二级| 国产精品69久久久久水密桃| 一色屋精品亚洲香蕉网站| 欧美日韩的一区二区| 国产乱对白刺激视频不卡| 一区二区三区在线视频免费 | 亚洲香肠在线观看| 欧美成人一级视频| 色综合天天综合色综合av| 热久久国产精品| 国产精品久久久久久久久久久免费看| 欧美日韩在线综合| 国产黄色精品网站| 亚洲成人动漫在线免费观看| 久久九九影视网| 欧美日韩久久不卡| 国产99久久久精品| 婷婷激情综合网| 国产精品不卡视频| 欧美xxxx在线观看| 在线免费视频一区二区| 国内国产精品久久| 亚洲一二三四久久| 国产精品理伦片| 欧美v国产在线一区二区三区| 91蜜桃视频在线| 国产成人自拍在线| 天天影视网天天综合色在线播放| 国产精品网站在线观看| 精品久久久久香蕉网| 欧美精品乱码久久久久久按摩 | 一区二区在线观看不卡| 久久亚洲一区二区三区四区|