[置顶] 自然语言处理课程作业 代码说明及源文件

时间:2022-01-31 21:54:47

这是在自然语言课程时的大作业--中文文本情感的分类。整个实验的相关算法利用C++在Windows平台下完成,使用ICTCLAS中文分词开源程序、LibSVM以及开源的XML文件处理程序Markup完成。具体实验代码详见附件。这年头光说不给代码的都是假的,我也是有点鄙视的。。。故给出可运行的完全源代码,使用vs2010写的代码。

目录结构如下:

[置顶]        自然语言处理课程作业 代码说明及源文件

各文件夹作用说明:
    FreeICTCLAS: 中科院中文分词处理系统接口(修改,添加字母数字剔除,停用词去除)
    LibSVM: SVM分类器开源库
    Data: 分词处理数据字典
    Dataset: 处理文本测试集与训练集
    Feature: 对训练集提取的特征文件
    Model: 利用SVM生成的模型文件
    Result: 分类结果文件
其他文件说明:
    Markup.h与Markup.cpp: 开源的xml文件处理接口
    CommentText.h与CommentText.cpp: 评论文本类,文本的主要处理对象,用于分词处理,计算权重等
    Processing.h与Processing.cpp: 通用处理接口,包括SVM训练,学习接口,特征选取,权值归一化等


main函数说明:

#include <iostream>
#include "Processing.h"
#include "CommentText.h"
#include "FreeICTCLAS/FreeICTCLAS.h"
using namespace std;


int main()
{
if (!IsDctDataExists())
{
printf("ERROR: Cannot Find Dictionary Data File!\n");
return 0;
}


//从XML文件提取评论文本
CCommentText** pComArr = AnalyseXML("Dataset/CSC_music_test");


LoadFeature("Feature/feature_music_10%");


for (int i = 0; i < CCommentText::s_nTestNum; i++)
{
printf("%s\n", (pComArr[i]->GetReviewID()).c_str());
pComArr[i]->ExtractOFeature();//提取原始特征


pComArr[i]->CalcFeatureWeight();
}


//特征归一化
// NormalizedWeight(pComArr);


// SaveWeight(pComArr, "Weight/weight_book_bool_10%");


// SVMTrain(pComArr, "Model/model_book_10%");


//SVM学习
SVMPredict(pComArr, "Model/model_music_10%");
//保存结果到文件
SaveResult(pComArr, "Result/result_music_10%");


system("PAUSE");
return 0;
}


最后下载连接http://download.csdn.net/detail/baidu_28563321/8768503