PHP の単純な中国語単語分割システムの構造: 最初の単語ハッシュ テーブル、トライ インデックス ツリー ノードの利点: 単語分割では、クエリ対象の単語の長さを予測する必要がなく、ツリー チェーンに沿って単語ごとに照合されます。短所: 構築とメンテナンスが複雑で、多くの単語分岐があり、ある程度のスペースが無駄になります
phpチュートリアルの簡単な中国語単語分割システム
構造: 最初の単語ハッシュテーブル、トライインデックスツリーノード
長所: 単語分割時、クエリされる単語を予測する必要はありません。 、の長さはツリー チェーンに沿って逐語的に一致します。
短所: 構築とメンテナンスが複雑、単語の分岐が多く、ある程度のスペースが無駄になる
* @バージョン 0.1
* @todo が一般的な辞書アルゴリズムを構築し、簡単な単語分割を作成しました
* @author shjuto@ gmail.com
* 辞書ツリー
*
*/
http://www.bkjia.com/PHPjc/444871.htmlクラストライ
for($i = 0;$i
{
,'isword '=> ;false);children '] [$ character] = array(' isword '=> false); /**
*/
function & isword($word)
{
$trienode = &$this->trie;
for($i = 0;$i < $word);$ i++)
{
$character = $word[$i];
if(!isset($trienede['children'][$character]))
{
return false;
}
else
{
// 判断词结束
if($i == (strlen($word)-1) && $trienede['children'][$character]['isword'] == true)
{
trueを返す;
}
elseif( $i == (strlen($word)-1) && $trienode['children'][$character]['isword'] == false)
{
falseを返す;
}
$trienode = &$trienode[ '子供'][$character];
}
}
}
$ find = array(); for($ i = 0; $ i&lt; $ i ++){if(isset($trienode['children'][$text[$i]]))
{
$word = $word .$text[$i];
$trienode = $trienode['children'][ $text[$i]];
if($prenode == false)
{
$wordrootposition = $i;
}
$prenode = true;
if($trienode['isword'])
{
$find [] = array('position'=>$wordrootposition,'word' =>$word);
}
}
} else
{
$trienode = $tree;
$word = '';
if($ prenode)
{
$i = $i -1;
$prenode = false;
}
}
}
。
www.bkjia.com
true