⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydictionary.h

📁 利用最大匹配法进行汉语句子的分词 最大匹配算法是最常用的分词算法
💻 H
字号:
#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, * pTags;  // 词表和词性表记录集指针
	CDaoTableDef * pWordsDef, * pTagsDef; // 词表和词性表结构指针

public:
	CMyDictionary(){}; // 构造函数
	~CMyDictionary()
	{// 构析函数
		if(pWords) {
			pWords->Close();
			delete pWords;
		}

		if(pTags) {
			pTags->Close();
			delete pTags;
		}
		if(pWordsDef) {
			pWordsDef->Close();
			delete pWordsDef;
		}
		if(pTagsDef) {
			pTagsDef->Close();
			delete pTagsDef;
		}
		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); // 成员函数:插入词语,词性标记,词频信息

	// 处理词性标记的函数
	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_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -