字句解析 【lexical analysis】
概要
字句解析(lexical analysis)とは、ある言語で書かれた文について、文字の並びを解析し、言語的に意味のある最小の単位(トークン)に分解する処理のこと。自然言語処理やプログラミング言語のコンパイルなどで行われる。プログラムの処理系の場合、プログラミング言語などの人工言語で書かれたソースコードを先頭から順に一文字ずつ読み込んでいき、構文規則などに照らして意味のある単位ごとに区切っていく。例えば、「var a=99;」というコードを「var」「a」「=」「99」「;」という要素に分解する。
このようにして得られたトークンの列は「構文解析」(syntax analysisまたはparse)にかけられ、文や式ごとに分離したり、それらがどのような構造で成り立っているかが分析される。結果は構文木などの構造的なデータで表され、最適化や機械語コードへの変換といった他の処理のもとになる。
自然言語処理でも同じように、自然言語で書かれた文を一文字ずつ読み込んで、単語ごとに分解し、それぞれの品詞や変化などを確定していく処理を字句解析という。英語のように単語間に空白を挟んで「分かち書き」を行う言語では単語に分解する作業は不要だが、日本語のように続けて書く言語では単語境界を確定する「形態素解析」は重要な処理となる。
(2021.10.26更新)