作成したJAVAプログラムJPrologで、夏目漱石「吾輩は猫である」の冒頭部分のパラグラフ全体をprolog化してみた。KNPが一度の処理を300字くらいを限界にしているので、パラグラフ全体を一挙にはできず、文章一つづつのprolog化になり、全体で3.5秒ほどかかった。
まだ、形態素解析の部分や、ノードとリーフの語の形成に不満はあるが、それは後でじっくり治していこうと思う。まず、どれだけやれるのかを確かめたい。この後、さらに長い文書をやらせようと思っている。
swiprologに読み込ませたが、いくつか問題を克服したのち、以下の状態では、正常に読み込んでいる。主に問題は、動詞の活用形と原型のリストをめぐってのものだった。仕様を、いかに記載したように改訂した。
plsample(line0, node(は, 吾輩, node(である, 猫, [ ] ) ) ). plsample(line1, node(は, 名前, node([], まだ, node([], 無い, [ ] ) ) ) ). plsample(line2, node(か, node(で, どこ, [生れた, 生れる] ), node([], とんと, node(が, 見当, node(ぬ, [つか, つく], [ ] ) ) ) ) ). plsample(line3, node(だけは, node(いた, node([], node(で, node([], node([], node([], node([], 何でも, 薄暗い ), じめじめ ), [した, する] ), 所 ), ニャーニャー ), [泣いて, 泣く] ), 事 ), node(いる, [記憶, [して, する]], [ ] ) ) ). plsample(line4, node(は, 吾輩, node(で, ここ, node([], [始めて, 始める], node(を, node([], node(と, 人間, いう ), もの ), node([], [見た, 見る], [ ] ) ) ) ) ) ). plsample(line5, node(しかも, [], node(と, node(で, あと, 聞く ), node(は, それ, node(と, 書生, node([], いう, node(中で, 人間, node([], 一番, node(な, 獰悪, node(であったそうだ, 種族, [ ] ) ) ) ) ) ) ) ) ) ). plsample(line6, node(は, node(と, node([], この, 書生 ), いうの ), node(を, node([], 時々, 我々 ), node([], [捕まえて, 捕まえる], node([], [煮て, 煮る], node(と, 食う, node([], いう, node(である, 話, [ ] ) ) ) ) ) ) ) ). plsample(line7, node(しかし, [], node(は, node([], その, 当時 ), node([], node([], node([], node(から, node(も, node(何という, [], 考 ), なかった ), 別段 ), 恐 ), [し, する] ), node([], いとも, node(なかった, [思わ, 思う], [ ] ) ) ) ) ) ). plsample(line8, node(の, node([], ただ, 彼 ), node(に, 掌, node(られて, [載せ, 載せる], node(と, スー, node(られた, [[持ち, 持つ], [上げ, 上げる]], node([], 時, node([], 何だか, node([], フワフワ, node([], [した, する], node(が, 感じ, node(ばかりである, [あった, ある], [ ] ) ) ) ) ) ) ) ) ) ) ) ). plsample(line9, node(の, 掌, node(で, 上, node(の, node([], node([], 少し, [落ちついて, 落ちつく] ), 書生 ), node(を, 顔, node(が, [[見た, 見る], の], node(いわゆる, [], node(と, 人間, node([], いう, node(の, もの, node(であろう, 見始め, [ ] ) ) ) ) ) ) ) ) ) ) ). plsample(line10, node(が, node([], node(だと, node([], node([], node([], この, 時 ), 妙な ), もの ), [思った, 思う] ), 感じ ), node(でも, 今, node(いる, [残って, 残る], [ ] ) ) ) ). plsample(line11, node(れ, node([], node(を, 第一毛, [もって, もつ] ), [装飾, [さ, する]] ), node(の, べきはず, node(が, 顔, node([], つる, node([], [つるして, つるす], node([], まるで, node(だ, 薬缶, [ ] ) ) ) ) ) ) ) ). plsample(line12, node(が, node([], node(にも, node([], その後, 猫 ), だいぶ ), [逢った, 逢う] ), node(が, node([], node(度も, node(には, node([], こんな, 片輪 ), 一 ), [出会した, 出会す] ), 事 ), node([], ない, [ ] ) ) ) ). plsample(line13, node([], [のみ, のむ], node(ず, [なら, なる], node(の, 顔, node(が, 真中, node([], あまりに, node(いる, [突起, [して, する]], [ ] ) ) ) ) ) ) ). plsample(line14, node([], そうして, node(の, node([], その, 穴 ), node(から, 中, node(を, node(と, node([], 時々, ぷうぷう ), 煙けむり ), node([], 吹く, [ ] ) ) ) ) ) ). plsample(line15, node(くて, node([], どうも, 咽むせぽ ), node([], 実に, node([], [弱った, 弱る], [ ] ) ) ) ). plsample(line16, node(が, これ, node(は, node(である, node([], node(と, node([], node(の, 人間, 飲む ), 煙草 ), いう ), もの ), 事 ), node([], ようやく, node([], この頃, node([], [知った, 知る], [ ] ) ) ) ) ) ).