MyDictionary.h
资源名称:Pwswnr.rar [点击查看]
上传用户:qzyuheng
上传日期:2013-04-28
资源大小:71k
文件大小:4k
源码类别:
词法分析
开发平台:
Visual C++
- #if !defined(AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_)
- #define AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include <afxdao.h>
- /////////////////////////////////////////////////////////////////////////////
- // CWordTagSet DAO recordset
- class CWordTagSet : public CDaoRecordset
- {
- public:
- CWordTagSet(CDaoDatabase* pDatabase = NULL);
- int GetFreq(CString w, CString t);
- int GetFreqs(CString w, CObArray & a);
- DECLARE_DYNAMIC(CWordTagSet)
- // Field/Param Data
- //{{AFX_FIELD(CWordTagSet, CDaoRecordset)
- long m_wid;
- CString m_pos;
- long m_pfreq;
- long m_pid;
- CString m_word;
- long m_wfreq;
- long m_wid2;
- //}}AFX_FIELD
- CString m_WordParam; // 词语参数
- CString m_TagParam; // 词性标记参数
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CWordTagSet)
- public:
- // virtual CString GetDefaultDBName(); // Default database name
- // virtual CString GetDefaultSQL(); // Default SQL for Recordset
- virtual void DoFieldExchange(CDaoFieldExchange* pFX); // RFX support
- //}}AFX_VIRTUAL
- // Implementation
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- };
- class CTagFreq: public CObject
- {
- public:
- CString Tag;
- int Freq;
- CTagFreq(LPCSTR t, long f) {
- Tag=t;
- Freq=f;
- } // 构造函数
- };
- class CMyDictionary
- {
- CDaoDatabase * pDatabase; // 数据库类指针
- CDaoRecordset * pWords; // 词表记录集指针
- CDaoRecordset * pTags; // 词性表记录集指针
- CDaoRecordset * pNames; // 姓名表记录集指针
- CDaoRecordset * pHanzi; // 姓名用字表记录集指针
- CDaoTableDef * pNamesDef; // 姓名表结构指针
- CDaoTableDef * pWordsDef; // 词表结构指针
- CDaoTableDef * pTagsDef; // 词性表结构指针
- CDaoTableDef * pHanziDef; // 姓名用字表结构指针
- public:
- CMyDictionary(){}; // 构造函数
- ~CMyDictionary()
- {// 构析函数
- if(pWords) {
- pWords->Close();
- delete pWords;
- }
- if(pTags) {
- pTags->Close();
- delete pTags;
- }
- if(pNames) {
- pNames->Close();
- delete pNames;
- }
- if(pHanzi) {
- pHanzi->Close();
- delete pHanzi;
- }
- if(pWordsDef) {
- pWordsDef->Close();
- delete pWordsDef;
- }
- if(pTagsDef) {
- pTagsDef->Close();
- delete pTagsDef;
- }
- if(pNamesDef) {
- pNamesDef->Close();
- delete pNamesDef;
- }
- if(pHanziDef) {
- pHanziDef->Close();
- delete pHanziDef;
- }
- if(pDatabase) {
- pDatabase->Close();
- delete pDatabase;
- AfxDaoTerm(); // can now safely terminate DAO
- }
- myDatabaseName = "";
- };
- CString myDatabaseName; // 数据库文件名
- BOOL OpenMDB(); //打开数据库,表结构和记录集
- BOOL CloseMDB(); //关闭数据库,表结构和记录集,释放个指针申请的内存
- long GetWordID(CString w); // 成员函数:获取词语的代号
- long GetFreq(CString w); // 成员函数:获取词语的频度值
- long GetFreq(CString w, CString t); // 成员函数:获取词语在一定词性下的频度值
- long GetFreq(CString w, CObArray & a); // 成员函数:获取词语在任意词性下的频度值
- long Insert(CString w, long freq=1); // 成员函数:插入词频信息,包括新词的频度值信息
- long Insert(CString w, CString t, long freq=1); // 成员函数:插入词语,词性标记,词频信息
- // 处理中文姓名识别的成员函数
- double GetFee(CString name,BOOL full); // 查(姓氏)人名的费用
- BOOL Insert(CString sName,CString gName,double f); // 向词库姓名表中插入一个中文姓名
- long GetSnameFreq(CString hz); //获取一个汉字作为"姓"使用的次数
- long GetGnameFreq(CString hz); //获取一个汉字作为"名"使用的次数
- // 处理词性标记的函数
- CString GetTagOfWord(CString w); // 新增成员函数:获取词语的词性标记
- };
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_WORDTAGSET_H__8B656CD7_8E67_403B_A5F7_0D06D8944ECD__INCLUDED_)