第3章 字句解析 3.1 3.2 3.3 3.4 字句の構文と正規表現 字句解析のプログラム 字句解析の注意点 字句解析の実際 3.1 字句の構文と正規表現 (1)Cの識別子の例 識別子::=英字 | 識別子 英数字 英数字::=英字 | 数字 英字 ::=[A-Z] | [a-z] | _ 数字 ::=[0-9] (2)アルファベットの正規表現(regular expression) ① ② ③ ④ ⑤ 空列εは正規表現である。 a∈Vならば、aは正規表現である。 rとsが正規表現ならば、r|sは正規表現である。 rとsが正規表現ならば、rsは正規表現である。 rが正規表現ならば、r*は正規表現である。 適用順序を定めるために括弧を用いる。 【表現方法】 【例】英字(英字 | 数字)* ① |ε| = {ε} ② |a| = {a}(a∈V) ③ |r|s| = |r|∪|s| ④ |r s| = {xy| x∈|r|, y∈|s|} ⑤ |r* | = {x1x2…xn | xi∈|r|, n≧0} (3)正規表現と正規文法 ①両者が表現できる範囲は、ほぼ同じ。 ②正規表現のほうが見やすい。 一般に正規表現が使われることが多い。 (4)形態素解析(morphemic analysis) 自然言語の場合 自然言語の場合、 語形が変形する(単/複数、過去/過去分詞、…)ので、 単語よりもより小さい単位の形態素(morpheme)の単位で 解析することが多い。 これを形態素解析(morphemic analysis)と呼ぶ。 【未知語の処理】 ~able, ~ish,~cal :形容詞 ~ment,~ion, ~ology :名詞 【日本語における最長マッチング】 日本語の場合、単語に分解するには、パターンマッチングを行 う必要がある。このとき最長マッチングが行われる。
© Copyright 2025 ExpyDoc