アイソモカ

知の遊牧民の開発記録

開発記録 191027 Sun (100本ノック#040 & パネル塗装)

自然言語処理100本ノックの続きと、 先日製作したデスクパネルの塗装。

昨日と今日やったこと

実装の続き

前回まででメインの Morph クラスはだいたいできた。

ちょっと気になるところ

*から始まる文のうち、*アスタリスク)の形態素解析結果を除く場合分けをした。split()の要素数で場合分けする。 (けど、Qiitaにある作例を見ると、正規表現係り受け解析結果かどうかを判定するほうがスマートかもと思う)

文の終わりはEOSでマークされるが、元ファイルの行には文じゃないものがあることに気づいた。章番号と (とじかっこ)が一行になっているところ。 章番号は置いておくとして、なぜか(とじかっこ)の前に改行があるところがある。(とじかっこ)が1文として扱われるのは気持ち悪いので、元ファイルを編集して\n」に置き換えた。

ひとまず完成

「文」には空白行や章番号の行は含まれないという認識。 (「文」に空白行や章番号の行を含むとする場合もある)

3文目の形態素列の表示

    記号 空白
どこ どこ 名詞 代名詞
で で 助詞 格助詞
生れ 生れる 動詞 自立
た た 助動詞 *
か か 助詞 副助詞/並立助詞/終助詞
とんと とんと 副詞 一般
見当 見当 名詞 サ変接続
が が 助詞 格助詞
つか つく 動詞 自立
ぬ ぬ 助動詞 *
。 。 記号 句点

答え合わせ

Qiitaセンパイの作例を見ながら、改善する。

クラスの特殊メソッドを定義する def __str__(self):

クラスで作ったインスタンスをprint()で表示すると、<__main__.Morph object at 0x10ナントカナントカ>って番地みたいなやつ(?)が表示されてしまうんですが、代わりに表示したい文字列を def __str__(self): に書いておくという手があるんですね。

各文をMorphオブジェクトのリストとして表現する

表現したあとにどうすればいいのか、後回しにしたまま忘れていた。

yield文を使って都度戻り値を戻しておくということにしました。yield文、便利ね。

DIY:デスクパネルを塗った

先日製作したデスクパネルを塗装した。

つや消しニスなのでテカりすぎず、手触りもすべすべで、焼桐の色もそのまま、良い感じやと思います。