1つの関数によるPHPの単語のスピーチの一部の定義

http://toster.ru/2410/の投稿を読んだ後、単語の文字列から品詞を決定する関数を作成しました。 もちろん、定義は100%ではありませんが、簡単に変更できます。



この関数は、グループ値の配列を返します。





関数呼び出しの例:

print_r(chastrechiRUS('     '));
      
      







関数の結果(配列):

 Array ( [0] => 8 [1] => 4 [2] => 3 [3] => 1 [4] => 2 [5] => 4 )
      
      









機能コード:

 function chastrechiRUS($string){ /*  : 1.  2.  3.  4.  5.  6.  7.  8.  */ $groups = array( 1 => array ('','','','','','','','','','','','','','', '','','','','','','','','','','',''), 2 => array ('','','','','','','','','','','','',''), 3 => array ('','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','','','', '','','','','','','','','','','',''), 4 => array ('','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','', '', '', '','','','','',''), 5 => array ('', '', '', '', '', '', '', '', '','','','','','','','',''), 6 => array ('','','','','','','','','','','','','','','', '','','','','','','','','','','','','','',''), 7 => array ('','','','','','','','','','','', '','','','','','','','','','','','','','','', '','','','',''), 8 => array ('','','','') ); $res=array(); $string=mb_strtolower($string); $words=explode(' ',$string); //print_r($words); foreach ($words as $wk=>$w){ $len_w=mb_strlen($w); foreach ($groups as $gk=>$g){ foreach ($g as $part){ $len_part=mb_strlen($part); if ( mb_substr($w,-$len_part)==$part && $res[$wk][$gk]<$len_part //  ,  || mb_strpos($w,$part)>=(round(2*$len_w)/5) && $gk==2 //,  40%      || mb_substr($w,0,$len_part)==$part && $res[$wk][$gk]<$len_part && $gk==7 //,   || $w==$part //  ) { //echo $w.':'.$part."(".$gk.")<br>"; if ($w!=$part) $res[$wk][$gk]=mb_strlen($part); else $res[$wk][$gk]=99; } } } if (!isset($res[$wk][$gk])) $res[$wk][$gk]=0; //echo "<hr>"; } $result=array(); foreach($res as $r) { arsort($r); array_push($result,key($r)); } return $result; }
      
      







更新 :2012年9月27日-機能コードを更新。 マルチバイト文字列への移行(mb_ *)。 新しい品詞を追加しました。 単語の大部分が配列に追加されました。



更新日:2012年9月29日-自分でこれを書いている人のためのロシア語に関する有用な情報: ここ



コメントを書いてください-一緒に仕上げます。



All Articles