WordSegment.h
上传用户:sanxfzhen
上传日期:2014-12-28
资源大小:2324k
文件大小:2k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. // WordSegment.h: interface for the CWordSeg class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_WORDSEGMENT_H__18EFCCE0_4780_45CA_962A_8128DD2FC299__INCLUDED_)
  5. #define AFX_WORDSEGMENT_H__18EFCCE0_4780_45CA_962A_8128DD2FC299__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include ".\Utility\Dictionary.h"
  10. #include ".\Segment\Segment.h"
  11. #include ".\Tag\Span.h"
  12. #include ".\Unknown\UnknowWord.h"
  13. #include <afxtempl.h>
  14. #include "UTILITYDictionary.h" // Added by ClassView
  15. AFX_INLINE UINT AFXAPI HashKey(CString key);
  16. class CWordSegment  
  17. {
  18. public:
  19. CWordSegment();
  20. virtual ~CWordSegment();
  21. bool InitWorgSegment(char *, int nLanguage=0);
  22. void FreeWordSegment();
  23. void SetSegSetting(unsigned short);
  24. unsigned short GetSegSetting();
  25. bool Segment(char*);
  26. bool isInStopWords(char*);
  27. public:
  28. int SegmentFile(const char *source, const char * target, BOOL bStopWord=true, BOOL bTag=false);
  29. PWORD_RESULT GetWordSeg(int index);
  30. int GetSegmentCount();
  31. static const unsigned short uTag;  // word classify tag
  32. static const unsigned short uPlace; // Chinese place name
  33. static const unsigned short uPerson;  // chinese name
  34. static const unsigned short uTransPerson; // translation name, include translation
  35. private:
  36. static int ParseFile(char *pBuffer, int nStart, int &nEnd);
  37. private:
  38. //m_nInit>0 初始化了; m_nInit=1 分词初始化; m_nInit=2 英文初始化
  39. int m_nInit;
  40. CMap<CString,CString,int,int> m_lstStopWords;
  41. unsigned short m_nOperateType;
  42. double m_dSmoothingPara;
  43. char m_pNewSentence[MAX_PATH*10];
  44. static char m_pSentence[MAX_PATH*10];
  45. CSegment m_Seg;//Seg class
  46. CDictionary m_dictCore,m_dictBigram;//Core dictionary,bigram dictionary
  47. CSpan m_POSTagger;//POS tagger
  48. CUnknowWord m_uPerson,m_uTransPerson,m_uPlace;//Person recognition
  49. };
  50. extern CWordSegment g_wordSeg;
  51. #endif // !defined(AFX_WORDSEGMENT_H__18EFCCE0_4780_45CA_962A_8128DD2FC299__INCLUDED_)