资源简介

用C++编写的基于基于同义词林的语义相似计算程序与详细的文档说明

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “SimilarWordDict.h“


SimilarWordDict::SimilarWordDict(void)
{
}

SimilarWordDict::~SimilarWordDict(void)
{
}

// 加载同义词林
void SimilarWordDict::LoadSimilarWordDict(const char *file_pathmap> &msv)
{
    std::locale loc1 = std::locale::global(std::locale(“.936“));
    string temp;
    string word;
    ifstream ifile(file_path);
    StringProcess *sp = new StringProcess();
    vector data_list;
    int count = 0;
    
    while (getline(ifiletemp))
    {    
        data_list = sp->splitEx(temp“ “);
        word = data_list[0];
        count = atoi(data_list[1].c_str());
        for (int i = 0; i        {           
            msv[word].push_back(data_list[i+2]);
        }
    }
    
    ifile.close();
    std::locale::global(std::locale(loc1));
}

// 计算义项的相似度
double SimilarWordDict::CalcSimilarSenses(map> &msvvector &vsstring senses1 string senses2)
{

    double similar = 0.0;    
    vector code_list1 = msv[senses1];
    vector code_list2 = msv[senses2];
    double max_temp = 0.0;
    double temp = 0.0;
    
    if (code_list1.empty()||code_list2.empty())
    {
        return similar;
    }
    
    for (vector::size_type i = 0; i < code_list1.size(); i++)
    {
        for (vector::size_type j = 0; j < code_list2.size(); j++)
        {
            temp = CalcSimilar(vscode_list1[i]code_list2[j]);
            if (temp>max_temp) max_temp = temp;
        }
    }    
    
    similar = max_temp;
    return similar;
}

void SimilarWordDict::LoadWordCode( const char *file_pathvector &vs)
{
    std::locale loc1 = std::locale::global(std::locale(“.936“));
    string temp;
    ifstream ifile(file_path);
    
    while (getline(ifiletemp))
    {    
        vs.push_back(temp);
    }
    
    ifile.close();
    std::locale::global(std::locale(loc1));
}

vector SimilarWordDict::SplitLevel( string code_num )
{
    vector result;
    
    result.push_back(code_num.substr(01));
    result.push_back(code_num.substr(11));
    result.push_back(code_num.substr(22));
    result.push_back(code_num.substr(41));
    result.push_back(code_num.substr(52));
    
    return result;
}


 
int SimilarWordDict::TreeBranchNum( vector &vsstring subint len)
{
    int result = 0;
    Params *params = new Params;
    params->len = sub.length() + len;
    params->sub = sub;
    for_each(vs.begin()vs.end()bind2nd(ptr_fun(ContructSet)params));
    result = params->set_str.size();
    return result;
}

double SimilarWordDict::CalcSimilar( vector &vs string code1 string code2 )
{
    const double a = 0.65 b = 0.8 c = 0.9 d = 0.96 e = 0.5 f = 0.1; 
    double similar = 0.0;
    int n = 1 k = 0;
    
    int value1 = 0;
    int value2 = 0;
    string s1;
    string s2;
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    6181888  2012-09-08 22:47  基于同义词林的语义相似计算\Debug\WordSimilar.exe

     文件   14485712  2012-09-08 22:47  基于同义词林的语义相似计算\Debug\WordSimilar.ilk

     文件   25357312  2012-09-08 22:47  基于同义词林的语义相似计算\Debug\WordSimilar.pdb

     文件     178170  2012-09-05 21:02  基于同义词林的语义相似计算\Debug\同义词编码.txt

     文件    1504157  2012-08-20 00:54  基于同义词林的语义相似计算\Debug\同义词词林.txt

     文件      12598  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\BuildLog.htm

     文件         67  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\mt.dep

     文件    1196029  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\SimilarWordDict.obj

     文件     614903  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\stdafx.obj

     文件     680854  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\StringProcess.obj

     文件       5298  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\TimeCalc.obj

     文件    2198528  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\vc90.idb

     文件    3485696  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\vc90.pdb

     文件        682  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.exe.embed.manifest

     文件        748  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.exe.embed.manifest.res

     文件        640  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.exe.intermediate.manifest

     文件     303211  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.obj

     文件   40239104  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.pch

     文件      79768  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilar.res

     文件     616987  2012-09-08 22:47  基于同义词林的语义相似计算\WordSimilar\Debug\WordSimilarDlg.obj

     文件       2941  2012-09-01 09:18  基于同义词林的语义相似计算\WordSimilar\ReadMe.txt

    .......     67777  2007-11-28 16:21  基于同义词林的语义相似计算\WordSimilar\res\WordSimilar.ico

     文件        367  2012-09-01 09:18  基于同义词林的语义相似计算\WordSimilar\res\WordSimilar.rc2

     文件       1005  2012-09-08 10:53  基于同义词林的语义相似计算\WordSimilar\resource.h

     文件       5136  2012-09-08 22:29  基于同义词林的语义相似计算\WordSimilar\SimilarWordDict.cpp

     文件       1561  2012-09-08 10:38  基于同义词林的语义相似计算\WordSimilar\SimilarWordDict.h

     文件        144  2012-09-01 09:18  基于同义词林的语义相似计算\WordSimilar\stdafx.cpp

     文件       1854  2012-09-01 09:18  基于同义词林的语义相似计算\WordSimilar\stdafx.h

     文件       4449  2012-09-05 20:05  基于同义词林的语义相似计算\WordSimilar\StringProcess.cpp

     文件       1740  2012-09-05 20:04  基于同义词林的语义相似计算\WordSimilar\StringProcess.h

............此处省略26个文件信息

评论

共有 条评论