<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>标点符 &#187; 分词</title>
	<atom:link href="http://www.biaodianfu.com/tag/%e5%88%86%e8%af%8d/feed" rel="self" type="application/rss+xml" />
	<link>http://www.biaodianfu.com</link>
	<description>编译自己的互联网生活</description>
	<lastBuildDate>Wed, 08 Feb 2012 08:42:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP中文高速分词的原理和源码</title>
		<link>http://www.biaodianfu.com/php-fenci.html</link>
		<comments>http://www.biaodianfu.com/php-fenci.html#comments</comments>
		<pubDate>Sat, 26 Feb 2011 03:26:06 +0000</pubDate>
		<dc:creator>标点符</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[搜索优化]]></category>
		<category><![CDATA[程序设计]]></category>
		<category><![CDATA[网络营销]]></category>
		<category><![CDATA[分词]]></category>

		<guid isPermaLink="false">http://www.biaodianfu.com/?p=3368</guid>
		<description><![CDATA[一、正向最大匹配算法和反向最大匹配算法的缺点 正向最大匹配算法：从左到右将待分词文本中的几个连续字符与词表匹配，如果匹配上，则切分出一个词。但这里有一个问题：要做到最大匹配，并不是第一次匹配到就可以切分的。举个例子：中华人民共和国今天成立了。从左到右扫描，要分别检索：中，中华，中华人，中华人民，中华人民共，中华人民共和，中华人民共和国今，今，今天，今天成，成，成立，成立了，了。14 次检索词库，最后的切分结果：中华人民共和国/今天/成立了。所以，当遇到长词时，要反复检索多次数据库，效率非常差。还有，一个更严重的问题是：词的最大长度是有限制的，为了兼顾算法的效率，不可能将最大词长定的非常大，这就会导致更长的词汇不能正确切分。 反之，反向最大匹配算法，则会将长词分开，造成错误切分。比如，上面的待切分文本，从右向左扫描，要分别检索：了，立了，立，成立，天成立，天，今天，今天国，国，和国，共和国，民共和国，民，人民，华人民，华，中华。17 词查询数据库，最后切分结果：中华/人民/共和国/今天/成立/了。将中华人民共和国切分成了3 个词。 二、克服最大匹配算法的缺点的算法 为了克服最大匹配算法的低效和不能切分长词，将所有的能组成词汇的汉字，建立索引，作为词的首字母。然后将每个汉字开头的词汇，分成一类，按词长排序。词库结构如下： 分词时，由汉字找到该字开头的词组（长度3000左右的线性检索），然后按由长到短5，4，3，2的顺序检索词库，和待分词语句对比（线性），如果有匹配，则切分为一个词，然后继续匹配下一个词。通过这种方式，大大提高了检索词库效率，解决了任意长词汇匹配问题。 在PHP算法的实现上，为了加快在线匹配速度，上面的词库结构，用PHP的联想数组的形式实现，全部加载到内存。为了灵活增删词库，做了个字符串处理程序，自动生成PHP联想数组结构的词库。详细实现算法，见PHP源码。 PHP分词源码下载：http://www.box.net/shared/gryspzppsb 原文出处：http://bbs.goocnjp.com/thread-385.html No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>一、正向最大匹配算法和反向最大匹配算法的缺点</strong></p>
<p>正向最大匹配算法：从左到右将待分词文本中的几个连续字符与词表匹配，如果匹配上，则切分出一个词。但这里有一个问题：要做到最大匹配，并不是第一次匹配到就可以切分的。举个例子：<em>中华人民共和国今天成立了</em>。从左到右扫描，要分别检索：中，中华，中华人，中华人民，中华人民共，中华人民共和，中华人民共和国今，今，今天，今天成，成，成立，成立了，了。14 次检索词库，最后的切分结果：中华人民共和国/今天/成立了。所以，当遇到长词时，要反复检索多次数据库，效率非常差。还有，一个更严重的问题是：词的最大长度是有限制的，为了兼顾算法的效率，不可能将最大词长定的非常大，这就会导致更长的词汇不能正确切分。</p>
<p>反之，反向最大匹配算法，则会将长词分开，造成错误切分。比如，上面的待切分文本，从右向左扫描，要分别检索：了，立了，立，成立，天成立，天，今天，今天国，国，和国，共和国，民共和国，民，人民，华人民，华，中华。17 词查询数据库，最后切分结果：中华/人民/共和国/今天/成立/了。将中华人民共和国切分成了3 个词。</p>
<p><strong>二、克服最大匹配算法的缺点的算法</strong></p>
<p>为了克服最大匹配算法的低效和不能切分长词，将所有的能组成词汇的汉字，建立索引，作为词的首字母。然后将每个汉字开头的词汇，分成一类，按词长排序。词库结构如下：</p>
<p><img class="alignnone size-full wp-image-3369" title="fenci" src="http://www.biaodianfu.com/wp-content/uploads/2011/02/fenci1.png" alt="" width="604" height="283" /></p>
<p>分词时，由汉字找到该字开头的词组（长度3000左右的线性检索），然后按由长到短5，4，3，2的顺序检索词库，和待分词语句对比（线性），如果有匹配，则切分为一个词，然后继续匹配下一个词。通过这种方式，大大提高了检索词库效率，解决了任意长词汇匹配问题。</p>
<p>在PHP算法的实现上，为了加快在线匹配速度，上面的词库结构，用PHP的联想数组的形式实现，全部加载到内存。为了灵活增删词库，做了个字符串处理程序，自动生成PHP联想数组结构的词库。详细实现算法，见PHP源码。</p>
<p>PHP分词源码下载：<a href="http://www.box.net/shared/gryspzppsb">http://www.box.net/shared/gryspzppsb</a></p>
<p>原文出处：<a href="http://bbs.goocnjp.com/thread-385.html">http://bbs.goocnjp.com/thread-385.html</a></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.biaodianfu.com/php-fenci.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中文分词算法概述</title>
		<link>http://www.biaodianfu.com/overview-on-chinese-segmentation-algorithm.html</link>
		<comments>http://www.biaodianfu.com/overview-on-chinese-segmentation-algorithm.html#comments</comments>
		<pubDate>Wed, 23 Feb 2011 13:01:46 +0000</pubDate>
		<dc:creator>标点符</dc:creator>
				<category><![CDATA[搜索优化]]></category>
		<category><![CDATA[分词]]></category>

		<guid isPermaLink="false">http://www.biaodianfu.com/?p=3356</guid>
		<description><![CDATA[一、中文分词技术综述 1、全文检索技术 所谓全文检索是指计算机索引程序通过扫描文章中的每一个词，对每一个词建立一个索引，指明该词在文章中出现的次数和位置，当用户查询时，检索程序就根据事先建立的索引进行查找，并将查找的结果反馈给用户的检索方式。在中文文档中根据是否采用分词技术，索引项可以是字、词或词组，由此可分为基于字的全文索引和基于词的全文索引。基于字的全文索引是指对于文章中的每一个字都建立索引，检索时将词分解为字的组合。对于各种不同的语言而言，字有不同的含义，比如英文中字与词实际上是合一的，而中文中字和词有很大分别。此方法查全率较高，但查准率较低。有时会出现令人啼笑皆非的检索结果，如检索货币单位“马克”时，会把“马克思”检索出来。基于词的全文索引是指对文章中的词，即语义单位建立索引，检索时按词检索，并且可以处理同义项等。英文等西方文字由于按照空白切分词，因此实现上与按字处理类似，添加同义处理也很容易。中文文字则需要切分字词，以达到按词索引的目的。对中文文档进行切词，提高分词的准确性，抽取关键词作为索引项，实现按词索引可以大大提高检索的准确率。 2、中文分词技术 中文分词与英文分词有很大的不同，对英文而言，一个单词就是一个词，而汉语是以字为基本的书写单位，词语之间没有明显的区分标记，需要人为切分。中文分词系统是利用计算机对中文文本进行词语自动识别的系统，对其研究已经取得了很多成果，出现了众多的算法。根据其特点，可以将现有的分词算法分为四大类：基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于语义的分词方法等。 二、中文分词方法 中文分词方法的基本原理是针对输入文字串进行分词、过滤处理，输出中文单词、英文单词和数字串等一系列分割好的字符串。中文分词模块的输入输出如下图 所示。  1、基于字符串匹配的分词方法 这种方法又叫作机械分词方法、基于字典的分词方法，它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配。若在词典中找到某个字符串，则匹配成功(识别出一个词)。该方法有三个要素，即分词词典、文本扫描顺序和匹配原则。文本的扫描顺序有正向扫描、逆向扫描和双向扫描。匹配原则主要有最大匹配、最小匹配、逐词匹配和最佳匹配。 最大匹配法（MM）。基本思想是：假设自动分词词典中的最长词条所含汉字的个数为i，则取被处理材料当前字符串序列中的前i 个字符作为匹配字段，查找分词词典，若词典中有这样一个i 字词，则匹配成功，匹配字段作为一个词被切分出来；若词典中找不到这样的一个i 字词，则匹配失败，匹配字段去掉最后一个汉字，剩下的字符作为新的匹配字段，再进行匹配，如此进行下去，直到匹配成功为止。统计结果表明，该方法的错误率为1/169。 逆向最大匹配法（RMM）。该方法的分词过程与MM 法相同，不同的是从句子（或文章）末尾开始处理，每次匹配不成功时去掉的是前面的一个汉字。统计结果表明，该方法的错误率为1/245。 逐词遍历法。把词典中的词按照由长到短递减的顺序逐字搜索整个待处理的材料，一直到把全部的词切分出来为止。不论分词词典多大，被处理的材料多么小，都得把这个分词词典匹配一遍。 设立切分标志法。切分标志有自然和非自然之分。自然切分标志是指文章中出现的非文字符号，如标点符号等；非自然标志是利用词缀和不构成词的词（包括单音词、复音节词以及象声词等）。设立切分标志法首先收集众多的切分标志，分词时先找出切分标志，把句子切分为一些较短的字段，再用MM、RMM 或其它的方法进行细加工。这种方法并非真正意义上的分词方法，只是自动分词的一种前处理方式而已，它要额外消耗时间扫描切分标志，增加存储空间存放那些非自然切分标志。 最佳匹配法（OM）。此法分为正向的最佳匹配法和逆向的最佳匹配法，其出发点是：在词典中按词频的大小顺序排列词条，以求缩短对分词词典的检索时间，达到最佳效果，从而降低分词的时间复杂度，加快分词速度。实质上，这种方法也不是一种纯粹意义上的分词方法，它只是一种对分词词典的组织方式。OM 法的分词词典每条词的前面必须有指明长度的数据项，所以其空间复杂度有所增加，对提高分词精度没有影响，分词处理的时间复杂度有所降低。 由上面的算法，不难看出基于字符串匹配的分词方法的优缺点： 优点：简单，易于实现。 缺点：1)匹配速度慢；2)存在交集型和组合型歧义切分问题；3)词本身没有一个标准的定义，没有统一标准的词集；4)不同词典产生的歧义也不同；5)缺乏自学习的智能性。 2、基于理解的分词方法 该方法又称基于人工智能的分词方法，其基本思想就是在分词的同时进行句法、语义分析，利用句法信息和语义信息来处理歧义现象。它通常包括三个部分：分词子系统、句法语义子系统和总控部分。在总控部分的协调下，分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断，即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。目前基于理解的分词方法主要有专家系统分词法和神经网络分词法等。由于汉语语言知识的笼统、复杂性，难以将各种语言信息组织成机器可直接读取的形式，因此目前基于理解的分词系统还处在试验阶段。 专家系统分词法。从专家系统角度把分词的知识（包括常识性分词知识与消除歧义切分的启发性知识即歧义切分规则）从实现分词过程的推理机中独立出来，使知识库的维护与推理机的实现互不干扰，从而使知识库易于维护和管理。它还具有发现交集歧义字段和多义组合歧义字段的能力和一定的自学习功能。 神经网络分词法。该方法是模拟人脑并行，分布处理和建立数值计算模型工作的。它将分词知识所分散隐式的方法存入神经网络内部，通过自学习和训练修改内部权值，以达到正确的分词结果，最后给出神经网络自动分词结果。 神经网络专家系统集成式分词法。该方法首先启动神经网络进行分词，当神经网络对新出现的词不能给出准确切分时，激活专家系统进行分析判断，依据知识库进行推理，得出初步分析，并启动学习机制对神经网络进行训练。该方法可以较充分发挥神经网络与专家系统二者优势，进一步提高分词效率。 3、基于统计的分词方法 该方法的主要思想：词是稳定的组合，因此在上下文中，相邻的字同时出现的次数越多，就越有可能构成一个词。因此字与字相邻出现的概率或频率能较好反映成词的可信度。可以对训练文本中相邻出现的各个字的组合的频度进行统计，计算它们之间的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时，便可以认为此字组可能构成了一个词。该方法又称为无字典分词。 该方法所应用的主要的统计模型有：N 元文法模型、隐Markov 模型和最大熵模型等。在实际应用中一般是将其与基于词典的分词方法结合起来，既发挥匹配分词切分速度快、效率高的特点，又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。 4、基于语义的分词方法 语义分词法引入了语义分析，对自然语言自身的语言信息进行更多的处理，如扩充转移网络法、知识分词语义分析法、邻接约束法、综合匹配法、后缀分词法、特征词库法、矩阵约束法、语法分析法等。 扩充转移网络法。该方法以有限状态机概念为基础。有限状态机只能识别正则语言，对有限状态机作的第一次扩充使其具有递归能力，形成递归转移网络（RTN）。在RTN 中，弧线上的标志不仅可以是终极符（语言中的单词）或非终极符（词类），还可以调用另外的子网络名字分非终极符（如字或字串的成词条件）。这样，计算机在运行某个子网络时，就可以调用另外的子网络，还可以递归调用。词法扩充转移网络的使用， 使分词处理和语言理解的句法处理阶段交互成为可能，并且有效地解决了汉语分词的歧义。 矩阵约束法。其基本思想是：先建立一个语法约束矩阵和一个语义约束矩阵， 其中元素分别表明具有某词性的词和具有另一词性的词相邻是否符合语法规则， 属于某语义类的词和属于另一词义类的词相邻是否符合逻辑，机器在切分时以之约束分词结果。 三、中文分词算法中的难点 1、歧义问题 歧义切分字段处理一个汉语句子是以连续字串的形式书写的。由于可能存在歧义，分词并不是一个简单的从输入串中发现合法词的过程。一个句子经常对应几个合法词序列，因此，汉语分词中的一个重要问题就是在所有这些可能的序列中选出一个正确的结果。歧义切分是自动分词中不可避免的现象，是自动分词中一个比较棘手的问题。对歧义切分字段的处理能力，严重影响到汉语自动分词系统的精度。实践表明，只用机械匹配进行分词，其精度不可能高，虽然有时也能满足一些标准不高的需要，但不能满足中文信息处理高标准的要求。 2、未登录词识别问题 未登录词辨别未登录词包括中外人名、中国地名、机构组织名、事件名、货币名、缩略语、派生词、各种专业术语以及在不断发展和约定俗成的一些新词语。是种类繁多，形态组合各异，规模宏大的一个领域。对这些词语的自动辨识，是一件非常困难的事。 四、自动分词的评价准则 自动分词系统的最主要的工作是进行分词。对于分词而言，不仅要求所研制的软件在分词的正确率和速度方面满足一定的要求，而且要象开发大型传统软件那样，在各个阶段不断地进行评价，其目的主要是检查它的准确性和实用性，分词的评价主要有以下几个方面： 1、分词正确率 书面汉语的文本可以看成是字符序列，分词的正确率直接影响更高一级的处理。现有的分词系统切分错误主要集中在歧义字段和专有名词(如人名、地名、机构名和未登录词等)。为了获得分词系统切分正确率，应该进行整体测试，歧义测试和专业词测试。因此，自动分词系统的切分正确率的基本公式为： 其中，S1，S2，S3。分别为总体测试、歧义测试和专业词测试的正确率；Bi(i=1，2，3)为三种测试加的权值。 2、切分速度 切分速度是指单位时间内所处理的汉字个数。在分词正确率基本满足要求的情况下，切分速度是另一个很重要的指标，特别对于算法不单一，使用辅助手段，诸如联想，基于规则，神经网络，专家系统等方法更应注意这一点。通常中文信息处理的文本数量是相当大的，因此必须考虑方法是否能使系统总开销合理。在人机交互方式下处理歧义问题的策略和人机接口的设计，有时会严重地 影响切分速度，这也是应考虑的因素。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>一、中文分词技术综述</strong></p>
