MyDictionary.h
上传用户:qzyuheng
上传日期:2013-04-28
资源大小:71k
文件大小:4k
源码类别:

词法分析

开发平台:

Visual C++

  1. #if !defined(AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_)
  2. #define AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #include <afxdao.h>
  7. /////////////////////////////////////////////////////////////////////////////
  8. // CWordTagSet DAO recordset
  9. class CWordTagSet : public CDaoRecordset
  10. {
  11. public:
  12. CWordTagSet(CDaoDatabase* pDatabase = NULL);
  13. int GetFreq(CString w, CString t);
  14. int GetFreqs(CString w, CObArray & a);
  15. DECLARE_DYNAMIC(CWordTagSet)
  16. // Field/Param Data
  17. //{{AFX_FIELD(CWordTagSet, CDaoRecordset)
  18. long m_wid;
  19. CString m_pos;
  20. long m_pfreq;
  21. long m_pid;
  22. CString m_word;
  23. long m_wfreq;
  24. long m_wid2;
  25. //}}AFX_FIELD
  26. CString m_WordParam; // 词语参数
  27. CString m_TagParam;  // 词性标记参数
  28. // Overrides
  29. // ClassWizard generated virtual function overrides
  30. //{{AFX_VIRTUAL(CWordTagSet)
  31. public:
  32. // virtual CString GetDefaultDBName(); // Default database name
  33. // virtual CString GetDefaultSQL(); // Default SQL for Recordset
  34. virtual void DoFieldExchange(CDaoFieldExchange* pFX);  // RFX support
  35. //}}AFX_VIRTUAL
  36. // Implementation
  37. #ifdef _DEBUG
  38. virtual void AssertValid() const;
  39. virtual void Dump(CDumpContext& dc) const;
  40. #endif
  41. };
  42. class CTagFreq: public CObject
  43. {
  44. public:
  45. CString Tag;
  46. int Freq;
  47. CTagFreq(LPCSTR t, long f) {
  48. Tag=t;
  49. Freq=f;
  50. } // 构造函数
  51. };
  52. class CMyDictionary
  53. {
  54. CDaoDatabase * pDatabase;  // 数据库类指针
  55. CDaoRecordset * pWords; // 词表记录集指针
  56. CDaoRecordset * pTags;  // 词性表记录集指针
  57. CDaoRecordset * pNames; // 姓名表记录集指针
  58. CDaoRecordset * pHanzi; // 姓名用字表记录集指针
  59. CDaoTableDef * pNamesDef; // 姓名表结构指针
  60. CDaoTableDef * pWordsDef; // 词表结构指针 
  61. CDaoTableDef * pTagsDef; // 词性表结构指针
  62. CDaoTableDef * pHanziDef; // 姓名用字表结构指针
  63. public:
  64. CMyDictionary(){}; // 构造函数
  65. ~CMyDictionary()
  66. {// 构析函数
  67. if(pWords) {
  68. pWords->Close();
  69. delete pWords;
  70. }
  71. if(pTags) {
  72. pTags->Close();
  73. delete pTags;
  74. }
  75. if(pNames) {
  76. pNames->Close();
  77. delete pNames;
  78. }
  79. if(pHanzi) {
  80. pHanzi->Close();
  81. delete pHanzi;
  82. }
  83. if(pWordsDef) {
  84. pWordsDef->Close();
  85. delete pWordsDef;
  86. }
  87. if(pTagsDef) {
  88. pTagsDef->Close();
  89. delete pTagsDef;
  90. }
  91. if(pNamesDef) {
  92. pNamesDef->Close();
  93. delete pNamesDef;
  94. }
  95. if(pHanziDef) {
  96. pHanziDef->Close();
  97. delete pHanziDef;
  98. }
  99. if(pDatabase) {
  100. pDatabase->Close();
  101. delete pDatabase;
  102. AfxDaoTerm(); // can now safely terminate DAO
  103. }
  104. myDatabaseName = "";
  105. }; 
  106. CString myDatabaseName; // 数据库文件名
  107. BOOL OpenMDB(); //打开数据库,表结构和记录集
  108. BOOL CloseMDB(); //关闭数据库,表结构和记录集,释放个指针申请的内存 
  109. long GetWordID(CString w);  // 成员函数:获取词语的代号
  110. long GetFreq(CString w); // 成员函数:获取词语的频度值
  111. long GetFreq(CString w, CString t); // 成员函数:获取词语在一定词性下的频度值
  112. long GetFreq(CString w, CObArray & a); // 成员函数:获取词语在任意词性下的频度值
  113. long Insert(CString w, long freq=1);  // 成员函数:插入词频信息,包括新词的频度值信息
  114. long Insert(CString w, CString t, long freq=1); // 成员函数:插入词语,词性标记,词频信息
  115. // 处理中文姓名识别的成员函数
  116. double GetFee(CString name,BOOL full); // 查(姓氏)人名的费用
  117. BOOL Insert(CString sName,CString gName,double f); // 向词库姓名表中插入一个中文姓名
  118. long GetSnameFreq(CString hz); //获取一个汉字作为"姓"使用的次数
  119. long GetGnameFreq(CString hz); //获取一个汉字作为"名"使用的次数
  120. // 处理词性标记的函数
  121. CString GetTagOfWord(CString w); // 新增成员函数:获取词语的词性标记
  122. };
  123. //{{AFX_INSERT_LOCATION}}
  124. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  125. #endif // !defined(AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_)