最終更新日 1999年11月10日
ひとつ上に戻ろう トップ・ページへ戻ろう

その昔パソコン通信で流してた無責任な記事(結局出来ずじまいでやんの)

FEPをつくろう 第一回

最初に

 ある日、ついに貴方はASK68kの馬鹿さ加減に頭にきたとします。 そんな時、どうすれば良いでしょうか?

1) FIXERかVJE、EGConvertを使う
2) ASKのバージョンアップを待つ
3) ATOKの移植を100日参りして願う
4) 先人たちに習って「無いものは作る」

 1)〜3)は意図的に無視して、4)を選ぶのが最善です。 ですが、思い立ってはみたものの、どうして良いのか分からないでしょう。 FSWのFEPなんて聞いたことがないですし、「入門FEPの作り方」なんて本も見たことありません。 それに、あなたがC使いでしたら、 「ぱわふりゃあ」なアセンブラの人とは違ってASKの逆アセンブル&解析もできません。 そんなあなたのための連載です。

さぁ、作りましょう

 と、言っても上のことは無論、僕のことです。 ここ数日色々いじっているのですが上手くはいきません。 そこで、みんなにも助けてもらおうと思い、始めたのがこの連載です。 えっ、他力本願は駄目だって? そんなこと言わないでくださいよ。 「みんなはひとりのために、ひとりはみんなのために」って言うじゃないですか。

 で、作っていきます。まず、FEPの原理について考えなくてはいけません。 あ、先に断っておきますが、この文章の理論は僕の推理でしかありません。

 FEPの目的は、言うまでもなく平仮名文章から漢字文章への変換です。 ただの平仮名から漢字への変換なら簡単なのですが、それが文章になると途端に難しくなります。 それは、外国語の翻訳をやらせるぐらい難しいと言っても過言ではありません(いや過言なんじゃないか?)。 そして、その過程は次の二つからなります。

1. 平仮名文章を文節に分ける
2. 分けた文節に合った漢字を当てる

 この二つのうち、難しい方は1です。2はデータさえあれば何とかなるものですし、 それ以上は何ともなりません。次からは、文節の分け方について考えていきましょう。

品詞の話

 また、先に断っておきます。これは言い訳ですが、僕は理工系の人です。読書は、 活字中毒なくらい好きで、(現代)国語の成績も良かった方ですが、 いかんせん専門的な教育を受けていないのです。 ですから、多々の間違いがあると思いますが、そこはすかさず、つっこんでください。 なお、参考文献として「岩波 国語辞典 第三版」を用いています。

 文節に分けると言うことは、品詞に分けるということに近いです。 分けるときの目印となるものが品詞だからです。その品詞には、名詞、代名詞、形容動詞、 形容詞、動詞、副詞、連体詞、接続詞、感動詞、助詞、助動詞などがあります。 それぞれの文法的な意味は、単語から想像できますよね? ちょっと解りにくいのは助詞ですから、 これを説明します。文節に分けるときに重要にもなってきます。

”女子”ぢゃなくて”助詞”の話

 助詞とは「単独では文節とならず、しかも活用がない単語である。 常に他の言葉のあとにつく。この品詞に属する単語は、 表現対象である物・事柄・状態などを表すものではなく、それらの対象の間の関係を、 話し手がどうとらえたかを示すものである。」と参考文献に書いてあります。 つまりは、次のような文の場合の、

「でも、多く人間そうあるよう、 俺また自分生まれた国育った。」

青字の所のことです。助詞はその働きによって次のように分類できます。

格助詞
主に名詞・代名詞につきその文節が他の文節とどう関係するか、 つまり句の成分としてどんな資格に立つかを示す。

例…が の に を
副助詞
句の成分につき、その文節全体を副詞的にし、あとに来る述語の意味を修飾する。

例…だけ なの まで
係助詞
種々の単語につき、あとに来る述語文節の陳述のしかたを拘束する。

例…は こそ しか
終助詞
句の末部に使い、陳述を拘束する。

例…か が な(文語) な
間投助詞
文節の末にさしはさみ、話し手の感情を添える。

例…さ ね を(文語)
接続助詞
あとの句と結び合わせるために、文中の句の末に使い、 両句の述べる事柄の関係を示す。

例…ば から て

 理解できましたか? 助詞は目立ちませんが、日本語を構成する上でとても大切な品詞です。 「富田靖子を僕は好きだ!」と「富田靖子は僕を好きだ!」とでは、えらい違いになります。

