中文分词入门之最大匹配法

合集下载

一种改进的中文分词正向最大匹配算法

一种改进的中文分词正向最大匹配算法
第2 8卷第 3期
21 0 1年 3月
计 算机 应 用与软 件
Co utr Ap lc to sa d S f r mp e p i ai n n o wae t
V0 _ l28 No. 3
M a . 01 r2 l

种 改 进 的 中 文 分 词 正 向 最 大 匹 配 算 法
t e s e d a d e ce c fC ie e W o e me tt n ag r h h v e n o vo sy i r v d h p e n f in y o h n s r s g n ai lo i m a e b e b iu l mp o e . i d o t Ke wo d y rs C i e e w r e me tt n W o a k F r r n x mu mac i g ag rt m h n s o d s g n ai o d r b n o wa d la i m t hn l o i h
p t fr a d a d a f ri r vn MM lo i m h ti o a sg h xmu tx 一 n t o b ra e y a c l a e n t e w r - u s o r n i e o mp o i g F w ag r h t a s t s in t e ma i m e t1 g h t e t td d n mi al b s d o 同 的 统 计 , 8—1 因 3字 的 词 所 占 比 例 较 小
0 引 言
中文 自动 分 词 是 中文 信 息 处 理 中 最 为 基 础 、 为重 要 的 问 最 题 , 汉语 文 本 自动 标 注 、 索 引擎 、 器 翻 译 等工 作 中 的 关 键 是 搜 机

分词算法汇总

分词算法汇总

