设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 1888|回复: 2

ICTCLAS 分词系统研究1 [复制链接]

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

混混@普宁.中国 实名认证  发表于 2011-9-13 23:12:47 |显示全部楼层
该分词系统的主要是思想是先通过CHMM(层叠形马尔可夫模型)进行分词,通过分层,既增加了分词的准确性,又保证了分词的效率.共分五层,如下图一所示:

1.png



基本思路:先进行原子切分,然后在此基础上进行N-最短路径粗切分,找出前N个最符合的切分结果,生成二元分词表,然后生成分词结果,接着进行词性标注并完成主要分词步骤.

下面是对源代码的主要内容的研究:

1.首先,ICTCLAS分词程序首先调用CICTCLAS_WinDlg::OnBtnRun()开始程序的执行.并且可以从看出它的处理方法是把源字符串分段处理。并且在分词前,完成词典的加载过程,即生成m_ICTCLAS对象时调用构造函数完成词典库的加载。关于词典结构的分析,请参加分词系统研究(二)。
  1. void CICTCLAS_WinDlg::OnBtnRun()
  2. {
  3.         ......
  4.         //在此处进行分词和词性标记
  5.         if(!m_ICTCLAS.ParagraphProcessing((char *)(LPCTSTR)m_sSource,sResult))
  6.                 m_sResult.Format("错误:程序初始化异常!");
  7.         else
  8.                 m_sResult.Format("%s",sResult);//输出最终分词结果
  9.         ......
  10. }
复制代码
2.在OnBtnRun()方法里面调用分段分词处理方法bool CResult::ParagraphProcessing(char *sParagraph,char *sResult)完成分词的整个处理过程,包括分词的词性标注.其中第一个参数为源字符串,第二个参数为分词后的字符串.在这两个方法中即完成了整个分词处理过程,下面需要了解的是在此方法中,如何调用其它方法一步步按照上图所示的分析框架完成分词过程.为了简单起见,我们先不做未登录词的分析。
  1. // Paragraph Segment and POS Tagging
  2. bool CResult::ParagraphProcessing(char *sParagraph,char *sResult)
  3. {
  4.         ........
  5.         Processing(sSentence,1); //Processing and output the result of current sentence.
  6.         Output(m_pResult[0],sSentenceResult,bFirstIgnore); //Output to the imediate result
  7.         .......
  8. }
复制代码
3.主要的分词处理是在Processing()方法里面发生的,下面我们对它进行进一步的分析.
  1. bool CResult::Processing(char *sSentence,unsigned int nCount)
  2. {
  3.         ......
  4.         //进行二叉分词
  5.         m_Seg.BiSegment(sSentence,         m_dSmoothingPara,m_dictCore,m_dictBigram,nCount);
  6.         ......
  7.         //在此处进行词性标注
  8.         m_POSTagger.POSTagging(m_Seg.m_pWordSeg[nIndex],m_dictCore,m_dictCore);
  9.         ......
  10. }
复制代码
4.现在我们先不管词性标注,把注意力集中在二叉分词上,因为这个是分词的两大关键步骤的第一步


转自:张新波博客

Rank: 8Rank: 8

那个谁 发表于 2011-9-14 12:24:32 |显示全部楼层
这....C ?

使用道具 举报

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

混混@普宁.中国 实名认证  发表于 2011-9-14 22:58:25 |显示全部楼层
那个谁 发表于 2011-9-14 12:24
这....C ?

e, 这是C

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-7-17 03:49 , Processed in 1.108699 second(s), 17 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部