• 大小: 28KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: 分词  

资源简介

基于C++编写的中文分词程序,内有完整的代码,且有小词库,解压即可运行

资源截图

代码片段和文件信息

//fc.cpp
#include 
#include 
#include 
#include “fc.h“


CSegment::CSegment(int MaxLen)
{
m_MaxLen=MaxLen;
m_nPosIndex=0;
}

CSegment::~CSegment()
{
}

void CSegment::MM(CString& sourceint lenint frompos)
{
CString tmp=SubString(sourcefromposlen);
if(m_nPosIndex>=source.GetLength ()-1) return;

char* tmpstr=(char*)tmp.LockBuffer ();
if(Match(tmpstr))
{//匹配
m_sResult=m_sResult+CString(tmpstr)+“/“;
m_nPosIndex=m_nPosIndex+m_MaxLen;
m_MaxLen=6;
MM(sourcem_MaxLenm_nPosIndex);
}
else
{//不匹配
if(m_MaxLen>1)
{
m_MaxLen=m_MaxLen-2;
MM(sourcem_MaxLenm_nPosIndex);
}
else
{
m_sResult=m_sResult+“字典中没有‘“+CString(tmpstr)+“’字/“;
            m_nPosIndex=m_nPosIndex+2;
m_MaxLen=6;
MM(sourcem_MaxLenm_nPosIndex);
}
}
tmp.UnlockBuffer ();
}


CString CSegment::SubString(CString & sourceint fromposint len)
{//取子串
char *mStr;//子串
char sChar[3];
int nLen=source.GetLength ();
mStr=new char[nLen];//malloc buffer
mStr[0]=0;
sChar[2]=0;
int nPosIndex=fromposLensxLen;
//还需做判断,若所取的最大的字符数已经超过了源串剩下的子串,则处理。
sxLen=(nLen-frompos);//源串剩下的子串的长度
if(len>sxLen)
Len=sxLen;
else
Len=len;
Len=Len+nPosIndex;

while(nPosIndex {
sChar[0]=source.GetAt (nPosIndex);//Get a char
sChar[1]=0;
if(source.GetAt (nPosIndex)<0)
{//double byte char
nPosIndex+=1;
sChar[1]=source.GetAt (nPosIndex);
}
nPosIndex+=1;
strcat(mStrsChar);
}
CString result(mStr);
delete mStr;//记住到后面要把指针删除调
return result;
}

BOOL CSegment::Match(char* str)
{//取出了子串mStr后,就要打开文本文件(字典D),循环读取字典D中有否该子串,有则返回正确,否则返回错误。
FILE * dict=fopen(“dic.txt““r“);
if(dict==NULL) return 0;
unsigned int len=strlen(str);
char * cmp=new char[len+1];
while(fgets(cmplen+1dict)!=NULL)//当读取到文件结束时,退出循环
{//比较读取的串cmp和str是否相同
if(strcmp(cmpstr)==0)//匹配
{
fclose(dict);
return 1; 
}
}
fclose(dict);
return 0;
}




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

     文件        220  2005-09-12 16:10  分词\DIC.TXT

     文件       2140  2011-03-24 18:45  分词\fc.cpp

     文件        372  2011-03-14 05:43  分词\fc.h

     文件       3537  2011-03-24 18:19  分词\ReadMe.txt

     文件       1078  2011-03-24 18:19  分词\res\分词.ico

     文件        396  2011-03-24 18:19  分词\res\分词.rc2

     目录          0  2011-03-24 18:19  分词\res

     文件        774  2011-03-24 18:41  分词\resource.h

     文件        206  2011-03-24 18:19  分词\StdAfx.cpp

     文件       1054  2011-03-24 18:19  分词\StdAfx.h

     文件      35304  2011-03-24 19:01  分词\分词.aps

     文件       1057  2011-03-24 19:06  分词\分词.clw

     文件       2013  2011-03-24 18:19  分词\分词.cpp

     文件       4253  2011-03-24 19:07  分词\分词.dsp

     文件        533  2011-03-24 18:19  分词\分词.dsw

     文件       1280  2011-03-24 18:19  分词\分词.h

     文件      41984  2011-03-24 19:07  分词\分词.ncb

     文件      48640  2011-03-24 19:07  分词\分词.opt

     文件        664  2011-03-24 19:01  分词\分词.plg

     文件       5247  2011-03-24 19:01  分词\分词.rc

     文件       4272  2011-03-24 18:55  分词\分词Dlg.cpp

     文件       1317  2011-03-24 18:28  分词\分词Dlg.h

     目录          0  2011-03-24 19:12  分词

----------- ---------  ---------- -----  ----

               156341                    23


评论

共有 条评论