如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为 bigram。即
P(T ) P(WW Wn ) P(W1 ) P(W2 | W1 ) P(W3 | WW Wn 1 ) 1 2W3 ... 1 2 )...P (Wn | W1... P(W1 ) P(W2 | W1 ) P(W3 | W2 )...P(Wn | Wn1 )
如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为 trigram。 在实践中用的最多的就是 bigram 和 trigram 了,而且效果很不错。高于四元的用的很 少, 因为训练它需要更庞大的语料, 而且数据稀疏严重, 时间复杂度高, 精度却提高的不多。 设 w1,w2,w3,...,wn 是长度为 n 的字符串,规定任意词 wi 只与它的前两个相关,得到三 元概率模型
优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断 点(切分标志),可将原字符串分为较小的串再来进机械分词,从而减少匹配的错 误率。
1.5 最佳匹配(OM,分正向和逆向)
1/7
对分词词典按词频大小顺序排列,并注明长度,降低时间复杂度。
第二节 基于统计的分词 主要思想:上下文中,相邻的字同时出现的次数越多,就越可能构成一个词。因此字与 字相邻出现的概率或频率能较好的反映词的可信度。 主要统计模型为: N 元文法模型 (N-gram) 、 隐马尔科夫模型(Hidden Markov Model, HMM) 2.1N-gram 模型思想 模型基于这样一种假设,第 n 个词的出现只与前面 N-1 个词相关,而与其它任何词都 不相关,整句的概率就是各个词出现概率的乘积 . 我们给定一个词,然后猜测下一个词是什么。当我说“艳照门”这个词时,你想到下一个 词是什么呢?我想大家很有可能会想到“陈冠希”,基本上不会有人会想到“陈志杰”吧。 N-gram 模型的主要思想就是这样的。 对于一个句子 T,我们怎么算它出现的概率呢?假设 T 是由词序列 W1,W2,W3,…Wn 组成的,那么

中文分词相关技术简介

中文分词相关技术简介

中文分词相关技术简介目前对汉语分词方法的研究主要有三个方面:基于规则的分词方法、基于统计的分词方法和基于理解的分词方法。

基于规则的分词方法基于规则的分词方法,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的"机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。

常用的方法:最小匹配算法(Minimum Matching),正向(逆向)最大匹配法(Maximum Matching),逐字匹配算法,神经网络法、联想一回溯法,基于N-最短路径分词算法,以及可以相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法等。

目前机械式分词占主流地位的是正向最大匹配法和逆向最大匹配法。

◆最小匹配算法在所有的分词算法中,最早研究的是最小匹配算法(Minimum Matching),该算法从待比较字符串左边开始比较,先取前两个字符组成的字段与词典中的词进行比较,如果词典中有该词,则分出此词,继续从第三个字符开始取两个字符组成的字段进行比较,如果没有匹配到,则取前3个字符串组成的字段进行比较,依次类推,直到取的字符串的长度等于预先设定的阈值,如果还没有匹配成功,则从待处理字串的第二个字符开始比较,如此循环。

例如,"如果还没有匹配成功",取出左边两个字组成的字段与词典进行比较,分出"如果";再从"还"开始,取"还没",字典中没有此词,继续取"还没有",依次取到字段"还没有匹配"(假设阈值为5),然后从"没"开始,取"没有",如此循环直到字符串末尾为止。

这种方法的优点是速度快,但是准确率却不是很高,比如待处理字符串为"中华人民共和国",此匹配算法分出的结果为:中华、人民、共和国,因此该方法基本上已经不被采用。

最大正向匹配分词算法

最大正向匹配分词算法

最大正向匹配分词算法简介分词是自然语言处理中的重要任务之一,它将连续的文本切分成有意义的词语或词组。

在中文分词中,最大正向匹配分词算法是一种常见的分词方法。

该算法基于词典,通过从左到右依次匹配最长的词进行分词。

优点•算法简单、效率高,适用于大规模文本的分词任务。

•对于常见词汇的分词效果较好。

缺点•对于歧义词汇的分词效果较差。

由于该算法只依次匹配最长的词,因此可能会将歧义词汇按错误的方式进行分词。

•无法处理未登录词。

如果分词的文本中存在词典中未包含的词汇,该算法将无法正确地进行分词。

算法步骤最大正向匹配分词算法的步骤如下:1.定义一个词典,包含常见的词汇。

2.从待分词的文本的左侧开始,选择词典中最长的词作为候选词。

3.判断候选词是否存在于词典中。

4.如果候选词存在于词典中,将该词作为分词结果的一部分,然后从待分词文本的右侧继续进行分词。

5.如果候选词不存在于词典中,将候选词的最后一个字去除,然后将剩余的部分作为新的候选词。

6.重复步骤3和步骤4,直到待分词的文本为空。

算法示例假设我们有一个词典:[“最大”, “正向”, “匹配”, “分词”, “算法”]。

我们要对文本”最大正向匹配分词算法”进行分词。

1.从文本的左侧开始,选择最长的词”最大正向”作为候选词。

2.判断候选词”最大正向”存在于词典中。

3.将候选词”最大正向”作为分词结果的一部分。

4.从待分词的文本的右侧继续进行分词,此时待分词的文本为”匹配分词算法”。

5.从文本的左侧开始,选择最长的词”匹配”作为候选词。

6.判断候选词”匹配”存在于词典中。

7.将候选词”匹配”作为分词结果的一部分。

8.从待分词的文本的右侧继续进行分词,此时待分词的文本为”分词算法”。

9.从文本的左侧开始,选择最长的词”分词”作为候选词。

10.判断候选词”分词”存在于词典中。

11.将候选词”分词”作为分词结果的一部分。

12.从待分词的文本的右侧继续进行分词,此时待分词的文本为”算法”。

中文分词

中文分词

P(W1) > P(W2)
提高计算效率 如何尽快找到概率最大的词串(路径)?
到达候选词wi 时的累计概率
P' ( wi ) P' ( wi 1 ) P( wi )
P' (意见) P' (有) P(意见)
公式1
P' (有) P(有)
提高计算效率(续)

左邻词
假定对字串从左到右进行扫描,可以得到 w1, w2 , … , wi 1 , wi , … 等若干候选词,如果 wi 1 的尾字 跟 wi 的首字邻接,就称 wi 1为 wi 的左邻词。比如上面例 中,候选词“有”就是候选词“意见”的左邻词,“意见” 和“见”都是“分歧”的左邻词。字串最左边的词没有左邻 词。
歧义词表 … 才能 个人 家人 马上 研究所 …
最大匹配法解决分词歧义的能力(续)
对于某些交集型歧义,可以通过增加回溯机制来改 进最大匹配法的分词结果。 例如:“学历史知识” 顺向扫描的结果是:“学历/ 史/ 知识/”, 通过查词典知道“史”不在词典中,于是进行回溯, 将“学历”的尾字“历”取出与后面的“史”组成 “历史”,再查词典,看“学”,“历史”是否在 词典中,如果在,就将分词结果调整为:“学/ 历 史/ 知识/”
最大概率法分词
词语 … 有 有意 意见 见 分歧 … 概率 … 0.0180 0.0005 0.0010 0.0002 0.0001 … P(W1) = P(有) * P(意见) * P(分歧) = 1.8 × 10-9 P(W2) = P(有意) * P(见) * P(分歧) = 1×10-11
有意/
有/
见/
意见/
分歧/
分歧/ B.“结合成分子时” (正向最大匹配和逆向最大匹配结果相同) 结合/ 成分/ 子时/

基于改进的正向最大匹配中文分词算法研究

基于改进的正向最大匹配中文分词算法研究

基 于 理解 的分 词 方法 不 仅 要求 有 很好 的分 词 词典 , 而且还 需要 加进 语义 和句 法 的分 析 。通过 获
文文本 中词与词之间却没有很明显的标记 , 都是连 续 的字符串, 因而中文信息处理的首要解决的问题 就是 怎样进 行 中 文分 词 。 正 向最 大 匹 配 法是 一 种
文章编号
10 5 6 (0 10 0 1 0 0 0— 2 9 2 1 )5— 12— 4
基 于 改进 的 正 向最 大 匹配 中文 分 词 算 法研 究
王 惠仙 , 龙 华
( 昆明理工大学信息工程与 自动化学 院 , 云南 昆明 6 05 ) 50 1

要: 中文 自动 分词技 术在 中文信 息 处 理 、 b文 档 挖 掘 等 处理 文 档 类研 究 中是 一 项 关键 技 We
第 5期
王惠仙 等 : 于改进 的正向最大匹配 中文分词算法研究 基
文本 进行 分 词操作 , 到准 确有 效 的切分 中文 文档 达
的 目标 。
的词 时 , 只能 取 出其 中 的 5个 字去 词 典 里 匹 配 , 例 如“ 共产 主 义 接 ” 显 然 词典 里 不 可 能 存 在 像 这 样 , 的词 。因此 就 无 法 准 确 的 划 分 出 像 “ 产 主 义 接 共 班人 ” 这样 长 度大 于 5的 词 。如果 词 长 过 长 , 率 效
词 方法 ¨ 。 J 1 1 基于词 典 的分词方 法 . 基 于 词典 的分 词 法是 广 泛 应用 的一 种 的机 械
基 于统 计 的 分词 方 法 主要 是 用来 消 除 分词 过 程 中产生 的歧 义现 象 , 即消歧 。此方 法 主要靠 一个 或者 多个 具有 代表 性 的规 模 相对 小 的训 练语 料 库

最大正向匹配分词算法的VC++实现

最大正向匹配分词算法的VC++实现
1 “ 械 匹 配 ” 法 和 正 向最 大 匹 配 、机 算
f ite= r eL n O / 取 源 串 的长 度 n n sG te  ̄h ;/ l .
” 机械 匹配” 法可 以分 为增字 匹配 和减 字匹配 . 算 增 字 匹 配是 从单 个字 符 开始 逐 次 增加 词 中字符 的个 数 .
n My it ac() = De. t w ; m h J
本文 以减字 匹配 为例 进行 说 明 。其基 本思 路是 在计 算 s+ t :w +Sp rtrI 匹 配 得 到 的 词 连 同 词 界 标 记 加 到 e aa ;I将 o 输 出 串末 尾 机 中存 放一 个 已知 的词 表 ( 词典 ) 然 后从 被 切分 的语 。
作 为 中文信 息 处理 的基 础 .汉语 自动 分词 是智 能 4 2 断 w中的 字 串不是 词 : )4 化 中文信 息处 理 的关 键 .因为 ” 中文 信息 处理 中 . 在 凡 5 从 W右边 减掉 一个 字后 w ” ) = 我们 ” : 是涉 及句法 、 语义等 研究项 目都要 以词 为基 本单 位IJ 1。 . 2 6 )判 断 w中的字 符 串是一个 词 ,则输 出 到 s 中 , t 而 中文并 不像英 文那样 . 之间 有着 自然 的分 割 . 词 汉语 s ” t 我们/ 。 = ” 语 句 只是连 续 的 字符 串 . 句 中 的” ” ” ” 间没 2最 大正 向匹配算 法 的 V + 实现 语 词 与 词 之 . C +
【 摘
要 】 做 为最 直接 的分词 思路 , 大匹配具有 直观 、 : 最 实现 简单 等优 点 , 也存 在 着精 度 低的致 命缺 但
点。本文 对正 向 匹配 算法做 了实现和 分析 , 为该方 法的进 一 步改进 打下 了基础 。