名詞、代名詞の話

 次に簡単な、名詞、代名詞のことを書きましょう。 名詞は「事物を表すのに使う呼び名であって、活用しないことが文法上の特色である。」で、 代名詞は「文法上の性質は名詞と同様であるが、ただそれは事物の呼び名でなく、 話し手や聞き手との相対的な関係に基づいて事物をさす点で名詞と異なるまた、 国語の代名詞の第三人称には『これ、ここ、こっち』 「それ、そこ、そっち」のような体系があることが特色である。」です。 しかしFEPを作る上では、名詞も代名詞もありません。 品詞の分類として情報を持っておいても縁起担ぎ位にしかならないでしょう。

 また、名詞は独立して存在する場合は、すぐに判るので分割の際にも簡単です。 たとえば、歌詞に多いのですが、

「反戦 反核 一体何がが出来ると言うの 小さな叫びが 聞こえないこの街で」

の「反戦」「反核」です。文を書く時に、 判り易いように空白を入れたり句読点を入れたりするんですよね。体言止めの時もそうです。

接続詞の話

 「接続詞は単独で文節になるが、修飾の働きはなく、 もっぱら文や句(場合によっては語)をつなぎ合わせる役目をする単語である。 活用はない。」と書いてあります。これも解りますよね。ですから、これ以上説明はしません。 文節に分ける上でも名詞として考えてしまって良いと思います。 ただし品詞情報を持っておかないと漢字変換の時には困ります。

 次回は、他の品詞についての説明と、文節分割の実際についてです。

FEPをつくろう 第二回

ちょっとため息、はふぅ、、、。

 FEPを(素人が)作るなんて酔狂なことは僕が初めてなんだろうな、 と思っていたのですが、結構いるみたいですね。 たまに行くNIFTYを探検したらFEPのキャビネットまであるじゃないですか。 よく調べなきゃ(でもNIFTYって面白く、情報の質も量も素晴らしいけど、 操作性が悪く、遅いから嫌いです)。

 ところで、僕は正直言ってFEPをなめていました。 (あーんなもん、いくら難しいって言っても、この未来の■才■理学者にかかれば、 お茶の子さいさいの、電子レンジでちーんのちんだ)と。これではいけません。 本気で日本語の文法からを勉強しなければならないようです。 何故こんな事を僕は今更書くのでしょう? それは、 ELLERYさんからいただいた(どうも有難う御座いました) FEPの資料の難しさにびびってしまったからです。 「情報処理」という、その筋な雑誌の論文からの抜粋みたいなんですけど、 専門用語がいっぱいで、なにが何だか解りません…と、ここまで書いて、 もう一度よく読んでみたら内容は解りました。 理系の文によくある「中身は簡単だけど、異様に難しく書いてある」ってやつですな。 「情報処理」なら学校の図書館にあったと思うから夏休みが開けたら早速読まなくちゃ。 それでは今回も、文法の説明をして、 できたら簡単な文節分割をするプログラムまで行きましょう。

副詞・連体詞の話

 まず、参考文献として「岩波 国語辞典 第三版」を挙げておきます。 今は、これだけが頼りです。良い本が見つからないんです。学校は夏休みだし、 県立図書館まで行くのはは面倒臭いし、専門書はべらぼうな値段だし。 とくに東京大学出版なんかは平気で一万円を越します。 「Yellows 2.0」に9800円出せても、これには出せません。 と、愚痴はこれくらいにして、副詞・連体詞の話です。

 副詞・連体詞は「単独で文節を作り、他の語を修飾する単語で、共に活用はない。 両者の違いは、連体詞が名詞(代名詞)しか修飾しないのに、 つまり連体修飾語としかならないのに、副詞はそうとは限らない (多くの場合、連用修飾語となる)点にある。」と書いてあります。ここで大切なのは、 「連体詞が名詞(代名詞)を修飾」し「副詞が(多くの場合)連用修飾語となる」事です。 これを利用することで、漢字の割り当てを正確にできます。詳しくは文節分割が終わって、 漢字割り当てに入ったときに書きましょう(いつになるやら…)。

 副詞の種類を具体的に書いてみますと、

(一)表す事物のありかた・しかたを修飾する副詞
(1)状況に関するもの 例…いきなり しんみり 突如
(2)時・順序に関するもの 例…しばらく まだ まず
(3)数量に関するもの 例…すっかり たくさん
(4)程度に関するもの 例…ごく ちょっと

