基于同义词林的语义相似计算与程序


用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  基于同义词林的语义相似计算DebugWordSimilar.exe

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)