中文分词:正向匹配最大算法(FMM)

中文分词:正向匹配最大算法(FMM)

中⽂分词:正向匹配最⼤算法(FMM)中⽂分词:正向匹配最⼤算法正向最⼤匹配法,对于输⼊的⼀段⽂本从左⾄右、以贪⼼的⽅式切出当前位置上长度最⼤的词。

正向最⼤匹配法是基于词典的分词⽅,其分词原理是:单词的颗粒度越⼤,所能表⽰的含义越确切。

该算法主要分两个步骤:1、⼀般从⼀个字符串的开始位置,选择⼀个最⼤长度的词长的⽚段,如果序列不⾜最⼤词长,则选择全部序列。

2、⾸先看该⽚段是否在词典中,如果是,则算为⼀个分出来的,如果不是,则从右边开始,减少⼀个字符,然后看短⼀点的这个⽚段是否在词典中,依次循环,逐到只剩下⼀个字。

3、序列变为第2步骤截取分词后,剩下的部分序列代码实现#使⽤正向最⼤匹配算法实现中⽂分词words_dic = []def init():'''读取词典⽂件载⼊词典:return:'''with open(r"C:\Users\lenovo\PycharmProjects\fenci\venv\dic\dic.txt","r",encoding="utf-8") as dic_input:for word in dic_input:words_dic.append(word.strip())#列表#实现正向匹配算法中的切词⽅法def cut_words(raw_sentence,word_dict):#统计词典中最长的词max_length = max(len(word) for word in words_dic)sentence = raw_sentence.strip()#统计序列长度word_length = len(sentence)#存储切分好的词语cut_word_list = []while word_length > 0:max_cut_length = min(max_length,word_length)#判断最长词语与句⼦的长度subsentence = sentence[0:max_cut_length] #⼦句与就是最⼤的长度while max_cut_length > 0:if subsentence in word_dict:#如果句⼦是长的,那么从头便取最⼤词的长度,如果在,⾸词便框住cut_word_list.append(subsentence) #如果不在词典岂不是完蛋了breakelif max_cut_length == 1:cut_word_list.append(subsentence)breakelse:max_cut_length = max_cut_length-1 #⼤概率是不在的,因此切得长度减1subsentence = subsentence[0:max_cut_length]sentence = sentence[max_cut_length:]words_length = word_length - max_cut_lengthif words_length == 0:breakwords = "/".join(cut_word_list)return wordsdef main():'''与⽤户交互接⼝:return:'''init()while True:print("请输⼊要分词序列:")input_str = input()if not input_str:breakresult = cut_words(input_str,words_dic)print("分词结果")print(result)if __name__=="__main__":main()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中文分词入门之最大匹配法发表于2009年01月12号由52nlp中文分词在中文信息处理中是最最基础的,无论机器翻译亦或信息检索还是其他相关应用,如果涉及中文,都离不开中文分词,因此中文分词具有极高的地位。

