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

多国语言处理

开发平台:

Visual C++

  1. // SVMParamsPage.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "TextClassify.h"
  5. #include "SVMParamsPage.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSVMParamsPage property page
  13. IMPLEMENT_DYNCREATE(CSVMParamsPage, CPropertyPage)
  14. CSVMParamsPage::CSVMParamsPage() : CPropertyPage(CSVMParamsPage::IDD)
  15. {
  16. //{{AFX_DATA_INIT(CSVMParamsPage)
  17. m_bB = FALSE;
  18. m_bI = FALSE;
  19. m_bX = FALSE;
  20. m_fC = 0.0;
  21. m_dC = 0.0;
  22. m_iD = 0;
  23. m_fE = 0.0;
  24. m_fG = 0.0;
  25. m_IgIterationTime = 0;
  26. m_dJ = 0.0;
  27. m_fK = 0;
  28. m_fM = 0.0;
  29. m_lgNewVariable = 0;
  30. m_fO = 0.0;
  31. m_fP = 0.0;
  32. m_lgMaxQPSize = 0;
  33. m_fS = 0.0;
  34. m_strU = _T("");
  35. m_bFinal = FALSE;
  36. m_classifier_type = -1;
  37. m_iKernelType = 0;
  38. //}}AFX_DATA_INIT
  39. }
  40. CSVMParamsPage::~CSVMParamsPage()
  41. {
  42. }
  43. void CSVMParamsPage::DoDataExchange(CDataExchange* pDX)
  44. {
  45. CPropertyPage::DoDataExchange(pDX);
  46. //{{AFX_DATA_MAP(CSVMParamsPage)
  47. DDX_Control(pDX, IDC_COMBO_T, m_ComboKernel);
  48. DDX_Check(pDX, IDC_CHECK_B, m_bB);
  49. DDX_Check(pDX, IDC_CHECK_I, m_bI);
  50. DDX_Check(pDX, IDC_CHECK_X, m_bX);
  51. DDX_Text(pDX, IDC_EDIT_C, m_fC);
  52. DDX_Text(pDX, IDC_EDIT_C1, m_dC);
  53. DDX_Text(pDX, IDC_EDIT_D, m_iD);
  54. DDX_Text(pDX, IDC_EDIT_E, m_fE);
  55. DDX_Text(pDX, IDC_EDIT_G, m_fG);
  56. DDX_Text(pDX, IDC_EDIT_H, m_IgIterationTime);
  57. DDX_Text(pDX, IDC_EDIT_J, m_dJ);
  58. DDX_Text(pDX, IDC_EDIT_K, m_fK);
  59. DDX_Text(pDX, IDC_EDIT_M, m_fM);
  60. DDX_Text(pDX, IDC_EDIT_N, m_lgNewVariable);
  61. DDX_Text(pDX, IDC_EDIT_O, m_fO);
  62. DDX_Text(pDX, IDC_EDIT_P, m_fP);
  63. DDX_Text(pDX, IDC_EDIT_Q, m_lgMaxQPSize);
  64. DDX_Text(pDX, IDC_EDIT_S, m_fS);
  65. DDX_Text(pDX, IDC_EDIT_U, m_strU);
  66. DDX_Check(pDX, IDC_FINAL_CHECK, m_bFinal);
  67. DDX_Radio(pDX, IDC_RADIO_CLASSIFIER_TYPE, m_classifier_type);
  68. DDX_CBIndex(pDX, IDC_COMBO_T, m_iKernelType);
  69. //}}AFX_DATA_MAP
  70. }
  71. BEGIN_MESSAGE_MAP(CSVMParamsPage, CPropertyPage)
  72. //{{AFX_MSG_MAP(CSVMParamsPage)
  73. ON_CBN_EDITCHANGE(IDC_COMBO_T, OnEditchangeComboT)
  74. ON_WM_SHOWWINDOW()
  75. ON_CBN_SELCHANGE(IDC_COMBO_T, OnSelchangeComboT)
  76. //}}AFX_MSG_MAP
  77. END_MESSAGE_MAP()
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CSVMParamsPage message handlers
  80. void CSVMParamsPage::OnEditchangeComboT() 
  81. {
  82. // TODO: Add your control notification handler code here
  83. }
  84. void CSVMParamsPage::OnShowWindow(BOOL bShow, UINT nStatus) 
  85. {
  86. CPropertyPage::OnShowWindow(bShow, nStatus);
  87. switch (m_ComboKernel.GetCurSel()) 
  88. {
  89. case 0://linear kernel 
  90. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  91. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  92. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  93. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  94. break;
  95. case 1://polynomial
  96. GetDlgItem(IDC_EDIT_D)->EnableWindow(TRUE);
  97. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  98. GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
  99. GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
  100. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  101. break;
  102. case 2://rbf kernel
  103. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  104. GetDlgItem(IDC_EDIT_G)->EnableWindow(TRUE);
  105. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  106. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  107. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  108. break;
  109. case 3:
  110. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  111. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  112. GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
  113. GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
  114. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  115. break;
  116. case 4:
  117. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  118. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  119. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  120. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  121. GetDlgItem(IDC_EDIT_U)->EnableWindow(TRUE);
  122. break;
  123. }
  124. // TODO: Add your message handler code here
  125. }
  126. void CSVMParamsPage::OnSelchangeComboT() 
  127. {
  128. // TODO: Add your control notification handler code here
  129. switch (m_ComboKernel.GetCurSel()) 
  130. {
  131. case 0://linear kernel 
  132. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  133. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  134. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  135. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  136. break;
  137. case 1://polynomial
  138. GetDlgItem(IDC_EDIT_D)->EnableWindow(TRUE);
  139. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  140. GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
  141. GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
  142. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  143. break;
  144. case 2://rbf kernel
  145. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  146. GetDlgItem(IDC_EDIT_G)->EnableWindow(TRUE);
  147. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  148. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  149. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  150. break;
  151. case 3:
  152. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  153. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  154. GetDlgItem(IDC_EDIT_S)->EnableWindow(TRUE);
  155. GetDlgItem(IDC_EDIT_C)->EnableWindow(TRUE);
  156. GetDlgItem(IDC_EDIT_U)->EnableWindow(FALSE);
  157. break;
  158. case 4:
  159. GetDlgItem(IDC_EDIT_D)->EnableWindow(FALSE);
  160. GetDlgItem(IDC_EDIT_G)->EnableWindow(FALSE);
  161. GetDlgItem(IDC_EDIT_S)->EnableWindow(FALSE);
  162. GetDlgItem(IDC_EDIT_C)->EnableWindow(FALSE);
  163. GetDlgItem(IDC_EDIT_U)->EnableWindow(TRUE);
  164. break;
  165. }
  166. }