韓日ミニ辞典開発歴に戻る

最後の文字でで分岐させる

文字列の最後がまたはで終わる場合の処理を行います。

 switch($Vow_cons_code) {
 case 0: #母音終わり
  switch ($last_spel) {
  case "가":
    $last_morph = substr($morph, $len_w-6, 3);
    $found = Analyze_ga($morph, $last_morph, "", "");
    break;
{中略}
  case "까":
    $last_morph = substr($morph, $len_w-6, 3);
    $found = Analyze_GGa($morph, $last_morph, "", "");
    break;
  case "다":
    $last_morph = substr($morph, $len_w-6, 3);
    $found = Analyze_da($morph, $last_morph, "", "");
    break;
{中略}

疑問形の処理

疑問形の処理と平叙形の処理は基本的に同じなので,疑問形の処理のみを解説します。

#--------------------------#

#  GGaの解析形態素解析  #

#------- ------------------#
function Analyze_GGa($morph, $last_morph, $x, $y) {#utf-8code
$found="";
global $flag;
global $script;
global $pastSet;
$ending="(格式丁寧体語尾=疑問文)";
 $l_m=strlen($morph);

 $stem = substr($morph, 0, $l_m-3); #語幹の切り出し
 if ($last_morph=="니"){//니까
  $last_stem = substr($morph, $l_m-6, 3);
  $last_Scode = substr(Uni_conv($last_stem),0,5)-44032;
  $lastVowCons_code = $last_Scode % 28;
  $c_stem=substr($morph, 0, $l_m-6);
  if ($last_stem=="습") {#습니까
    $last_c_stem=substr($morph,$l_m-9,3);
    $last_c_Scode = substr(Uni_conv($last_c_stem),0,5)-44032;
    $VowCons_code = $last_c_Scode % 28;
    if (($VowCons_code >0)&&($VowCons_code<>8)) {
      $found+=1;
      $keyword = mb_convert_encoding($c_stem."다", 'UTF-8', 'auto');
      print "【解析".$found."】 <a href=\"$script?key=$keyword\">".$c_stem."</a>(子音語幹用言)+";
      print "습니까".$ending."<br>";
    } else {
      print "<font color=red>入力間違いの可能性があります:".$c_stem."+습니까【母音語幹やㄹ語幹には続きません】</font><br>\n";
    }
  } elseif ($lastVowCons_code==17) {#bnida
    $found+=1;
    $lastUni=$last_Scode+44032-17;
    $newStem=$c_stem."&#".$lastUni;
    $keyword = mb_convert_encoding($newStem."다", 'UTF-8', 'auto');
    print "【解析".$found."】 <a href=\"$script?key=$keyword\">".$newStem."</a>(母音語幹用言)+";
    print "ㅂ니까".$ending."<br>";
    $found+=1;
    $lastUni=$last_Scode+44032-17+8;
    $newStem=$c_stem."&#".$lastUni;
    $keyword = mb_convert_encoding($newStem."다", 'UTF-8', 'auto');
    print "【解析".$found."】 <a href=\"$script?key=$keyword\">".$newStem."</a>(ㄹ語幹用言)+";
    print "ㅂ니까".$ending."<br>";
  }
 }
 return $found;
}

韓日ミニ辞典開発歴に戻る


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-07-04 (月) 10:04:20 (3149d)