中文分词入门最简单应该是最大匹配法了,当年师兄布置给我的第一个学习任务就是实现最大匹配法的分词算法(正向、逆向)。

记得当时对自己参考学习最有帮助的是北大詹卫东老师“中文信息处理基础”的课件和源程序,不过他实现的是mfc程序,词表存储在数据库里。

自己实现时用纯c++实现,利用hash_map 存储词表。

这里我介绍一下相关的知识和一个简单的程序示例,部分参考自詹老师的讲义。

正向最大匹配法算法如下所示:(注:以上最大匹配算法图来自于詹老师讲义)逆向匹配法思想与正向一样,只是从右向左切分,这里举一个例子:输入例句:S1=”计算语言学课程有意思” ;定义:最大词长MaxLen = 5;S2= ” “;分隔符= “/”;假设存在词表:…,计算语言学,课程,意思,…;最大逆向匹配分词算法过程如下:(1)S2=”";S1不为空,从S1右边取出候选子串W=”课程有意思”;(2)查词表,W不在词表中,将W最左边一个字去掉,得到W=”程有意思”;(3)查词表,W不在词表中,将W最左边一个字去掉,得到W=”有意思”;(4)查词表,W不在词表中,将W最左边一个字去掉,得到W=”意思”(5)查词表,“意思”在词表中,将W加入到S2中,S2=” 意思/”,并将W从S1中去掉,此时S1=”计算语言学课程有”;(6)S1不为空,于是从S1左边取出候选子串W=”言学课程有”;(7)查词表,W不在词表中,将W最左边一个字去掉,得到W=”学课程有”;(8)查词表,W不在词表中,将W最左边一个字去掉,得到W=”课程有”;(9)查词表,W不在词表中,将W最左边一个字去掉,得到W=”程有”;(10)查词表,W不在词表中,将W最左边一个字去掉,得到W=”有”,这W是单字,将W 加入到S2中,S2=“ /有/意思”,并将W从S1中去掉,此时S1=”计算语言学课程”;(11)S1不为空,于是从S1左边取出候选子串W=”语言学课程”;(12)查词表,W不在词表中,将W最左边一个字去掉,得到W=”言学课程”;(13)查词表,W不在词表中,将W最左边一个字去掉,得到W=”学课程”;(14)查词表,W不在词表中,将W最左边一个字去掉,得到W=”课程”;(15)查词表,“意思”在词表中,将W加入到S2中,S2=“课程/ 有/ 意思/”,并将W从S1中去掉,此时S1=”计算语言学”;(16)S1不为空,于是从S1左边取出候选子串W=”计算语言学”;(17)查词表,“计算语言学”在词表中,将W加入到S2中,S2=“计算语言学/ 课程/ 有/ 意思/”,并将W从S1中去掉,此时S1=”";(18)S1为空,输出S2作为分词结果,分词过程结束。

相应程序示例:准备文件:建立一个词表文件wordlexicon,格式如下计算语言学课程意思输入文件:test,格式如下计算语言学课程有意思编译后执行如下:SegWord.exe test输出分词结果文件:SegmentResult.txt源代码如下:// Dictionary.h#include <iostream>#include <string>#include <fstream>#include <sstream>#include <hash_map>using namespace std;using namespace stdext;class CDictionary{public:CDictionary(); //将词典文件读入并构造为一个哈希词典~CDictionary();int FindWord(string w); //在哈希词典中查找词private:string strtmp; //读取词典的每一行string word; //保存每个词hash_map<string, int> wordhash; // 用于读取词典后的哈希hash_map<string, int >::iterator worditer; //typedef pair<string, int> sipair;};//将词典文件读入并构造为一个哈希词典CDictionary::CDictionary(){ifstream infile(“wordlexicon”); // 打开词典if (!infile.is_open()) // 打开词典失败则退出程序{cerr << "Unable to open input file: " << "wordlexicon"<< " -- bailing out!" << endl;exit(-1);}while (getline(infile, strtmp, 'n')) // 读入词典的每一行并将其添加入哈希中{istringstream istr(strtmp);istr >> word; //读入每行第一个词wordhash.insert(sipair(word, 1)); //插入到哈希中}}CDictionary::~CDictionary(){}//在哈希词典中查找词,若找到,则返回,否则返回int CDictionary::FindWord(string w){if (wordhash.find(w) != wordhash.end()){return 1;}else{return 0;}}// 主程序main.cpp#include “Dictionary.h”# define MaxWordLength 10 // 最大词长为个字节(即个汉字)# define Separator “/ ” // 词界标记CDictionary WordDic; //初始化一个词典//对字符串用最大匹配法(正向或逆向)处理string SegmentSentence(string s1){string s2 = “”; //用s2存放分词结果while(!s1.empty()){int len =(int) s1.length(); // 取输入串长度if (len > MaxWordLength) // 如果输入串长度大于最大词长{len = MaxWordLength; // 只在最大词长范围内进行处理}//string w = s1.substr(0, len); // (正向用)将输入串左边等于最大词长长度串取出作为候选词string w = s1.substr(s1.length() – len, len); //逆向用int n = WordDic.FindWord(w); // 在词典中查找相应的词while(len > 2 && n == 0) // 如果不是词{len -= 2; // 从候选词右边减掉一个汉字,将剩下的部分作为候选词//w = w.substr(0, len); //正向用w = s1.substr(s1.length() – len, len); //逆向用n = WordDic.FindWord(w);}//s2 += w + Separator; // (正向用)将匹配得到的词连同词界标记加到输出串末尾w = w + Separator; // (逆向用)s2 = w + s2 ; // (逆向用)//s1 = s1.substr(w.length(), s1.length()); //(正向用)从s1-w处开始s1 = s1.substr(0, s1.length() – len); // (逆向用)}return s2;}//对句子进行最大匹配法处理,包含对特殊字符的处理string SegmentSentenceMM (string s1){string s2 = “”; //用s2存放分词结果int i;int dd;while(!s1.empty() ){unsigned char ch = (unsigned char)s1[0];if (ch < 128) // 处理西文字符{i = 1;dd = (int)s1.length();while (i < dd && ((unsigned char)s1[i] < 128) && (s1[i] != 10) && (s1[i] != 13)) // s1[i]不能是换行符或回车符{i++;}if ((ch != 32) && (ch != 10) && (ch != 13)) // 如果不是西文空格或换行或回车符{s2 += s1.substr(0,i) + Separator;}else{//if (ch == 10 || ch == 13) // 如果是换行或回车符,将它拷贝给s2输出if (ch == 10 || ch == 13 || ch == 32) //谢谢读者mces89的指正{s2 += s1.substr(0, i);}}s1 = s1.substr(i,dd);continue;}else{if (ch < 176) // 中文标点等非汉字字符{i = 0;dd = (int)s1.length();while(i < dd && ((unsigned char)s1[i] < 176) && ((unsigned char)s1[i] >= 161)&& (!((unsigned char)s1[i] == 161 && ((unsigned char)s1[i+1] >= 162 && (unsigned char)s1[i+1] <= 168)))&& (!((unsigned char)s1[i] == 161 && ((unsigned char)s1[i+1] >= 171 && (unsignedchar)s1[i+1] <= 191)))&& (!((unsigned char)s1[i] == 163 && ((unsigned char)s1[i+1] == 172 || (unsigned char)s1[i+1] == 161)|| (unsigned char)s1[i+1] == 168 || (unsigned char)s1[i+1] == 169 || (unsigned char)s1[i+1]== 186|| (unsigned char)s1[i+1] == 187 || (unsigned char)s1[i+1] == 191))){i = i + 2; // 假定没有半个汉字}if (i == 0){i = i + 2;}if (!(ch == 161 && (unsigned char)s1[1] == 161)) // 不处理中文空格{s2+=s1.substr(0, i) + Separator; // 其他的非汉字双字节字符可能连续输出}s1 = s1.substr(i, dd);continue;}}// 以下处理汉字串i = 2;dd = (int)s1.length();while(i < dd && (unsigned char)s1[i] >= 176){i += 2;}s2 += SegmentSentence(s1.substr(0, i));s1 = s1.substr(i,dd);}return s2;}int main(int argc, char *argv[]){string strtmp; //用于保存从语料库中读入的每一行string line; //用于输出每一行的结果ifstream infile(argv[1]); // 打开输入文件if (!infile.is_open()) // 打开输入文件失败则退出程序{cerr << "Unable to open input file: " << argv[1]<< " -- bailing out!" << endl;exit(-1);}ofstream outfile1("SegmentResult.txt"); //确定输出文件if (!outfile1.is_open()){cerr << "Unable to open file:SegmentResult.txt"<< "--bailing out!" << endl;exit(-1);}while (getline(infile, strtmp, 'n')) //读入语料库中的每一行并用最大匹配法处理{line = strtmp;line = SegmentSentenceMM(line); // 调用分词函数进行分词处理outfile1 << line << endl; // 将分词结果写入目标文件}return 0;}。

相关文档
最新文档