(二)話し手の陳述(判断の表明)と呼応する副詞
(1)依頼・願望の言い方にかかわるもの 例…どうぞ 是非
(2)仮定の言い方にかかわるもの 例…たとい もし よしんば
(3)問い掛け(・詰問)の言い方にかかわるもの 例…一体 なぜ
(4)打ち消しの言い方にかかわるもの 例…決して ろくに
特に、禁止の言い方にかかわるもの 例…ゆめ(文語)
特に、否定的推量の言い方にかかわるもの 例…まさか よもや
(5)推量の言い方にかかわるもの 例…恐らく 多分
(6)比況の言い方にかかわるもの 例…あたかも まるで
(7)言い定め(・決意の言い方)にかかわるもの 例…必ず もちろん

 さらに、「この中で、(一)の(4)程度に関するものは特別で、 『更にしばしば』のように、他の副詞が修飾できると共に、 『ずっと昔』『ごく近所』『もっと東』のように、 時・場所・方角を表す名詞も修飾できる。このほか、 『すべての人』『とみの事』『にわかのお立ち』のように、 『−の』の形で連体修飾語になるものがある。 また、『あいにくな天気』など『−な』の形をとることもある。 更に『あいにくだ』『もうすぐです』『きっとだよ』のように、 指定の助動詞がついて述語になるものがある。」とあります。むむぅーん、結構面倒臭そうですね。 でも、何とかなるでしょう。形容詞みたいなもんですから。そんなわけで、気楽に次へ行ってみましょう。

感動詞のはなし

 「感動詞は、それ一語で、常に文と同じ資格をもつような単語である。 したがって文の成分としては独立語であり、修飾も接続もしない。 活用しないことも、特色の一つである。」とあります。これは、名詞よりも簡単です。 独立してるのですから、もうそれだけで文節分割が終わってます。ちなみに、 具体的には「ふーん」とか「ああ」とかいったものです。

残るは…

 後、説明が残ってるのは、形容動詞、形容詞、動詞、助動詞です。 これらに共通する性格は何でしょう? そう、これらは「活用」するのです。 面倒臭いですねぇ。ですから、次回にまわしちゃいます(←なんて無責任!)。

簡単な文節分割

 ずっと、説明だけではつまりませんよね。中には(ほとんどかな?) 「けっ、説明なんか無駄だよ。とっととFEPを完成させろよ!」と思われている方もいるでしょう (僕ならそう思います)。ここらで、プログラムを載せて、みんなの気を取り戻さねば…。 ってわけで、中途半端ですが載せます。

 僕は今まで、文節分割をどうやろうかと四苦八苦して、新聞や本等を読んでいても、 頭の中で文節分割していました。しかし、どう考えても解りません。 それは、文章と助詞だけから分割出来ると考えていたからなんですね。 実際の分割には語彙である「辞書」が必要なんです。 この、当たり前のことに気付くのに2ヶ月かかりました。笑ってやって下さい。

 今回は、助詞と名詞、副詞・連体詞だけの分割です。文章としては、 「彼女は美容師」とか「愛は蜻蛉」とかです。test.xを実行すると例文と、 それを分割した結果が出力されます。本当は任意の文を入力出来れば良かったのですが、 まだ辞書の登録機能がありませんから、辞書に無い言葉を入れられると変換ができないのです。 ああ、これからは辞書の構造を考えなければいけないなぁ…。 プログラムの説明は、また次回!

test.x (X68k用プログラム)
test.c (ソース)
(ジオシティーズの都合、ファイルネームに .html が付いてますが、 削ってください)

FEPをつくろう 第三回

さぁ、まいりましょう。FEPばんざい。

 「こんにちわ!」という文は誤りです。正しくは「こんにちは!」です。 いわゆる「ら抜き言葉」は、言葉の進化として積極的に認めるんですけど、 「こんにちわ」は、ただ間違って覚えてるだけです。また、敬語の間違いも気になります。 「菜の花に水をあげる。」という文は、「菜の花に水を与える。」が正しいです。 「あげる」は敬語なのです。植物に敬語を使うなんて、可笑しいですよね。みなさんは、 「分かる」と「判る」と「解る」を使い分けてますか? 僕は使い分けてます。 「世論」を「よろん」などと読んではいけません。「せろん」と読むのです。 ここらへんは、NHKのアナウンサーでも間違えるところです。

 と、こんな説教を書きたくなったのも、全部ASKのせいです。 今、福岡の「めんたいーネット」で死刑問題を論議してるんですけど、 その書き込みを書く時の苦痛といったら、「ASKの、能無しものぉ〜」と、 八代海に叫びたくなります。くっそーっ! 今にみテロよ。お前南下、 駆逐して遣るからな。ATOKよりも、目ジャーになって遣るぅ! (ASKの出力のまま)。

 ところで、「C MAGAZINE 9・10月合併号」はナイスでした。 特集が「日本語処理系学」だったんですよね。勉強になるなぁ。

形容動詞、形容詞、動詞、助動詞について。

 省略します。だって、みんな読んでないでしょう、こんな説明。それよりも、 作る過程の方が面白いですよね(自己の強引な正当化度 98%)。 知りたい人は、国語辞典の後ろの方を読んで下さい。 たいてい「付録」として載ってますから。だから説明は、お・わ・り。