<p><strong>1、全文检索技术</strong></p>
<p>所谓全文检索是指计算机索引程序通过扫描文章中的每一个词，对每一个词建立一个索引，指明该词在文章中出现的次数和位置，当用户查询时，检索程序就根据事先建立的索引进行查找，并将查找的结果反馈给用户的检索方式。在中文文档中根据是否采用分词技术，索引项可以是字、词或词组，由此可分为基于字的全文索引和基于词的全文索引。基于字的全文索引是指对于文章中的每一个字都建立索引，检索时将词分解为字的组合。对于各种不同的语言而言，字有不同的含义，比如英文中字与词实际上是合一的，而中文中字和词有很大分别。此方法查全率较高，但查准率较低。有时会出现令人啼笑皆非的检索结果，如检索货币单位“马克”时，会把“马克思”检索出来。基于词的全文索引是指对文章中的词，即语义单位建立索引，检索时按词检索，并且可以处理同义项等。英文等西方文字由于按照空白切分词，因此实现上与按字处理类似，添加同义处理也很容易。中文文字则需要切分字词，以达到按词索引的目的。对中文文档进行切词，提高分词的准确性，抽取关键词作为索引项，实现按词索引可以大大提高检索的准确率。</p>
<p><strong>2、中文分词技术</strong></p>
<p>中文分词与英文分词有很大的不同，对英文而言，一个单词就是一个词，而汉语是以字为基本的书写单位，词语之间没有明显的区分标记，需要人为切分。中文分词系统是利用计算机对中文文本进行词语自动识别的系统，对其研究已经取得了很多成果，出现了众多的算法。根据其特点，可以将现有的分词算法分为四大类：基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于语义的分词方法等。</p>
<p><strong>二、中文分词方法</strong></p>
<p>中文分词方法的基本原理是针对输入文字串进行分词、过滤处理，输出中文单词、英文单词和数字串等一系列分割好的字符串。中文分词模块的输入输出如下图 所示。</p>
<p><img class="alignnone size-full wp-image-3357" title="Chinese-Segmentation-Algorithm" src="http://www.biaodianfu.com/wp-content/uploads/2011/02/Chinese-Segmentation-Algorithm.png" alt="" width="487" height="94" /></p>
<p> <strong>1、基于字符串匹配的分词方法</strong></p>
<p>这种方法又叫作机械分词方法、基于字典的分词方法，它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配。若在词典中找到某个字符串，则匹配成功(识别出一个词)。该方法有三个要素，即分词词典、文本扫描顺序和匹配原则。文本的扫描顺序有正向扫描、逆向扫描和双向扫描。匹配原则主要有最大匹配、最小匹配、逐词匹配和最佳匹配。</p>
<ol>
<li>最大匹配法（MM）。基本思想是：假设自动分词词典中的最长词条所含汉字的个数为i，则取被处理材料当前字符串序列中的前i 个字符作为匹配字段，查找分词词典，若词典中有这样一个i 字词，则匹配成功，匹配字段作为一个词被切分出来；若词典中找不到这样的一个i 字词，则匹配失败，匹配字段去掉最后一个汉字，剩下的字符作为新的匹配字段，再进行匹配，如此进行下去，直到匹配成功为止。统计结果表明，该方法的错误率为1/169。</li>
<li>逆向最大匹配法（RMM）。该方法的分词过程与MM 法相同，不同的是从句子（或文章）末尾开始处理，每次匹配不成功时去掉的是前面的一个汉字。统计结果表明，该方法的错误率为1/245。</li>
<li>逐词遍历法。把词典中的词按照由长到短递减的顺序逐字搜索整个待处理的材料，一直到把全部的词切分出来为止。不论分词词典多大，被处理的材料多么小，都得把这个分词词典匹配一遍。</li>
<li>设立切分标志法。切分标志有自然和非自然之分。自然切分标志是指文章中出现的非文字符号，如标点符号等；非自然标志是利用词缀和不构成词的词（包括单音词、复音节词以及象声词等）。设立切分标志法首先收集众多的切分标志，分词时先找出切分标志，把句子切分为一些较短的字段，再用MM、RMM 或其它的方法进行细加工。这种方法并非真正意义上的分词方法，只是自动分词的一种前处理方式而已，它要额外消耗时间扫描切分标志，增加存储空间存放那些非自然切分标志。</li>
<li>最佳匹配法（OM）。此法分为正向的最佳匹配法和逆向的最佳匹配法，其出发点是：在词典中按词频的大小顺序排列词条，以求缩短对分词词典的检索时间，达到最佳效果，从而降低分词的时间复杂度，加快分词速度。实质上，这种方法也不是一种纯粹意义上的分词方法，它只是一种对分词词典的组织方式。OM 法的分词词典每条词的前面必须有指明长度的数据项，所以其空间复杂度有所增加，对提高分词精度没有影响，分词处理的时间复杂度有所降低。</li>
</ol>
<p>由上面的算法，不难看出基于字符串匹配的分词方法的优缺点：</p>
<ul>
<li>优点：简单，易于实现。</li>
<li>缺点：1)匹配速度慢；2)存在交集型和组合型歧义切分问题；3)词本身没有一个标准的定义，没有统一标准的词集；4)不同词典产生的歧义也不同；5)缺乏自学习的智能性。</li>
</ul>
<p><strong>2、基于理解的分词方法</strong></p>
<p>该方法又称基于人工智能的分词方法，其基本思想就是在分词的同时进行句法、语义分析，利用句法信息和语义信息来处理歧义现象。它通常包括三个部分：分词子系统、句法语义子系统和总控部分。在总控部分的协调下，分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断，即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。目前基于理解的分词方法主要有专家系统分词法和神经网络分词法等。由于汉语语言知识的笼统、复杂性，难以将各种语言信息组织成机器可直接读取的形式，因此目前基于理解的分词系统还处在试验阶段。</p>
<ol>
<li>专家系统分词法。从专家系统角度把分词的知识（包括常识性分词知识与消除歧义切分的启发性知识即歧义切分规则）从实现分词过程的推理机中独立出来，使知识库的维护与推理机的实现互不干扰，从而使知识库易于维护和管理。它还具有发现交集歧义字段和多义组合歧义字段的能力和一定的自学习功能。</li>
<li>神经网络分词法。该方法是模拟人脑并行，分布处理和建立数值计算模型工作的。它将分词知识所分散隐式的方法存入神经网络内部，通过自学习和训练修改内部权值，以达到正确的分词结果，最后给出神经网络自动分词结果。</li>
<li>神经网络专家系统集成式分词法。该方法首先启动神经网络进行分词，当神经网络对新出现的词不能给出准确切分时，激活专家系统进行分析判断，依据知识库进行推理，得出初步分析，并启动学习机制对神经网络进行训练。该方法可以较充分发挥神经网络与专家系统二者优势，进一步提高分词效率。</li>
</ol>
<p><strong>3、基于统计的分词方法</strong></p>
<p>该方法的主要思想：词是稳定的组合，因此在上下文中，相邻的字同时出现的次数越多，就越有可能构成一个词。因此字与字相邻出现的概率或频率能较好反映成词的可信度。可以对训练文本中相邻出现的各个字的组合的频度进行统计，计算它们之间的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时，便可以认为此字组可能构成了一个词。该方法又称为无字典分词。</p>
<p>该方法所应用的主要的统计模型有：N 元文法模型、隐Markov 模型和最大熵模型等。在实际应用中一般是将其与基于词典的分词方法结合起来，既发挥匹配分词切分速度快、效率高的特点，又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。</p>
<p><strong>4、基于语义的分词方法</strong></p>
<p>语义分词法引入了语义分析，对自然语言自身的语言信息进行更多的处理，如扩充转移网络法、知识分词语义分析法、邻接约束法、综合匹配法、后缀分词法、特征词库法、矩阵约束法、语法分析法等。</p>
<ul>
<li>扩充转移网络法。该方法以有限状态机概念为基础。有限状态机只能识别正则语言，对有限状态机作的第一次扩充使其具有递归能力，形成递归转移网络（RTN）。在RTN 中，弧线上的标志不仅可以是终极符（语言中的单词）或非终极符（词类），还可以调用另外的子网络名字分非终极符（如字或字串的成词条件）。这样，计算机在运行某个子网络时，就可以调用另外的子网络，还可以递归调用。词法扩充转移网络的使用， 使分词处理和语言理解的句法处理阶段交互成为可能，并且有效地解决了汉语分词的歧义。</li>
<li>矩阵约束法。其基本思想是：先建立一个语法约束矩阵和一个语义约束矩阵， 其中元素分别表明具有某词性的词和具有另一词性的词相邻是否符合语法规则， 属于某语义类的词和属于另一词义类的词相邻是否符合逻辑，机器在切分时以之约束分词结果。</li>
</ul>
<p><strong>三、中文分词算法中的难点</strong></p>
<p><img title="fenci" src="http://www.biaodianfu.com/wp-content/uploads/2011/02/fenci.png" alt="" width="352" height="321" /></p>
<p><strong>1、歧义问题</strong></p>
<p>歧义切分字段处理一个汉语句子是以连续字串的形式书写的。由于可能存在歧义，分词并不是一个简单的从输入串中发现合法词的过程。一个句子经常对应几个合法词序列，因此，汉语分词中的一个重要问题就是在所有这些可能的序列中选出一个正确的结果。歧义切分是自动分词中不可避免的现象，是自动分词中一个比较棘手的问题。对歧义切分字段的处理能力，严重影响到汉语自动分词系统的精度。实践表明，只用机械匹配进行分词，其精度不可能高，虽然有时也能满足一些标准不高的需要，但不能满足中文信息处理高标准的要求。</p>
<p><strong>2、未登录词识别问题</strong></p>
<p>未登录词辨别未登录词包括中外人名、中国地名、机构组织名、事件名、货币名、缩略语、派生词、各种专业术语以及在不断发展和约定俗成的一些新词语。是种类繁多，形态组合各异，规模宏大的一个领域。对这些词语的自动辨识，是一件非常困难的事。</p>
<p><strong>四、自动分词的评价准则</strong></p>
<p>自动分词系统的最主要的工作是进行分词。对于分词而言，不仅要求所研制的软件在分词的正确率和速度方面满足一定的要求，而且要象开发大型传统软件那样，在各个阶段不断地进行评价，其目的主要是检查它的准确性和实用性，分词的评价主要有以下几个方面：</p>
<p><strong>1、分词正确率</strong></p>
<p>书面汉语的文本可以看成是字符序列，分词的正确率直接影响更高一级的处理。现有的分词系统切分错误主要集中在歧义字段和专有名词(如人名、地名、机构名和未登录词等)。为了获得分词系统切分正确率，应该进行整体测试，歧义测试和专业词测试。因此，自动分词系统的切分正确率的基本公式为：</p>
<p><img class="alignnone size-full wp-image-3358" title="s" src="http://www.biaodianfu.com/wp-content/uploads/2011/02/s.png" alt="" width="91" height="48" /></p>
<p>其中，S1，S2，S3。分别为总体测试、歧义测试和专业词测试的正确率；Bi(i=1，2，3)为三种测试加的权值。</p>
<p><strong>2、切分速度</strong></p>
<p>切分速度是指单位时间内所处理的汉字个数。在分词正确率基本满足要求的情况下，切分速度是另一个很重要的指标，特别对于算法不单一，使用辅助手段，诸如联想，基于规则，神经网络，专家系统等方法更应注意这一点。通常中文信息处理的文本数量是相当大的，因此必须考虑方法是否能使系统总开销合理。在人机交互方式下处理歧义问题的策略和人机接口的设计，有时会严重地<br />
影响切分速度，这也是应考虑的因素。</p>
<p><strong>3、功能完备性</strong></p>
<p>自动分词方法除了完成分词功能外，还应具备词库增删、修改、查询和批处理等功能。</p>
<p><strong>4、易扩充性和可维护性</strong></p>
<p>这是提供数据存储和计算功能扩充要求的软件属性，包括词库的存储结构，输入/输出形式的变化等方面的扩展和完善。这项指标与系统清晰性、模块性、简单性、结构性、完备性以及自描述性等软件质量准则有直接的联系，对于研究实验性质的软件是非常重要的，因为这类软件需要不断提高与改进，使之适应中文信息处理的各种应用。</p>
<p><strong>5、可移植性</strong></p>
<p>可移植性是指方法能从一个计算机系统或环境转移到另一个系统或环境的容易程度。一个好的分词方法不应该只能在一个环境下运行，而应该稍作修改便可在另一种环境下运行，使它更便于推广。</p>
<p><em>本文作者：龙树全, 赵正文, 唐华（西南石油大学计算机科学学院，四川成都610500）</em></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.biaodianfu.com/overview-on-chinese-segmentation-algorithm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>百度分词的研究</title>
		<link>http://www.biaodianfu.com/baidufenci.html</link>
		<comments>http://www.biaodianfu.com/baidufenci.html#comments</comments>
		<pubDate>Thu, 30 Jul 2009 13:12:26 +0000</pubDate>
		<dc:creator>标点符</dc:creator>
				<category><![CDATA[搜索优化]]></category>
		<category><![CDATA[分词]]></category>
		<category><![CDATA[百度]]></category>

		<guid isPermaLink="false">http://www.biaodianfu.com/?p=311</guid>
		<description><![CDATA[一.什么叫分词技术，为什么要分词？ 分词也叫切词，可以说是中文特有的一种技术，对于一句英文“Google is better than Baidu,but Baidu is more popular than Google in China.”来所，每一个空格分开两个单词，而在中文句子中单词与单词之间却不存在这样的，比如“Googele比百度好，但在中国用百度的比用Google的多”这样的句子就要使用特殊的分词算法将其词与词分开。 二.百度的分词技术到底运用在哪里? 这是很多人都有疑惑的，很多人认为分词技术是运用在百度文档索引入库阶段，其实不是这样的，对文档索引入库阶段百度只是按单个字进行拆分，而百度分词的重心却是对用户键入关键词的拆分。 三. 百度分词中的细节（整理+测试） 1.百度对用户键入小于等于3个中文字的关键词不进行分词。可用一些无意义的3字单词做测试，对于小于等于3个中文字符的关键词，百度只是对关键词进行匹配，匹配字之间要不带内容，这个验证了百度索引入库主要是按单字入库的。 2.对于4中文字符匹配问题以“ABCD”为例，首先百度先去匹配是否有与“ABCD”完全匹配的页面；若没有则将“ABCD”分开为“AB/CD”，尝试匹配”CDAB”;若没有则去匹配“AB”,”AB没有再去匹配”CD”,再没有的话去匹配”BC”,要求对”BC”完全匹配，然后搜寻”BCD”后搜寻”ABC”，“A”和“D”离“BC”越近排名越靠前若再没有返回到第一步。百度的分词是从前往后还是从后往前（正向分词还是逆向分词）？百度首先是查看是否含有所有内容匹配。其次再是分词。对于分词的方向这个问题，尝试搜索“陈冠希望”这个关键词你便可知道，百度搜索切词是从后往前切的，搜索结果主要搜索“陈冠”和“希望”两字，而不是“陈冠希”+“望”也不是“陈冠希望”。如“桃李宇春”搜索结果主要为“李宇春”。 3.百度对大于4中文字符的划分。百度以最长的短语作为主要内容，如“百度日如年龄”搜索结果主要为“度日如年”。 4.搜索词中带有英文字母办？百度把搜索词中的英文看成一个字符串，对英文字段进行字符串匹配。 附：1.百度分词技术广告：我知道你不知道我知道你不知道我知道你不知道         2.百度分词词库(旧的）：http://bit.ly/nNuZw         3.免费开源PHP分词程序：http://www.ftphp.com/scws/ Related posts: 搜索引擎工具栏到底有什么用 关键词工具整理 百度索引库有多大]]></description>
			<content:encoded><![CDATA[<p>一.什么叫分词技术，为什么要分词？</p>
<p>分词也叫切词，可以说是中文特有的一种技术，对于一句英文“Google is better than Baidu,but Baidu is more popular than Google in China.”来所，每一个空格分开两个单词，而在中文句子中单词与单词之间却不存在这样的，比如“Googele比百度好，但在中国用百度的比用Google的多”这样的句子就要使用特殊的分词算法将其词与词分开。</p>
<p>二.百度的分词技术到底运用在哪里?</p>
<p>这是很多人都有疑惑的，很多人认为分词技术是运用在百度文档索引入库阶段，其实不是这样的，对文档索引入库阶段百度只是按单个字进行拆分，而百度分词的重心却是对用户键入关键词的拆分。</p>
<p>三. 百度分词中的细节（整理+测试）</p>
<p>1.百度对用户键入小于等于3个中文字的关键词不进行分词。可用一些无意义的3字单词做测试，对于小于等于3个中文字符的关键词，百度只是对关键词进行匹配，匹配字之间要不带内容，这个验证了百度索引入库主要是按单字入库的。</p>
<p>2.对于4中文字符匹配问题以“ABCD”为例，首先百度先去匹配是否有与“ABCD”完全匹配的页面；若没有则将“ABCD”分开为“AB/CD”，尝试匹配”CDAB”;若没有则去匹配“AB”,”AB没有再去匹配”CD”,再没有的话去匹配”BC”,要求对”BC”完全匹配，然后搜寻”BCD”后搜寻”ABC”，“A”和“D”离“BC”越近排名越靠前若再没有返回到第一步。百度的分词是从前往后还是从后往前（正向分词还是逆向分词）？百度首先是查看是否含有所有内容匹配。其次再是分词。对于分词的方向这个问题，尝试搜索“陈冠希望”这个关键词你便可知道，百度搜索切词是从后往前切的，搜索结果主要搜索“陈冠”和“希望”两字，而不是“陈冠希”+“望”也不是“陈冠希望”。如“桃李宇春”搜索结果主要为“李宇春”。</p>
<p>3.百度对大于4中文字符的划分。百度以最长的短语作为主要内容，如“百度日如年龄”搜索结果主要为“度日如年”。</p>
<p>4.搜索词中带有英文字母办？百度把搜索词中的英文看成一个字符串，对英文字段进行字符串匹配。</p>
<p>附：1.百度分词技术广告：我知道你不知道我知道你不知道我知道你不知道</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="src" value="http://player.youku.com/player.php/sid/XOTc0NTA4NA==/v.swf" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" width="480" height="400" src="http://player.youku.com/player.php/sid/XOTc0NTA4NA==/v.swf" quality="high" align="middle"></embed></object></p>
<p>        2.百度分词词库(旧的）：<a href="http://bit.ly/nNuZw">http://bit.ly/nNuZw</a></p>
<p>        3.免费开源PHP分词程序：<a href="http://www.ftphp.com/scws/">http://www.ftphp.com/scws/</a></p>
<p>Related posts:<ol>
<li><a href='http://www.biaodianfu.com/toolbar.html' rel='bookmark' title='搜索引擎工具栏到底有什么用'>搜索引擎工具栏到底有什么用</a></li>
<li><a href='http://www.biaodianfu.com/keyword-tools.html' rel='bookmark' title='关键词工具整理'>关键词工具整理</a></li>
<li><a href='http://www.biaodianfu.com/baidu-index-database.html' rel='bookmark' title='百度索引库有多大'>百度索引库有多大</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.biaodianfu.com/baidufenci.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

