<?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/"
	>

<channel>
	<title>排头兵 @ Talk</title>
	<atom:link href="http://www.paitoubing.cn/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.paitoubing.cn/blog</link>
	<description>用技术来驱动业务和产品体验</description>
	<pubDate>Sun, 22 Aug 2010 03:57:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>加入盛大在线</title>
		<link>http://www.paitoubing.cn/blog/join-sdo</link>
		<comments>http://www.paitoubing.cn/blog/join-sdo#comments</comments>
		<pubDate>Thu, 19 Aug 2010 12:36:38 +0000</pubDate>
		<dc:creator>排头兵</dc:creator>
		
		<category><![CDATA[碎言碎语]]></category>

		<guid isPermaLink="false">http://www.paitoubing.cn/blog/?p=635</guid>
		<description><![CDATA[17号加入了盛大在线SDO,盛大在线SDO的同事都很nice，工作passion真的是没的说.
一直觉得3年的创业生涯可以让自己自信，
今天发现真的是很多东西需要学习的,
准备在这里扎根了,祝自己好运吧.
... ]]></description>
			<content:encoded><![CDATA[<p>17号加入了盛大在线SDO,盛大在线SDO的同事都很nice，工作passion真的是没的说.</p>
<p>一直觉得3年的创业生涯可以让自己自信，</p>
<p>今天发现真的是很多东西需要学习的,</p>
<p>准备在这里扎根了,祝自己好运吧.</p>
<p><a href="http://www.paitoubing.cn/blog/wp-content/uploads/2010/08/me.jpg"><img class="alignnone size-full wp-image-637" title="me" src="http://www.paitoubing.cn/blog/wp-content/uploads/2010/08/me.jpg" alt="me" width="213" height="317" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paitoubing.cn/blog/join-sdo/feed</wfw:commentRss>
		</item>
		<item>
		<title>操作系统及平台的那点事</title>
		<link>http://www.paitoubing.cn/blog/android-iphone-windows</link>
		<comments>http://www.paitoubing.cn/blog/android-iphone-windows#comments</comments>
		<pubDate>Fri, 06 Aug 2010 02:31:02 +0000</pubDate>
		<dc:creator>排头兵</dc:creator>
		
		<category><![CDATA[碎言碎语]]></category>

		<guid isPermaLink="false">http://www.paitoubing.cn/blog/?p=617</guid>
		<description><![CDATA[在微博上面,写了第一条,话越来越多,干脆贴过来 follow@ http://t.qq.com/paitoubing
有人一直意淫windows会不会没落,我的理解是,windows作为PC来讲,有太多人不希望他没落,基于windows的那些软件使得windows不... ]]></description>
			<content:encoded><![CDATA[<p>在微博上面,写了第一条,话越来越多,干脆贴过来 follow@ http://t.qq.com/paitoubing</p>
<p>有人一直意淫windows会不会没落,我的理解是,windows作为PC来讲,有太多人不希望他没落,基于windows的那些软件使得windows不太能没落,微软为什么坚持做自己的语言,其实是为了增加移植的难度,保护自己的壁垒,iphone和android之争也不过如此</p>
<p>iphone 从头至尾都是封闭的,Object-c;Android一个后起之秀要和大哥抢天下,选择了java作为app开发语言,j2me一直是N多手机游戏的开发首选,这样构造一个基于java的平台环境,当然会有很多拥护者,利用开源技术及优秀的设计,Android增长拭目以待</p>
<p>或许基于flash这个玩物,Adobe可以在任何一个平台游刃有余,可惜iphone这个变态就是不让flash有机会搞自己的平台,android当然会支持flash了,天下大乱才有机会嘛</p>
<p>盛大推出电子书bambook是必然的,盛大希望构造自己的app store,不仅仅是为了那些文字,还有SDO的游戏平台,未来终端设备重点是设备上的software,自己推出bambook就不用担心iphone这样的封闭变态,及推出自己的平台app store</p>
<p>bambook不知道主打的电子书还是app store,电子书真没有什么可做的,当作一个终端设备,完美的结合盛大游戏与盛大音乐、盛大视频可能会很有意思.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paitoubing.cn/blog/android-iphone-windows/feed</wfw:commentRss>
		</item>
		<item>
		<title>排头兵PHP中文分词,纯PHP版实现</title>
		<link>http://www.paitoubing.cn/blog/pai_scw</link>
		<comments>http://www.paitoubing.cn/blog/pai_scw#comments</comments>
		<pubDate>Thu, 05 Aug 2010 10:33:54 +0000</pubDate>
		<dc:creator>排头兵</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.paitoubing.cn/blog/?p=607</guid>
		<description><![CDATA[排头兵PHP中文分词类,主要作用是分析语料库,找出核心主题词,是网页相似度引擎的子模块
相比成熟的分词类库,如Lucene,中科院之流 没有任何优势,本类库是实验性项目,效率及算法[trie]并无特殊
... ]]></description>
			<content:encoded><![CDATA[<p>排头兵PHP中文分词类,主要作用是分析语料库,找出核心主题词,是网页相似度引擎的子模块</p>
<p>相比成熟的分词类库,如Lucene,中科院之流 没有任何优势,本类库是实验性项目,效率及算法[trie]并无特殊</p>
<p>暂时支持utf8编码</p>
<p>线上测试版即将出来 http://www.paitoubing.cn/pdb/paiswc.php<br />
ps:我的博客托管服务器,暂时不能访问外网,没法安装apc扩展&#8230;&#8230;..</p>
<p>先贴上切词函数,目前只能识别数据字典的词条分词,其他方面的可以扩展.<br />
Trie数据字典保存在apc共享缓存中,根据词条首字母$key 序列化$value 了trie子树,序列化的效率真他妈低,影响了整体分词的效率</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #F0D050;">$result</span> <span style="color: #F0D050;">=</span><span style="color: #50F0D0;">''</span><span style="color: #F0D050;">;</span>
<span style="color: #F0B0F0; font-weight: bold;">function</span> pai_scw<span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$text</span><span style="color: #F0D050;">=</span><span style="color: #50F0D0;">&quot;&quot;</span><span style="color: #D0F050;">&#41;</span>
<span style="color: #D0F050;">&#123;</span>
	<span style="color: #F0B0F0; font-weight: bold;">global</span> <span style="color: #F0D050;">$result</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0D050;">$textlen</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">mb_strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$text</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0D050;">$trienode</span> <span style="color: #F0D050;">=</span> <span style="color: #D0F050; font-weight: bold;">false</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0D050;">$find</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">array</span><span style="color: #D0F050;">&#40;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0D050;">$wordrootposition</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">0</span><span style="color: #F0D050;">;</span><span style="color: #B0B0B8; font-style: italic;">//词根位置</span>
         <span style="color: #F0D050;">$prenode</span> <span style="color: #F0D050;">=</span> <span style="color: #D0F050; font-weight: bold;">false</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">''</span><span style="color: #F0D050;">;</span>
	<span style="color: #F0B0F0;">for</span> <span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">0</span><span style="color: #F0D050;">;</span> <span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">&lt;</span> <span style="color: #F0D050;">$textlen</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">++</span><span style="color: #D0F050;">&#41;</span>
	<span style="color: #D0F050;">&#123;</span>
		<span style="color: #F0D050;">$character</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">mb_substr</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$text</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">,</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
        <span style="color: #F0D050;">$success</span> <span style="color: #F0D050;">=</span> <span style="color: #D0F050; font-weight: bold;">false</span><span style="color: #F0D050;">;</span>
        <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #D0C0F0;">empty</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$word</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
        	<span style="color: #F0D050;">$trienode</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">unserialize</span><span style="color: #D0F050;">&#40;</span>apc_fetch<span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$character</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$success</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
        	<span style="color: #B0B0B8; font-style: italic;">//unserialize 效率低</span>
&nbsp;
            <span style="color: #B0B0B8; font-style: italic;">//当$character 没有一个可以匹配的字符时,直接跳过，不做倒退匹配</span>
            <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">!</span><span style="color: #F0D050;">$success</span><span style="color: #D0F050;">&#41;</span>
            <span style="color: #D0F050;">&#123;</span>
                <span style="color: #F0B0F0;">continue</span><span style="color: #F0D050;">;</span>
                <span style="color: #F0D050;">$result</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$result</span><span style="color: #F0D050;">.</span><span style="color: #F0D050;">$character</span><span style="color: #F0D050;">;</span>
            <span style="color: #D0F050;">&#125;</span>
        <span style="color: #D0F050;">&#125;</span>
        <span style="color: #B0B0B8; font-style: italic;">//匹配词首</span>
        <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$success</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
        	<span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">.</span><span style="color: #F0D050;">$character</span><span style="color: #F0D050;">;</span>
        	<span style="color: #F0B0F0;">continue</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
&nbsp;
        <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #D0C0F0;">isset</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$trienode</span><span style="color: #D0F050;">&#91;</span><span style="color: #50F0D0;">'c'</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$character</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span>
		<span style="color: #D0F050;">&#123;</span>
			<span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">.</span><span style="color: #F0D050;">$character</span><span style="color: #F0D050;">;</span>
          <span style="color: #B0B0B8; font-style: italic;">//  echo &quot;isset&quot;.$word.&quot;\n&quot;;</span>
			<span style="color: #F0D050;">$trienode</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$trienode</span><span style="color: #D0F050;">&#91;</span><span style="color: #50F0D0;">'c'</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$character</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">;</span>
			<span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$prenode</span> <span style="color: #F0D050;">==</span> <span style="color: #50F0D0;">0</span><span style="color: #D0F050;">&#41;</span>
			<span style="color: #D0F050;">&#123;</span>
				<span style="color: #F0D050;">$wordrootposition</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$i</span><span style="color: #F0D050;">;</span>
			<span style="color: #D0F050;">&#125;</span>
            <span style="color: #F0D050;">$prenode</span> <span style="color: #F0D050;">=</span> <span style="color: #D0F050; font-weight: bold;">true</span><span style="color: #F0D050;">;</span>
			<span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$trienode</span><span style="color: #D0F050;">&#91;</span><span style="color: #50F0D0;">'w'</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#41;</span>
			<span style="color: #D0F050;">&#123;</span>
			<span style="color: #F0D050;">$find</span><span style="color: #D0F050;">&#91;</span><span style="color: #D0F050;">&#93;</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">array</span><span style="color: #D0F050;">&#40;</span><span style="color: #50F0D0;">'position'</span><span style="color: #F0D050;">=&gt;</span><span style="color: #F0D050;">$wordrootposition</span><span style="color: #F0D050;">,</span><span style="color: #50F0D0;">'word'</span> <span style="color: #F0D050;">=&gt;</span><span style="color: #F0D050;">$word</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
                <span style="color: #F0D050;">$result</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$result</span><span style="color: #F0D050;">.</span><span style="color: #50F0D0;">&quot;-&quot;</span><span style="color: #F0D050;">.</span><span style="color: #F0D050;">$word</span><span style="color: #F0D050;">.</span><span style="color: #50F0D0;">&quot;-&quot;</span><span style="color: #F0D050;">;</span>
			<span style="color: #D0F050;">&#125;</span>
		<span style="color: #D0F050;">&#125;</span>
		<span style="color: #F0B0F0;">else</span> 
		<span style="color: #D0F050;">&#123;</span>
&nbsp;
            <span style="color: #B0B0B8; font-style: italic;">/*@example 词条:北京奥委会
             *@example 判断分词：北京 奥运
             *@example 应该回溯到位置 奥的位置
             */</span>
&nbsp;
			<span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">-</span> <span style="color: #D0C0F0;">mb_strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$word</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
			<span style="color: #F0D050;">$prenode</span> <span style="color: #F0D050;">=</span> <span style="color: #D0F050; font-weight: bold;">false</span><span style="color: #F0D050;">;</span>
            <span style="color: #F0D050;">$word</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">''</span><span style="color: #F0D050;">;</span>
            <span style="color: #B0B0B8; font-style: italic;">//添加分词结果</span>
            <span style="color: #F0D050;">$result</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$result</span><span style="color: #F0D050;">.</span><span style="color: #F0D050;">$character</span><span style="color: #F0D050;">;</span>
		<span style="color: #D0F050;">&#125;</span>
	<span style="color: #D0F050;">&#125;</span>
	<span style="color: #F0B0F0;">return</span> <span style="color: #F0D050;">$find</span><span style="color: #F0D050;">;</span>
<span style="color: #D0F050;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.paitoubing.cn/blog/pai_scw/feed</wfw:commentRss>
		</item>
		<item>
		<title>communication is very important</title>
		<link>http://www.paitoubing.cn/blog/communication-is-very-important</link>
		<comments>http://www.paitoubing.cn/blog/communication-is-very-important#comments</comments>
		<pubDate>Wed, 04 Aug 2010 04:01:08 +0000</pubDate>
		<dc:creator>排头兵</dc:creator>
		
		<category><![CDATA[碎言碎语]]></category>

		<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://www.paitoubing.cn/blog/?p=601</guid>
		<description><![CDATA[In more than 4 years of working with people in web development,website plan,search engine marketing and php training, I have come in contact with many individuals who have gave me a wealth of advice,
And I haved found communication is so important that I... ]]></description>
			<content:encoded><![CDATA[<p>In more than 4 years of working with people in web development,website plan,search engine marketing and php training, I have come in contact with many individuals who have gave me a wealth of advice,<br />
And I haved found communication is so important that I began to change my role as communicator,Not noly as technical staff.</p>
<p><a href="http://www.paitoubing.cn/blog/wp-content/uploads/2010/08/505b1034cc4687afd0a2d399.jpg"><img src="http://www.paitoubing.cn/blog/wp-content/uploads/2010/08/505b1034cc4687afd0a2d399.jpg" alt="communication" title="communication" width="400" height="400" class="alignnone size-full wp-image-603" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paitoubing.cn/blog/communication-is-very-important/feed</wfw:commentRss>
		</item>
		<item>
		<title>Levenshtein distance相似度算法</title>
		<link>http://www.paitoubing.cn/blog/levenshtein-distance-php</link>
		<comments>http://www.paitoubing.cn/blog/levenshtein-distance-php#comments</comments>
		<pubDate>Sun, 01 Aug 2010 08:19:35 +0000</pubDate>
		<dc:creator>排头兵</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.paitoubing.cn/blog/?p=588</guid>
		<description><![CDATA[Levenshtein distance最先是由俄国科学家Vladimir Levenshtein在1965年发明，用他的名字命名。
主要用途：
Spell checking(拼写检查)
Speech recognition(语句识别)
DNA analysis(DNA分析)
Plagiarism detection(抄袭检测)
Spam e... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Levenshtein_distance">Levenshtein distance</a>最先是由俄国科学家Vladimir Levenshtein在1965年发明，用他的名字命名。<br />
<strong>主要用途：</strong></p>
<p>Spell checking(拼写检查)<br />
Speech recognition(语句识别)<br />
DNA analysis(DNA分析)<br />
Plagiarism detection(抄袭检测)<br />
Spam email  (垃圾邮件检测)<br />
Duplicate content (重复内容)</p>
<p>计划用php写一个<strong>内容相似度引擎</strong>,这篇博客是其核心思想之一,主要这个DPS需要掌握,当然php有一个相似度函数similar_text可以参考,我为了体现算法思路,就用php实现了.</p>
<p>随便提一下，内容相似度引擎的思路：</p>
<h2>内容DNA识别技术思路</h2>
<p><strong>1、对一篇文章进行分词,根据分词的结果排序,得出初级DNA</strong></p>
<p>内容相似度引擎不只是简单的通过算法来判断内容是否相似，分词的目的是为了体现 语义,任何一篇文章都会有主题语句,可以通过算法大概的分析一篇文章的关键词出来，然后按照既定的规律进行排序，结合第2，3点可以判断一篇文章是否抄袭</p>
<p><strong>2、对一篇文章进行整句切分, 算出句子的DNA,</strong></p>
<p>在符合第1点的同时，如果一篇文章语句很多类似，那么也是可以判定一本文章是否有抄袭的嫌疑，当然，某些人会去改一些词，使得机器不好判断，结合第3点可以在一定程度防止通过篡改某些词来蒙混过关</p>
<p><strong>3、对一篇文章进行分词，统计每个词的数量，并根据分词结果排序,获得高级DNA</strong></p>
<p>对第3点的分词结果做一个简单描述<br />
比如一篇文章介绍 中国人民解放军的，假如，中国这个词出现了67词，人民出现了12词，解放军出现了10词，后面陆续。。。。。。。。<br />
根据 汉字首字符 chr,获得ascii编码，进行一个常规数组排序，比如从大到小。。。。。。。。。可以获得一个词的有序列表，记住包括出现次数。<br />
截取有序列表的80%词汇量，次数*词/总数=80%，如果另外一篇文章符合前面2点，也符合第3点，那么这篇文章可以判断是篡改抄袭的.</p>
<p>思路就这些，准备明后天写写代码，计划用PHP来实现，C语言不是很熟悉，为了体现思路，效率估计不会很高。</p>
<p><strong>Levenshtein distance or 相似度 or 最短距离 算法 代码</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #F0D050;">&lt;</span> ?php
<span style="color: #F0D050;">@</span>author shjuto<span style="color: #F0D050;">@</span>gmail<span style="color: #F0D050;">.</span>com
<span style="color: #F0D050;">@</span>blog http<span style="color: #F0D050;">:</span><span style="color: #B0B0B8; font-style: italic;">//www.paitoubing.cn</span>
<span style="color: #F0D050;">@</span><span style="color: #D0C0F0;">date</span> <span style="color: #50F0D0;">2010</span><span style="color: #F0D050;">-------</span><span style="color: #50F0D0;">2012</span> 地球
<span style="color: #F0B0F0; font-weight: bold;">class</span> similarity
<span style="color: #D0F050;">&#123;</span>
    <span style="color: #F0B0F0; font-weight: bold;">function</span> ld<span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span>
    <span style="color: #D0F050;">&#123;</span>
        <span style="color: #F0D050;">$str1len</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
        <span style="color: #F0D050;">$str2len</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
&nbsp;
        <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1len</span> <span style="color: #F0D050;">==</span> <span style="color: #50F0D0;">0</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
            <span style="color: #F0B0F0;">return</span> <span style="color: #F0D050;">$str2len</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
&nbsp;
        <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str2len</span> <span style="color: #F0D050;">==</span> <span style="color: #50F0D0;">0</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
            <span style="color: #F0B0F0;">return</span> <span style="color: #F0D050;">$str1len</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #F0D050;">$distance</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">array</span><span style="color: #D0F050;">&#40;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
&nbsp;
        <span style="color: #F0B0F0;">for</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">0</span><span style="color: #F0D050;">;</span> <span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">&lt;=</span> <span style="color: #F0D050;">$str1len</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">++</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
            <span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #50F0D0;">0</span><span style="color: #D0F050;">&#93;</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$i</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
&nbsp;
        <span style="color: #F0B0F0;">for</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$j</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">0</span><span style="color: #F0D050;">;</span> <span style="color: #F0D050;">$j</span> <span style="color: #F0D050;">&lt;=</span> <span style="color: #F0D050;">$str2len</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$j</span><span style="color: #F0D050;">++</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
            <span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #50F0D0;">0</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #D0F050;">&#93;</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$j</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
&nbsp;
        <span style="color: #F0B0F0;">for</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">1</span><span style="color: #F0D050;">;</span> <span style="color: #F0D050;">$i</span> <span style="color: #F0D050;">&lt;=</span> <span style="color: #F0D050;">$str1len</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">++</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
            <span style="color: #F0D050;">$char1</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$str1</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">;</span>
&nbsp;
            <span style="color: #F0B0F0;">for</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$j</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">1</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$j</span> <span style="color: #F0D050;">&lt;=</span> <span style="color: #F0D050;">$str2len</span><span style="color: #F0D050;">;</span><span style="color: #F0D050;">$j</span><span style="color: #F0D050;">++</span><span style="color: #D0F050;">&#41;</span>
            <span style="color: #D0F050;">&#123;</span>
                <span style="color: #F0D050;">$char2</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">;</span>
                <span style="color: #F0B0F0;">if</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$char1</span> <span style="color: #F0D050;">==</span> <span style="color: #F0D050;">$char2</span><span style="color: #D0F050;">&#41;</span>
	            <span style="color: #D0F050;">&#123;</span>
	                <span style="color: #F0D050;">$temp</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">0</span><span style="color: #F0D050;">;</span>
	            <span style="color: #D0F050;">&#125;</span>
	            <span style="color: #F0B0F0;">else</span>
	            <span style="color: #D0F050;">&#123;</span>
	                <span style="color: #F0D050;">$temp</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">1</span><span style="color: #F0D050;">;</span>
	            <span style="color: #D0F050;">&#125;</span>
&nbsp;
	            <span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #D0F050;">&#93;</span> <span style="color: #F0D050;">=</span> <span style="color: #D0C0F0;">min</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">+</span><span style="color: #50F0D0;">1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">+</span><span style="color: #50F0D0;">1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$i</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$j</span><span style="color: #F0D050;">-</span><span style="color: #50F0D0;">1</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">+</span><span style="color: #F0D050;">$temp</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
            <span style="color: #D0F050;">&#125;</span>
&nbsp;
        <span style="color: #D0F050;">&#125;</span>
        <span style="color: #B0B0B8; font-style: italic;">//print_r($distance);</span>
        <span style="color: #B0B0B8; font-style: italic;">// 可以注释掉，下面table的内容，为了测试思路，直观显示数组内容，添加上去的</span>
        <span style="color: #F0B0F0;">echo</span> <span style="color: #50F0D0;">'&lt;table border=1&gt;'</span><span style="color: #F0D050;">;</span>
        <span style="color: #F0B0F0;">foreach</span> <span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$distance</span> <span style="color: #F0B0F0;">as</span> <span style="color: #F0D050;">$key</span><span style="color: #F0D050;">=&gt;</span><span style="color: #F0D050;">$value</span><span style="color: #D0F050;">&#41;</span>
        <span style="color: #D0F050;">&#123;</span>
        	<span style="color: #F0B0F0;">echo</span> <span style="color: #50F0D0;">'&lt;tr&gt;'</span><span style="color: #F0D050;">;</span>
        	<span style="color: #F0B0F0;">foreach</span> <span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$value</span> <span style="color: #F0B0F0;">as</span> <span style="color: #F0D050;">$h</span><span style="color: #D0F050;">&#41;</span>
        	<span style="color: #D0F050;">&#123;</span>
        		<span style="color: #F0B0F0;">echo</span> <span style="color: #50F0D0;">'&lt;td&gt;'</span><span style="color: #F0D050;">.</span><span style="color: #F0D050;">$h</span><span style="color: #F0D050;">.</span><span style="color: #50F0D0;">'&lt;/td&gt;'</span><span style="color: #F0D050;">;</span>
        	<span style="color: #D0F050;">&#125;</span>
        	<span style="color: #F0B0F0;">echo</span> <span style="color: #50F0D0;">'&lt;/tr&gt;'</span><span style="color: #F0D050;">;</span>
        <span style="color: #D0F050;">&#125;</span>
        <span style="color: #F0B0F0;">echo</span> <span style="color: #50F0D0;">''</span><span style="color: #F0D050;">;</span>
&nbsp;
        <span style="color: #F0B0F0;">return</span> <span style="color: #F0D050;">$distance</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$str1len</span><span style="color: #D0F050;">&#93;</span><span style="color: #D0F050;">&#91;</span><span style="color: #F0D050;">$str2len</span><span style="color: #D0F050;">&#93;</span><span style="color: #F0D050;">;</span>
    <span style="color: #D0F050;">&#125;</span>
&nbsp;
    <span style="color: #F0B0F0; font-weight: bold;">function</span> sim<span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span>
    <span style="color: #D0F050;">&#123;</span>
        <span style="color: #F0D050;">$ld</span> <span style="color: #F0D050;">=</span> <span style="color: #F0D050;">$this</span><span style="color: #F0D050;">-&gt;</span><span style="color: #FFF;">ld</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
&nbsp;
        <span style="color: #F0B0F0;">return</span> <span style="color: #50F0D0;">1</span> <span style="color: #F0D050;">-</span> <span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$ld</span> <span style="color: #F0D050;">/</span> <span style="color: #D0C0F0;">max</span><span style="color: #D0F050;">&#40;</span><span style="color: #D0C0F0;">strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">,</span><span style="color: #D0C0F0;">strlen</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
    <span style="color: #D0F050;">&#125;</span>
&nbsp;
<span style="color: #D0F050;">&#125;</span>
&nbsp;
<span style="color: #F0D050;">$similarity</span> <span style="color: #F0D050;">=</span> <span style="color: #F0B0F0; font-weight: bold;">new</span> similarity<span style="color: #D0F050;">&#40;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
<span style="color: #F0D050;">$str1</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">'kitten'</span><span style="color: #F0D050;">;</span>
<span style="color: #F0D050;">$str2</span> <span style="color: #F0D050;">=</span> <span style="color: #50F0D0;">'sitting'</span><span style="color: #F0D050;">;</span>
<span style="color: #D0C0F0;">print_r</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$similarity</span><span style="color: #F0D050;">-&gt;</span><span style="color: #FFF;">ld</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span>
<span style="color: #F0B0F0;">echo</span> <span style="color: #F0D050;">$similarity</span><span style="color: #F0D050;">-&gt;</span><span style="color: #FFF;">sim</span><span style="color: #D0F050;">&#40;</span><span style="color: #F0D050;">$str1</span><span style="color: #F0D050;">,</span><span style="color: #F0D050;">$str2</span><span style="color: #D0F050;">&#41;</span><span style="color: #F0D050;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.paitoubing.cn/blog/levenshtein-distance-php/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
