#if !defined(AFX_RESULT_H__DEB31BCA_0410_4D5E_97EA_78F9B16B8938__INCLUDED_)
#define AFX_RESULT_H__DEB31BCA_0410_4D5E_97EA_78F9B16B8938__INCLUDED_
#include "..\UTILITY\Dictionary.h"
#if _MSC_VER > 1000
#pragma once
#endif
#include "..\\Utility\\Dictionary.h"
#include "..\\Segment\\Segment.h"
#include "..\\Tag\\Span.h"
#include "..\\Unknown\\UnknowWord.h"
#define _ICT_DEBUG 0
class CResult
{
public:
bool Processing(char *sSentence,unsigned int nCount);
bool ParagraphProcessing(char *sParagraph,char *sResult);
bool FileProcessing(char *sFilename,char *sResultFile);
PWORD_RESULT *m_pResult;
ELEMENT_TYPE m_dResultPossibility[MAX_SEGMENT_NUM];
int m_nResultCount;
bool Output(PWORD_RESULT pItem,char *sResult,bool bFirstWordIgnore=false);
CResult();
virtual ~CResult();
int m_nOperateType;
int m_nOutputFormat;
private:
CSegment m_Seg;
CDictionary m_dictCore;
CSpan m_POSTagger;
CUnknowWord m_Person,m_Transliteration,m_Place;
protected:
bool ChineseNameSplit(char *sPersonName,char *sSurname, char *sSurname2,char *sGivenName,CDictionary &personDict);
bool PKU2973POS(int nHandle,char *sPOS973);
bool Adjust(PWORD_RESULT pItem,PWORD_RESULT pItemRet);
ELEMENT_TYPE ComputePossibility(PWORD_RESULT pItem);
bool Sort();
};
#endif