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

📄 svmparamspage.cpp

📁 基于SVM的文本分类算法
💻 CPP
字号:
// SVMParamsPage.cpp : implementation file
//

#include "stdafx.h"
#include "svmcls.h"
#include "SVMParamsPage.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSVMParamsPage property page

IMPLEMENT_DYNCREATE(CSVMParamsPage, CPropertyPage)

CSVMParamsPage::CSVMParamsPage() : CPropertyPage(CSVMParamsPage::IDD)
{
	//{{AFX_DATA_INIT(CSVMParamsPage)
	m_bB = FALSE;
	m_bI = FALSE;
	m_dC = 0.0;
	m_dJ = 0.0;
	m_strU = _T("");
	m_fC = 0.0;
	m_fG = 0.0;
	m_fS = 0.0;
	m_iD = 0;
	m_iKernelType = 0;
	m_bFinal = FALSE;
	m_fE = 0.0;
	m_fM = 0.0;
	m_lgIterationTime = 0;
	m_lgNewVariable = 0;
	m_lgMaxQPSize = 0;
	m_bX = FALSE;
	m_fO = 0.0;
	m_fK = 0;
	m_fP = 0.0;
	m_classifier_type = 0;
	//}}AFX_DATA_INIT
}

CSVMParamsPage::~CSVMParamsPage()
{
}

void CSVMParamsPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSVMParamsPage)
	DDX_Check(pDX, IDC_CHECK_B, m_bB);
	DDX_Check(pDX, IDC_CHECK_I, m_bI);
	DDX_Text(pDX, IDC_EDIT_C1, m_dC);
	DDX_Text(pDX, IDC_EDIT_J, m_dJ);
	DDX_Control(pDX, IDC_COMBO_T, m_ComboKernel);
	DDX_Text(pDX, IDC_EDIT_U, m_strU);
	DDX_Text(pDX, IDC_EDIT_C, m_fC);
	DDX_Text(pDX, IDC_EDIT_G, m_fG);
	DDX_Text(pDX, IDC_EDIT_S, m_fS);
	DDX_Text(pDX, IDC_EDIT_D, m_iD);
	DDX_CBIndex(pDX, IDC_COMBO_T, m_iKernelType);
	DDX_Check(pDX, IDC_FINAL_CHECK, m_bFinal);
	DDX_Text(pDX, IDC_EDIT_E, m_fE);
	DDX_Text(pDX, IDC_EDIT_M, m_fM);
	DDX_Text(pDX, IDC_EDIT_H, m_lgIterationTime);
	DDX_Text(pDX, IDC_EDIT_N, m_lgNewVariable);
	DDX_Text(pDX, IDC_EDIT_Q, m_lgMaxQPSize);
	DDX_Check(pDX, IDC_CHECK_X, m_bX);
	DDX_Text(pDX, IDC_EDIT_O, m_fO);
	DDX_Text(pDX, IDC_EDIT_K, m_fK);
	DDX_Text(pDX, IDC_EDIT_P, m_fP);
	DDX_Radio(pDX, IDC_RADIO_CLASSIFIER_TYPE, m_classifier_type);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSVMParamsPage, CPropertyPage)
	//{{AFX_MSG_MAP(CSVMParamsPage)
	ON_CBN_SELCHANGE(IDC_COMBO_T, OnSelchangeComboT)
	ON_WM_SHOWWINDOW()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSVMParamsPage message handlers

void CSVMParamsPage::OnSelchangeComboT() 
{
	switch (m_ComboKernel.GetCurSel()) 
	{
	case 0://linear kernel 
		
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 1://polynomial
		GetDlgItem(IDC_EDIT_D)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;

	case 2://rbf kernel
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 3:
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 4:
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(TRUE);
		break;
	}
}

void CSVMParamsPage::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CPropertyPage::OnShowWindow(bShow, nStatus);
	switch (m_ComboKernel.GetCurSel()) 
	{
	case 0://linear kernel 
		
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 1://polynomial
		GetDlgItem(IDC_EDIT_D)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;

	case 2://rbf kernel
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 3:
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
		break;
	case 4:
		GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_U)->EnableWindow(TRUE);
		break;
	}	
}

⌨️ 快捷键说明

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