入力は文節区切りとするので、switch文はINPUT_CHUNKを想定。文により大きく2つに分かれる。助詞,接続助詞,*,*,*,*,で,デ,デ要はif文の前半(l.486のelseの前)は'*'ではじまる「文節情報」の行の処理であり、後半は各形態素の行にあたる。あるが、文字列を指定された分割文字(この例だと空白)でトークンに分割するものである。(ここの"token"は形態素ではないので注意。treeの中に文節スロットを追加する。定義はl.338にある。文節の情報はここに入る。コードでは文節の情報をいろいろセットしているが、入力が文節区切りならばほとんど関係ない情報ばかりである。素性情報if文後半、形態素の方。tokenize()。今度は分割文字がタブなのに注意。上の入力フォーマットで「読ん」の次がタブなのだ。動詞,自立,*,*,五段・マ行,連用タ接続,読む,ヨン,ヨンのようになる。このcolumn[1]の内容は、mecabの辞書のエントリ内容ほとんどそのままである。同様、treeへのスロット追加。形態素の文字列そのもの。「正規化された」文字列。からして、全角/半角表記を統一するものだろう。コンマを分割したものが入る。tokenizeCSV()はtokenize()と同様の動作、ただし分割文字がコンマになる。次回は素性選択レイヤを見る。係り受けツールのcabochaをいじっているが、いろいろとひっかかってる。cabochaは係り受けをどうやって決めているのか?を知るため、ソースを少し読んでみた。http://code.google.com/p/cabocha/からソースをDL。このページにいろいろ基本的な解説があるので、まずそれを読んでおく。