JP3417960B2 - 文章校正支援方法および装置 - Google Patents

文章校正支援方法および装置

Info

Publication number
JP3417960B2
JP3417960B2 JP20422692A JP20422692A JP3417960B2 JP 3417960 B2 JP3417960 B2 JP 3417960B2 JP 20422692 A JP20422692 A JP 20422692A JP 20422692 A JP20422692 A JP 20422692A JP 3417960 B2 JP3417960 B2 JP 3417960B2
Authority
JP
Japan
Prior art keywords
pattern
sentence
error
proofreading
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP20422692A
Other languages
English (en)
Other versions
JPH06208558A (ja
Inventor
薫 奥村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM Japan Ltd
Original Assignee
IBM Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IBM Japan Ltd filed Critical IBM Japan Ltd
Priority to JP20422692A priority Critical patent/JP3417960B2/ja
Publication of JPH06208558A publication Critical patent/JPH06208558A/ja
Application granted granted Critical
Publication of JP3417960B2 publication Critical patent/JP3417960B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は文章校正支援方法およ
び装置に関し、とくに校正知識を容易に付与でき、しか
も高速に誤りパターンを検出できるようにしたものであ
る。
【0002】
【従来の技術】現在、一部の日本語ワードプロセッサに
は校正・校閲機能が搭載されている。この校正・校閲機
能は、校正用誤り表現辞書による誤り語の検出や、括弧
の対応の誤りの検出等を行う特定の誤り検出ルーチンを
組み込んで実現されている。したがって現行の検出ルー
チンがカバーしていない新たな誤りを発見させたい場合
や、誤り発見の基準を変更したい場合に柔軟に対応でき
なかった。
【0003】ルールベース言語を用いて誤りの条件を記
述し、ルールベース・システムを用いて誤りの検出を行
う実現法については、林良彦、菊井玄一郎による情報処
理学会論文誌Aug 1991 Vol.32 No.8 『日本文推敲支援
システムにおける書換え支援機能の実現方式』や、武田
浩一らによるシステム/制御/情報 Vol.35, No.11,199
1 『文書を作成するためのツール』の3.3章において議
論されている。この方法では、さまざまな誤りの条件を
記述することができるが、分かりやすい表記法ではな
く、校正支援システムの使用者が容易にルールを書ける
わけではない。さらに、n項の特徴からなるルールを実
行するには、一般には入力文書量のn乗のオーダーの時
間を要するので、実用には問題となる。すなわち通常は
単語や文節をWMA(ワーキング・メモリ・エレメン
ト)としてルールベースに投入する。一般にWMAに関
するn個の条件を記したルールを実行するにはWMAの
個数のn乗のオーダーの時間が必要である。したがって
入力文書のn乗のオーダーの時間が必要である。
【0004】なおこの発明と関連する特許文献としては
つぎのものがある。特開平1−320567号公報は、
誤り文字列をチェックし、この文字列を前後の語句とと
もに印刷出力し、さらに校正情報も提示することを開示
している。しかしチェックされるのは、誤り文字列であ
り、文法情報等を踏まえ、複雑な校正知識を利用して校
正支援を行うものではない。特開平3−34062号公
報は、複数種の誤り文字列のチェックを一回の文章走査
で行うようにすることを開示している。この公報でも、
チェックされるのは、誤り文字列であり、文法情報等を
踏まえ、複雑な校正知識を利用して校正支援を行うもの
ではない。特開昭64−53259号公報は、校正規則
を用い、この校正規則を修正可能にして校正の仕方を変
更することを開示している。しかし校正規則をそのまま
用いているので、高速な処理が困難である。
【0005】
【発明が解決しようとする課題】この発明は以上の事情
を考慮してなされたものであり、使用者が新たな校正知
識を容易に付加することができ、しかも検査時間も少な
くて済む校正支援手法を提供することを目的としてい
る。
【0006】
【課題を解決するための手段】この発明では以上の目的
を達成するために、誤りの特徴の要素を文の前から後
ろ、または後ろから前のいずれか一方の方向に沿って配
列して、誤り情報を記述し、この要素の配列と、文章と
を、上述一方の方向に沿ってマッチングさせ、マッチン
グしたときに誤りがあると判別するようにしている。誤
り情報はプログラム・ルーチンにコンバートされ、駆動
部をなすプログラム・ルーチンと一体となって、誤りの
検出等を行う。使用者は、誤りの情報を新たに加えた
り、修正したりして、校正支援システムを適合化でき
る。また誤りの特徴の要素の並びと、文章(文)とを、
所定の方向に沿ってパターン・マッチングして、両者が
一致したときには誤りがあると判別するようにしている
ので、高速に誤り検出を行える。しかも文単位で完結す
る誤りについては、そのマッチングを文章全体について
でなく文単位で行うので、文の長さのn乗(nは要素の
数)のオーダーの時間で検出を行える。従前のルールベ
ースを用いた場合では入力文書全体のn乗のオーダーの
時間が必要で、入力文書が多くなればなるほど指数的に
所要時間が増加する。この発明では、文単位で完結する
誤りに関しては(全誤りのうちこのような文単位で完結
するものがほとんどである)、処理時間は入力文書の大
きさに比例するのみである。たとえば文がm個になって
も、時間はm倍のオーダーで増えるだけである。また具
体的な構成では、誤り情報は、要素にそれぞれ対応する
評価関数の並びにより記述され、この評価関数に変数を
伴わせている。そして評価関数に伴う変数を用いて警告
箇所を指定し、さらにこの変数を用いて書換え候補を記
述するようにしている。
【0007】
【実施例】以下、この発明を日本語テキスト処理装置に
適用した実施例について図面を参照して説明する。図1
はこの実施例のテキスト処理装置の全体構成を示すもの
で、この図においてテキスト処理装置はエディタ部1、
校正処理部、パターン・コンパイラ8、パターン定義フ
ァイル9等からなっている。
【0008】エディタ部1は、校正処理部2の処理結果
を用いて使用者の校正作業を支援する他、使用者の要求
を校正処理部に反映させる。すなわち、校正支援機能の
開始・終了命令、書き直すことが望ましい語句に色付
け、棒引き等を行なって表示し、使用者の要求に応じて
警告の理由を示したり書き直し方の提示及び置き換えを
行なう。校正処理部2は、文書制御部3、文法解析部
4、辞書5、パターン駆動部6および実行時参照パター
ン7等からなる。文書制御部3はオプション等の各種の
制御を実行し、エディタ部1が指示した文書を適切な形
状にして文法解析部4へ転送し、その解析の結果を整理
してパターン駆動部6へ転送する。文法解析部4は辞書
5を用いて入力テキストの文法解析を行なう。パターン
駆動部6は実行時参照パターン7を参照しながら、文法
解析結果付きのテキストが、パターンに合致するか否か
を検査する。パターン・コンパイラ8はパターン定義フ
ァイル9を入力として実行時参照パターン7を作成する
ものである。パターン・コンパイラ8はパターン定義フ
ァイル9のユニットの検査順序および評価関数を最適化
する。
【0009】次に、パターン定義ファイル9の詳細な記
述法について図2を用いて説明する。パターン定義ファ
イル9は、校正パターン定義10の集合である。校正パ
ターン定義10は、誤り特徴部11、警告対象定義部1
2、修正定義部13からなる。本発明では誤り定義部1
1を、文の部分に対する評価関数(これをユニットと呼
ぶ)の並びで指定する。ユニットの繰返しも指定可能で
ある。各ユニットには、変数を付け得る。警告対象定義
部12は、ユニットに付与された変数の並びで指定す
る。修正定義部13は、書き換えられる個所をユニット
に付与された変数または変数の並びで指定し、書き換え
方を変数に対する関数または文字列で記述する。
【0010】さらに校正パターン定義を例に基づいて説
明する。例1は、『例えば……など』は重言であるとい
う校正知識を以下のように記述するものである。誤り特
徴部11は、『"例えば"と言う語があって、その後に任
意の語が数個続き、さらに"など"がある』と指定する。
警告対象定義部12は、変数xで参照する"例えば"と、
変数yで参照する"など"を指定する。修正定義部13で
は、「例えば」を ""で置き換えるすなわち消すか、
「など」を消すことを指定している。この場合「ANY」
は文末以外の語句を示し、1つの文章が終了すると、自
動的にパターンについての処理が失敗(終了)し、つぎ
の文に処理が移行するようになっている。
【0011】 =============================== 例1 校正知識: 「例えば〜…〜など」は重言である。 パターン: [x:"例えば"|"たとえば"] [y:ANY] *[z:"等"|"など"] 警告個所: [x] ,[z] 書替候補: [x] ->""; [z] ->"" =============================== ただし「*」は直前のユニットの有限個の繰り返しを示
す。以下同じである。
【0012】例2においては、関数 Hitei(y) は、yが
打ち消しの助動詞「ない」「ず」「ぬ」形容詞の「無
い」あるいは禁止の終助詞「な」など否定を意味する語
かを判定する関数であり、「必ずしも」の後に否定が来
ないまま文末となった時に呼応があっていないことを検
出する。例1と同様の校正知識をルールベース言語で記
述した場合には例3となるが、例1の方が簡潔で書きや
すい。 =============================== 例2 校正知識: (呼応)「必ずしも」の後では、否定形が来なけれ ばならない。 パターン: [x:"必ずしも"] [y:!Hitei(y)] *[文末] 警告個所: [x] ; ===============================
【0013】 =============================== 例3 IF ( <x> WORD & (isString("例えば") | isString("たとえば")) ( <y> WORD & ((isString("等") | isString("など")) & isBehind(x,y)) THEN { make WARN ↑CATEGORY style ↑MESSAGE "重言" ↑SUBJECT <x>,<y> ↑REPLACE {<x>,""},{<y>,""} } 但し、isBehind(x,y)は、yはxと同じ文にあり、かつ後ろである事を 示す関数。 ================================
【0014】つぎに実施例の動作について説明する。図
1において、使用者はエディタ部1を用いて文書を表示
あるいは作成している時、必要に応じて校正支援を指示
する。文書制御部3が校正の対象となる文書を獲得し、
文法解析部4が辞書5を引いて文法解析を行なう。その
結果をパターン駆動部6が実行時参照パターン7を用い
て、校正知識に該当するかどうかを検査する。警告の対
象があった場合には、エディタ部1は自動的にあるいは
使用者の要求に応じて、該当個所を色付け等の強調で表
示し、さらに警告理由、書き換え候補の提示、書き換え
の実行等を行なう。
【0015】つぎにパターン駆動部6の動作について第
3図を用いて説明する。図3に示すような処理を各パタ
ーンについて行なう。ここでユニットとは、パターン・
コンパイラ8により、最適化されたものである。まず第
1ユニットとテキストの先頭をそれぞれ現在の対象とす
る(ステップS1)。ついで対象ユニットと対象テキス
トがマッチするかを調べる(ステップS2)。マッチし
ない場合には失敗として、以前のユニットに戻り再試行
する。マッチした場合にはマッチした位置を保存し(ス
テップS3)、テキストを進める(ステップS4)。も
し最後のユニットであれば、パターンにマッチする警告
対象を見つけたことになるので、参照パターンにしたが
って、警告や置き換え候補を作成し、文書制御部3に通
知する(ステップS7)。文書制御部3はエディタ部1
とともに、発見した校正情報をもとに使用者の校正作業
を支援する。途中のユニットの場合には(ステップS
4)、対象を次以降のユニットに対して再帰的に(a)
の処理を行ない、パターンとテキストの文とを動的にマ
ッチングさせていく(ステップS6)。さらに、マッチ
する範囲は複数ありうるので、同一のユニットに対して
さらにマッチングを再試行する。第3図のステップS2
を基点とする再帰的処理として記載された(a)は関数
であり再帰的と記載されるように自分自身を呼び出す構
成となっている。なお図2はパターン駆動部6の概念的
な動作を説明するものでありステップS2からステップ
S6までの処理において本発明の本質に関らない処理に
ついては記載を省略している所もある。
【0016】図4にマッチングの例を示す。パターンと
しては、重言の「[たとえば][ANY]*[など]」を考える。
この場合文の初めから「たとえば」までは任意の語句で
あるから、「[BEGIN][ANY]*」をパターンの前に付け
る。なおここでは単語単位でマッチングを進めていく
が、マッチング対象の型指定等により文字列単位その他
のマッチングを指定することもできる。図4に示すよう
にまず「この」が「ANY」とのマッチングに成功し(S
2、図3)、つぎに「発明」が「たとえば」のマッチン
グに失敗し、リターンして、「発明」をつぎの「ANY」
にマッチングさせる。このようにして文のマッチングが
進められ、4回目(成功したマッチングの回数)で文は
[たとえば」にマッチングし、8回目で[など]にマッ
チングし、重言の検出が行われる。
【0017】この方式によれば入力文書量にほぼ比例す
る所要時間で処理できる。なぜなら、多くの校正知識は
一文で完結し、n項の特徴からなるパターンは文の長さ
のn乗時間のオーダーで(文章のn乗ではない)検出で
きるからである。
【0018】次に校正パターンを修正する際の動作例に
ついて説明する。使用者は上述のパターン記法に基づい
てパターン定義ファイル9を作成する。パターン・コン
パイラ8はパターン定義ファイル中の各パターンに対し
て、検索条件の解釈、最適化、変数の解決等を行なっ
て、実行時参照パターン7を作る。動作例のひとつとし
て、パターン記述をいったんC言語に変換することもあ
りうる。パターン記述は最終的にはオブジェクト・コー
ドに変換される。パターン例1をC言語に変換したもの
を例4に掲げる。実行時参照パターン7はプログラム・
ルーチンの一部をなす。
【0019】以下に最適化の手法及びその効果について
説明する。校正パターンには、以下の特徴が見られる a.評価関数には条件「"…"という語(または文字列)
があって…」が頻出する。 b.誤りの出現頻度は通常低いから、校正パターンは多
くの場合マッチしない。 入力文に関する情報は以下の形式で保持する。 a.文字列。 b.文法事項・単語や文節等の境界等の情報を文字列a
上の位置と対応させて保持する。 本手法では、初めに字面に関するマッチングを行なって
候補を絞り込んでから、その後に字面マッチ以外の制約
条件を検査する。字面を指定した制約条件はパターンに
はよく現れるが、マッチする確率は低い。さらに与えら
れた文字列が、他の文字列に部分列として存在している
かの検査は、処理装置の特性上高速で行なえる。よって
検索処理を大いに効率化することができる。最適化のた
めの変換規則の例を例6に、変換規則を用いた最適化の
例を例7に掲げる。最適化した場合のマッチングの例を
図5に示す。従来では、文法解析した結果を単語・文節
・文という構造体の形で保持し、構造体をリストで辿り
ながら1ユニットずつマッチングを行なう。警告の対象
が見つからない場合にも、すべての構造体を辿る必要が
ある。この発明の最適化手法では一回のサーチで多くの
場合その文には誤りが無いと断定できる、あるいは誤り
の可能性のある位置まで辿りつけるので、従来の手法に
比べて効率的である。
【0020】 ============================== 例4 //--------------------------- 第0パターン ["重言1"] int UNIT_juugen_0_0() { int b0,n0,b,n,i=0,rc=0; b0=n0=SENTENCE->chars; try_OR(0,runWrdStr("例えば")); try_OR(1,runWrdStr("たとえば")); BEGIN=b0; NEXT=n0; return rc; } int UNIT_juugen_0_1() { int b0,n0,b,n,i=0,rc=0; b0=n0=SENTENCE->chars; try_OR(0,runWrdStr("など")); try_OR(1,runWrdStr("等")); BEGIN=b0; NEXT=n0; return rc; } char *REPjuugen_0_0() { return strdup("") ; } char *MSG_juugen_0() { return strdup("例〜など(重言)") ; } static BOX BOX_juugen_0[] = { UNIT_juugen_0_0, 'R', 1, UNIT_juugen_0_1, 'R', 2, }; static WRNpattern WRN_juugen_0[] = { 1, 1, REPjuugen_0_0, 2, 1, REPjuugen_0_0, }; static PATTERN PATTERN_juugen_0 = { "重言1",SEVERE, 2,BOX_juugen_0,MSG_juugen_0, 2,WRN_juugen_0,0 }; ==============================
【0021】 ============================== 例6 変換規則1:[ANY] *[x: "…" & condition()] ⇒ [x: run("…") & condition()] 変換規則2:[some()] *[x:"…" & condition()] ⇒ [x: run("…") & condition() & xまでがすべてsome()を満たしているか] 変換規則3:[x: !"…" & condition()] *[END] ⇒ run("…")が失敗ならば、成り立つ。 成功すれば、xがcondition()を満たすかを調べる。 ここでrun()とは次の関数である。パターン文字列が対象文中にあるかを調べる 。さらにパターン文字列が単語(またはその列)であることが必要な場合には、境 界情報を調べる。さらにユニットに変数が付与されている場合、変数は対象文中 のパターン文字列を保持する。 ==============================
【0022】 ============================== 例7 ["例えば"] [ANY] *["など"] …(1) ⇒[BEGIN] [ANY] *["例えば"] [ANY] *["など"] …(2) ⇒[run("例えば")] [run("など")] …(3) (1)式は一般に(2)式に直される。さらに変換規則1を用いて(3)式に変形する。 ==============================
【0023】なおこの発明は上述実施例に限定されるも
のではなくその趣旨を逸脱しない範囲で種々の変更を行
うことができる。たとえば日本語以外の言語にも適用で
きる。
【0024】
【発明の効果】以上説明したようにこの発明によれば、
校正パターンの方向性を含めて記述できるので、高速に
誤りを検出できる。しかも新しい校正知識を簡単に記述
し、システムに導入することができる。
【図面の簡単な説明】
【図1】 この発明の実施例を全体として示すブロック
図である。
【図2】 上述実施例のパターン定義ファイルの構成を
示す図である。
【図3】 上述の実施例の動作を説明するフローチャー
トである。
【図4】 上述の実施例の動作を説明する図である。
【図5】 上述の実施例の動作を説明する図である。
【符号の説明】
1・・・エディタ部、2・・・校正処理部、3・・・文
書制御部、4・・・文法解析部、5・・・辞書、6・・
・パターン駆動部、7・・・実行時参照パターン、8・
・・パターン・コンパイラ、9・・・パターン定義ファ
イル。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 情報処理学会研究報告,Vol.92, No.2(92−NL−87),p83〜90 情報処理学会第35回(昭和62年後期) 全国大会講演論文集,p.1261〜1266 情報処理学会第32回(昭和61年前期) 全国大会講演論文集,p.1693〜1694 情報処理学会第31回(昭和60年後期) 全国大会講演論文集,p.1389〜1390

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】文章中の誤りの検出を行う文章構成支援装
    置であって、 ユーザにより定義された校正知識をパターン化した校正
    パターン定義を含むパターン定義ファイルを記憶する記
    憶手段と、 前記パターン定義ファイルの校正パターン定義から実行
    時参照パターンを作成するパターン・コンパイル手段で
    あって、前記校正パターン定義を、既定の変換規則に基
    づき、字面に関するマッチングと、字面に関するマッチ
    ング以外の制約条件に分け、字面に関するマッチング処
    理を最初に行う実行時参照パターンへと変換して、記憶
    手段に記憶させるパターン・コンパイル手段と、 誤り検出を行う文章を読み込む手段と、 前記読み込んだ文章を走査し、前記実行時参照パターン
    を用いて誤りを検出する手段とを有することを特徴とす
    る文章校正支援装置。
  2. 【請求項2】文章中の誤りの検出を行う文章構成支援方
    法であって、 ユーザにより定義された校正知識をパターン化した校正
    パターン定義を含むパターン定義ファイルを記憶手段に
    記憶する段階と、 前記パターン定義ファイルの校正パターン定義から実行
    時参照パターンを作成する段階であって、パターン・コ
    ンパイラにより、前記校正パターン定義を、既定の変換
    規則に基づき、字面に関するマッチングと、字面に関す
    るマッチング以外の制約条件に分け、字面に関するマッ
    チング処理を最初に行う実行時参照パターンへと変換し
    て、記憶手段に記憶させる段階と、 誤り検出を行う文章を読み込む段階と、 前記読み込んだ文章を走査し、前記実行時参照パターン
    を用いて誤りを検出する段階とを有することを特徴とす
    る文章校正支援方法。
JP20422692A 1992-07-09 1992-07-09 文章校正支援方法および装置 Expired - Fee Related JP3417960B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20422692A JP3417960B2 (ja) 1992-07-09 1992-07-09 文章校正支援方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20422692A JP3417960B2 (ja) 1992-07-09 1992-07-09 文章校正支援方法および装置

Publications (2)

Publication Number Publication Date
JPH06208558A JPH06208558A (ja) 1994-07-26
JP3417960B2 true JP3417960B2 (ja) 2003-06-16

Family

ID=16486932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20422692A Expired - Fee Related JP3417960B2 (ja) 1992-07-09 1992-07-09 文章校正支援方法および装置

Country Status (1)

Country Link
JP (1) JP3417960B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172260A (ja) * 2005-12-21 2007-07-05 Mitsubishi Electric Corp 文書ルール作成支援装置および文書ルール作成支援方法並びに文書ルール作成支援プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
情報処理学会研究報告,Vol.92,No.2(92−NL−87),p83〜90
情報処理学会第31回(昭和60年後期)全国大会講演論文集,p.1389〜1390
情報処理学会第32回(昭和61年前期)全国大会講演論文集,p.1693〜1694
情報処理学会第35回(昭和62年後期)全国大会講演論文集,p.1261〜1266

Also Published As

Publication number Publication date
JPH06208558A (ja) 1994-07-26

Similar Documents

Publication Publication Date Title
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
US5070478A (en) Modifying text data to change features in a region of text
US5140521A (en) Method for deleting a marked portion of a structured document
US5806067A (en) Method and apparatus for data processing with conversion of ambiguous data structures
EP0370778A2 (en) Method for manipulating digital text data
US20020194223A1 (en) Computer programming language, system and method for building text analyzers
US5870608A (en) Method and apparatus for displaying text including context sensitive information derived from parse tree
JPS61103247A (ja) 翻訳プログラム作成システム
JPH0630066B2 (ja) テーブル型言語翻訳方法
JPH1083289A (ja) プログラミング・エイド
US5113342A (en) Computer method for executing transformation rules
CN116627429B (zh) 一种汇编代码生成方法、装置及电子设备和存储介质
EP1990715A1 (en) System, apparatus and method for programming a computing device
JP3417960B2 (ja) 文章校正支援方法および装置
JP3251203B2 (ja) Jclプログラム変換装置、jclプログラム変換方法、および、記録媒体
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
JPH07146785A (ja) プログラム自動生成方法および装置
JP3050811B2 (ja) 構文解析木データベース構築支援装置
JP3114199B2 (ja) 言語処理システムのリスト出力方式
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JPH06266715A (ja) 文書編集装置
JP3342028B2 (ja) かな漢字変換装置
JP3097225B2 (ja) かな漢字変換装置
JP3340124B2 (ja) かな漢字変換装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees