问题描述
6、哈工大统计分词系统该系统是一种典型的运用统计方法的纯切词系统,它试图将串频统计和词匹配结合起来。系统由三个部分构成:一、预处理模块,利用显式和隐式的切分标记(标点符号、数字、ASCII字符以及出现频率高、构词能力差的单字词、数词+单字常用量词模式)将待分析的文本切分成短的汉字串,这大大地减少了需要统计的(无效)字串的数量和高频单字或量词边界串;二、串频统计模块,此模块计算各个已分开的短汉字串中所有长度大于1的子串在局部上下文中出现的次数,并根据串频和串长对每个这样的子串进行加权,加权函数为(F为串频,L为串长,即串中汉字个数)。根据经验,局部上下文中取为200字左右。局部上下文的串频计算使用一个滑动窗口(为一个队列式缓冲区,保存当前待切分汉字串及其前后20个短串),当当前待切分汉字串处理完之后,窗口下移一个短串(中心变为相邻下一个短串)。系统采用一个外散列表来记录窗口中的短串,以加快窗口中串频计数。散列函数取为汉字的GB-80位码(二级汉字共用入口95),每个桶中保存窗口中每一行(短串)上的汉字位置:(短串的行号,汉字列号),并且对于在窗口中出现多次的汉字位置用一个链指针连接起来,则计算某个字串在窗口中出现的频度时,不必将该字串与窗口中的短串逐个匹配,而只需统计在该字串中的各个汉字所对应的位置链表中能够相邻的位置的序列的个数即可。此外,还需要根据词缀集(前、后缀集合)对字串的权值进行提升,例如"处理器"中"处理"的权值很高,但由于对"处理器"的权值作了提升(达到或超过了"处理"),就不会切成"处理/器"。如果某个汉字串的权值超过某一阈值D(取为40),则将此汉字串作为一个新识别的词,将其存入一临时词库中;三、切分模块,首先用临时词库对每个短的汉字串进行切分,使用的是逐词遍历算法,再利用一个小型的常用词词典对汉字短串中未切分的子串进行正向最大匹配分词。对于短汉字串中那些仍未切分的子串,则将所有相邻单字作为一个权值很低的生词(例如"玛"、"莉")。其中每个模块都对待分析的文本进行了一次扫描,因而是三遍扫描方法。此系统能够利用上下文识别大部分生词,解决一部分切分歧义,但是统计分词方法对常用词识别精度差的固有缺点仍然存在(例如切出"由/来"、"语/用"、"对/联"等)。经测试,此系统的分词错误率为1.5%,速度为236字/秒。散列表如何建立呢?
解决方案
解决方案二:
哈工大!!!替你顶!!
解决方案三:
看看吧不知道能不能帮你
解决方案四:
引用2楼hefeng_aspnet的回复:
http://dev.21tx.com/2009/09/09/12440.html看看吧不知道能不能帮你
这个是讲第二环节的呵我想问的是怎么将汉字存储到散列表里。。对了那入口、桶、散列函数值是个什么意思呀,尤其是那个“入口95”.我的理解是:散列表的key是汉字的区位码,散列表的value是序列对?