下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课设-简单字符串编码与余弦相似度计算系统生成特征空间的核心:采用“字母一下标一下标”的方法生成编码。按照一般方法来讲,在处理操作中,对于每个字符串都需要遍历并对遇到的每个字符进行操作,由于需要检索aphb数组所带来的复杂度是O(N);这里采用的方法是先使用map建立字符与位置间的映射,之后加入中间数组vectorTemp用来存储相应位置元素的频数,那么生成特征空间的操作就可以变为一句话:for(inti=0;ilen;i+)TempFeatureSpacestri+;T=FeatureSpacestri是当前字符到位置的映射,那么TempT就是当前元素所在位置的频数了。这种通过下标引用的方
2、法理论复杂度为0(1),但是实际中因为使用了map,而map内部也进行了复杂度为O(IgN)的查找操作,因此实际的复杂度应该为O(1TgN),即O(lgN)。代码:#include#include#include#include#include#include#include#include#includeusingnamespacestd;classAlphabet存储字典序private:charch;intvalue;public:Alphabet。ch=a;value=0;Alphabet(charch,intval);charGetCharact()const;intGetValue
3、()const;voidAddValue();booloperator(Alphabet&T);classStringEncodingprivate:vectoraphb;vectorString;mapvchar,intFeatureSpace;public:StringEncoding();voidReadFromFile(constchar*fileName);voidWriteToFile(constchar*fileName);voidSearchFromFile(conststringstr,intkey);doubleCountCosine(vectorTemp,vectortt
4、);voidAlphaSort();voidRebuildCoding();按权重新生成英文字母编码;classManager管理类private:StringEncodingss;stringSearchString;public:Manager(stringSearchString=none);voidCall();调用;intmain()Managermm(none);mm.Call();system(pause);return0;return0;boolAlphabet:operator(Alphabet&T)returnvalueT.GetValue()?true:false;cha
5、rAlphabet:GetCharact()constreturnch;intAlphabet:GetValue()constreturnvalue;Alphabet:Alphabet(charch,intval):value(val)this-ch=ch;voidAlphabet:AddValue()value+;StringEncoding:StringEncoding()voidStringEncoding:AlphaSort()intSize=aphb.size();for(inti=0;iSize;i+)for(intj=0;japhbj)AlphabetT;T=aphbj;aphb
6、j=aphbj+1;aphbj+1=T;voidStringEncoding:ReadFromFile(constchar*fileName)fstreamfile_in;tryfile_in.open(fileName,ios:in|ios:out);if(!file_in)throwFileOpenError!;catch(constchar*Warning)coutWarningbuf)逐个字符串读取intlen=buf.length();for(inti=0;ilen;i+)if(!flag)aphb.push_back(Alphabet(bufi,1);flag=1;elseintm
7、ark=0;for(vector:iteratorit=aphb.begin();it!=aphb.end();it+)for(vector:iteratorit=aphb.begin();it!=aphb.end();it+)if(it-GetCharact()=bufi)mark=1;it-AddValue();if(!mark)aphb.push_back(Alphabet(bufi,1);flag+;String.push_back(buf);file_in.close();voidStringEncoding:WriteToFile(constchar*fileName)将Strin
8、g中的字符串按照特征空间的字典写入到另一个文件fstreamfile_out1,file_out2;tryfile_out2.open(dictionary.txtios:app);file_out1.open(fileName,ios:app);if(!file_out1|!file_out2)throwWriteToFileError!catch(constchar*Warning)coutWarningendl;system(pause);exit(0);解析字符串for(vector:iteratorit=String.begin();it!=String.end();it+)cons
9、tintSize=aphb.size();vectorTemp;Temp.resize(Size);stringstr=*it;intlen=str.length();for(inti=0;ilen;i+)TempFeatureSpacestri+;核心:字母-下标-下标file_out1str+:;for(inti=0;iSize;i+)file_out1Tempi;file_out1endl;for(vector:iteratorit=aphb.begin();it!=aphb.end();it+)file_out2GetCharact()(char*):GetValue()endl;fi
10、le_out1.close();file_out2.close();voidStringEncoding:SearchFromFile(conststringstr,intkey)先把str按字典序转化为对应编码if(key=2)fstreamfile_in;stringfileName=file_out.txt;tryfile_in.open(fileName,ios:in|ios:out);if(!file_in)throwFileOpenError!;catch(constchar*Warning)coutWarningbuf)逐个字符串读取if(str+:)=buf)flag=1;br
11、eak;if(flag)for(inti=buf.length();iline.length();i+)coutlinei;coutendl;break;if(!flag)cout喳无此字符串或其编码!endl;file_in.close();elsedoublemax=-1;stringmaxString=null;intflag=0;控制开关vectorvec;下面先计算指定字符串的编码vectortt;intlen=str.length();constintss=aphb.size();tt.resize(ss);for(inti=0;ilen;i+)trttFeatureSpacest
12、ri+;cout输入的字符串编码为:;for(inti=0;iss;i+)couttti;coutendl;for(vector:iteratorit=String.begin();it!=String.end();it+)constintSize=aphb.size();vectorTemp;Temp.resize(Size);stringstr=*it;intlen=str.length();for(inti=0;imax)vec.clear();max=ans;maxString=*it;vec=Temp;cout最近字符串的余弦相似度为:(double)maxendl;cout最相似的
13、字符串为:maxStringendl;cout编码为:;for(inti=0;ivec.size();i+)coutveci;voidStringEncoding:RebuildCoding()AlphaSor();intSize=aphb.size();for(inti=0;iSize;i+)/重新生成新的字典序并存放于特征空间中FeatureSpaceaphbi.GetCharact()=i;doubleStringEncoding:CountCosine(vectorTemp,vectortt)intss=aphb.size();doublecos=0;for(inti=0;iss;i+)cos+=Tempi*tti;doubledeno1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 炼金工岗前风险评估与管理考核试卷含答案
- 污水处理工标准化评优考核试卷含答案
- 规范:肉瘤靶向MDT查房:软组织肉瘤的术前新辅助放疗
- 前沿:肺癌靶向教学课件:耐药机制图谱
- 规范:肝癌靶向护理查房:索拉非尼不良反应
- 【暑假巩固提升】第2讲:Unit2复习巩固七升八课本复习(人教版)(学生版+解析)
- 雷雨天气室内家电断电安全防护知识
- 某机械厂质量追溯细则
- Linux网络操作系统项目教程(RHEL8CentOS8)(微课版)(第4版)授课计划
- 2022泰安数学试卷+答案+解析
- 云南省2026年中考英语真题
- 2026年广东事业单位招聘考试真题及答案
- 统编版小升初语文标点符号重点知识梳理 专项练习卷(含答案)
- 2026海南陵水黎族自治县县属国有企业第一批招聘60人考试模拟试题及答案详解
- 中山大学2026年强基计划面试+体育测试模拟试题及答案解析
- 2026年7月浙江高中学业水平考试化学试卷试题(含答案解析)
- 2026年广东佛山市初二地理生物会考真题试卷(含答案)
- 2026年高一历史学业水平考试知识点归纳总结(复习必背)
- 五年级下数学水中浸物问题20道pdf
- 2026年中考物理初中试题及答案
- 2026年石家庄市长安区城管协管招聘笔试备考试题及答案解析
评论
0/150
提交评论