前回のプログラムの説明。

 前回のプログラムは、「おおーっ、ちゃんと品詞分別をやってるぅ!」、 様に見えるだけです。解る人は「朝三暮四のまやかしだぁ!」 と田原総一郎ばりに、僕を責めるでしょう。でも、 僕にも解ってなかったんですから許して下さい。

 一応は「最長一致法」というのを使ってます(でも、後ろから調べてるだけ)。 これは、辞書に登録されている語の中で、一番長い語で品詞を分けていきます。 例えば、辞書に、

助詞 ”に”,”を”,”から”,…
名詞 ”あるじゃーのん”,”はなたば”,…

が登録されているとして、

「あるじゃーのんにはなたばを」

という文を解析するとします。まずは、

”あるじゃーのんにはなたばを”

で、辞書から探します。ありません。次に、一文字減らして、

”あるじゃーのんにはなたば”

で探します。これもありません。次は、

”あるじゃーのんにはなた”

です。こうやって、一致するまで繰り返していきます。そして、

”あるじゃーのん”

で辞書にありますよね。これを出力します。次は、解析の終わった、 ”あるじゃーのん”を飛ばして、

”にはなたばを”

で、同じ事を繰り返していきます。原理は簡単ですね。ただの、 文字列からの文字列検索ですから(しまった! 関数を使えば良かった)。

 この方法は、辞書の登録語数が少ないとき(前回のプログラム程度) はいいのですが、ちょっと増えてくると(50語位?)、 とたんに使い物にならなくなってきます。品詞のつながりも考えてないですし。 それでも、辞書の登録の仕方によっては、何とかなりますけど(もしかして、 ASKはこれに毛が生えたものか!? ←それは、あんまり)。

 まあ、このプログラムは、参考程度に止めておいて下さい。

辞書構造を考える(あな、おそろしや)。

 FEPを作る上で、辞書構造を決めるということは、 仕様を決定することと同じです(キー・バインドは除く)。 ここをしっかりやっておかないと、完成品は「使えねぇ」ものになってしまいます。

 先ずは、概要を決めましょう。

・辞書はテキストとする(これを変換し、バイナリにして扱うかどうかは決めてない)。
・辞書内部は、数字+アルファベット+片仮名51文字+平仮名51文字で、104程度の見出しに分ける。 増える可能性大。
・データは、

読み:品詞:書き:詳しい品詞:変換情報: …

例えば、

じょうにんりじこく:名詞:常任理事国:政治: …

の様に書く。
・データ処理は、各語に番号を振り、総て番号で行う。名詞→2番とか。
・辞書は各自で用意する(をいをい)。
・品詞の種類は、以下の通り。 一般名詞、固有名詞、代名詞、動詞、形容動詞、名詞形動、副詞、単漢字、接頭語、接尾語、 連体詞、数詞、接続詞、連体詞、数字、助動詞、感動詞、助詞、他国語

 さらに、以下のように分けられる。
名詞←人名(名)、人名(姓)、地名、団体名、・・・・
動詞←(文語)四段、上一、下一、カ変、サ変 (口語)四段、ナ変、下一、ラ変、上一、上二、下二、カ変、サ変

 こんなところです。今の方針としては、品詞情報の量によって、 変換効率を上げていく予定ですから、こんなに沢山あるんですね。

それではスタジオさん、お返ししまーす。

 で、辞書構造と共に考えなくてはいけないことは、「効率的な漢字変換の手法」です。 そのための情報は、辞書が持ちますからね。方針としては、 品詞情報の量によって変換効率を上げていく予定ですが、 今は、まだちょっと考えが煮詰ってないので書けません。次回には書けるよう、努力します。

(ニューロン・ネットワークヲツカッタ、エキセントリックナモノニナリソウ。ジショハ50Mbyteヲコエルカモ…、ボソ。)

 ところで、FEPの名前はもう決まっています。「NAMI」です。そこで問題。 この名前、どこから取ったのでしょう? 解った人は、メールを下さい。 一番最初に来た人に「豪華商品」をあげます(笑点みたいに、拍手だけだったりして)。 「これだけでは、解らないよぉ。」という人のためのヒントは、

ヒント1 NHK
ヒント2 漢字で書くと「菜美」
ヒント3 富田靖子
ヒント4 辞書が無いから、教育しなくちゃ。

 あ、公平のために、9月15日以降の応募とします。今回は、内容が無かったなぁ。 しかし、次回はいきなり評価版が出てくるでしょう(次回がいつになるかは…)。 それではっ!