文節結合による回文の自動生成

JSAI2010 自然言語処理「知識の利用」3D4-3
名古屋大学大学院工学研究科電子情報システム専攻 鈴木 啓輔、佐藤 理史 2010年

https://kaigi.org/jsai/webprogram/2010/pdf/290.pdf

文節が保存されたデータベースを用いて回文を作成する。

回文…文頭から読んでも文末から読んでも同じ音。
 例.たけやぶやけた(竹藪焼けた)
   かるいきびんなこねこなんびきいるか(軽い機敏な仔猫何匹いるか)


目的
厳しい制限のかかった文の作成に挑戦する。
 究極の目的は意味的適格性の自動判定技術を研究すること


決め事など
 この研究で作る回文の条件は
   1.
文頭から読んでも文末から読んでも同じ音
   2.日本語の文法に適応している
   3.全体として無理なく意味が通じる


 ある文節に対して左右に文節を付け加えて回文を作成する。
 事前に付け加える文節の数を決めておく。

 文節のつけくわえは17種類の文節タイプ(詳細なし)と係り受け関係により適切か確認しながら行う。

 さらに、回文の折り返し地点を決めることで生成の途中で左右どちらに文字が不足しているかわかる。
 使用するデータのセットは左方の不足文字列L、生成途中の文H、
右方の不足文字列Rからなる。
<L,H,R>

  例.『よるおきぬたぬきおるよ(夜起きぬタヌキおるよ)』の生成途中『おきぬたぬき』
< ε , おきぬたぬき , お >


 回文生成途中に生成の先読みを行い、付け足した文節が適切かみる。
 (付け足した文節で生成を続けていき、付加する回数制限内に終わるか調べる)
 不適と判断した場合は候補から消す。
 【アルゴリズム】
  1.出現する可能性がある不足文字列を全て求める。
  2.残り1回の文節のつけたしで回文が完成するか検討。
  3.1回の文節のつけたしを行う。
  4.1〜3を再帰的に行う。


文節の付け加え
 ○不足文字列が3文字以上
  不足文字列を含む文節
wをデータベースより選出。
   |w|:文字列wの長さ
   prefix(w,i):wの文頭からi文字抜き出す
   suffix(w,i):wの文末からi文字抜き出す
   reverse(w):wの文字列の並びを逆順にする

  【左に付け加える場合
   ・付け加える文字列の長さが不足文字列の長さ以下の場合|L|≧|w|
     →Hに文字列を連結、補充した分の文字を不足分Lから削る
<L
,H,ε>→< prefix(L,|L|-|w|) , wH , ε >

   ・付け加える文字列の長さが不足文字列より大きい場合(|L|<|w|)
     →Hに文字列を連結、超過した分を逆順にしてRに保存

<L
,H,ε>→< ε , wH , reverse(prefix(w,|w|-|L|)) >

  【
右に付け加える場合
   ・付け加える文字列の長さが不足文字列の長さ以下の場合|R|≧|w|
     →Hに文字列を連結、補充した分の文字を不足分Rから削る
ε,H,R>→< ε , Hw , suffix(R,|R|-|w|) >
   ・付け加える文字列の長さが不足文字列より大きい場合(|R|<|w|)
     →Hに文字列を連結、超過した分を逆順にしてLに保存

ε,H,R>→< reverse(suffix(w,|w|-|R|)) , Hw , ε >

 ○不足文字列が2文字以下
  不足文字列の長さが2文字以下の場合は適応する文節が多い。
  したがって、時間短縮のために付加する文節セットを作成しておく。
  【アルゴリズム】
   1.出現する可能性のある2文字以下の左右両方の不足文字列を求める。
   2.不足文字列に対して左右に文節の付け加えを行っていき、
     最初の不足文字列以外で回文になっているか確かめる。
     例.<よる-おきぬ , H , おるよ


データ・実験結果
JUMANの内容語辞書と活用定義、作成した付属語追加辞書で生成した文節を使用。
さらに、ひらがな表記(読み)と文節タイプが一致するものは処理で区別されないのでまとめる。
最終文節数:3472534

実行結果

文節数
生成時間
生成数
2
5h20m
44673
3
22h33m
2887472
4
142d11h51m
156851145
(4文節の処理は16に分散して処理を行ったときの処理時間の総和)

文節数3の処理結果のうち、「あ行」で始まる回文に対して検討。
 回文候補(ひらがな):386198文
 回文候補をかな漢字混じりに変換
  →1392238文
 3文節を[
1文節+2文節]と2文節+1文節]に分割、Webの検索ヒット数が両方0でないものを取り出す。
  →8003文
 人手により、意味が通るものを選定
  →49文(Web上にある:22文、ない:27文)


意見・感想
 ある単語を入力において回文でない自然文生成も行えそう。
 ちょっとした工夫で精度向上(誤った候補の生成の削減)が見込めそう。
 膨大な時間がかかっているので、時間の短縮が見込めそう(?)





Comments