検索置換ラクダ と ConvChar について

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

検索置換ラクダ と ConvChar について


いずれも、Mac(クラシック)で利用できるテキスト置換アプリケーション。それぞれの名前と「青空文庫」をいっしょにキーワード検索すると、いつくかの紹介ページがあるので、参考にできる。

特徴として両方とも、安定している、変換辞書をテキストファイルとして利用・更新できる、わかりやすい。

大きなちがいは、
  • ConvChar は、 正規表現をつかえない、が、 置換が超高速。 (かんちがいしてました。要確認)
  • 検索置換ラクダ は、ConvChar のスピードには劣るものの、perl を経由しているので正規表現をつかった置換が可能。

 **ハート計画では、置換場面によって併用することを提唱。


検索置換ラクダ について


正規表現を利用するばあい、置換リストの行に「(tab)regex」と記述。大文字では機能しないので注意。正規表現が不要な置換のばあいは「(tab)regex」も不要。スピードも向上する。

それでも ConvChar の処理スピードにはおいつけないので、けっきょく、正規表現が不要な置換のばあいは、ConvChar 利用がいい。置換リストが少ないようであれば、いずれも超高速。ただ、外字注記やアクセント分解のように行数が多いばあい、その差が顕著にでる。

事例

  • アクセント分解置換のために3ステップの置換辞書を用意。
  • 処理1と3では(正規表現不要の)単純置換。2のみ正規表現を使用。
  • 作業環境がバラバラだと効率がわるいと思って、いずれも検索置換ラクダで通すことにした。

  • ところが、処理1と3では置換リストが多量なため、処理に時間がかかった。そのうえ「Out of memory !」で、結局処理できない。
  • そこで処理1と3のみ ConvChar で置換してみた。すると、同じ作業内容のはずなのに、信じられないくらいのスピードで処理終了した。

  • 対象:「作家別テキストファイル」からアクセント分解〔〕部分を抽出したリスト(1358行、49KB)
  • 検索置換ラクダ による処理1にかかった時間が、およそ5分くらいか。
  • いっぽう、ConvChar による処理1が、およそ20秒(以下)。
  • 処理3にいたっては、検索置換ラクダ では Out of memory で作業放棄。ConvChar による処理3は、やはり20秒くらい。


併用の注意点


スピードやメモリ負担の問題は、処理行数が多いことが原因だとおもわれるので、少ない置換リストであれば、検索置換ラクダもじゅうぶんに速い。

また、ConvChar では置換辞書のうしろの行から処理するのに対し、検索置換ラクダではたぶん、どうやら前の行から処理するもよう。期待する結果と異なるばあいがあるので、それぞれ要注意。

それから、ConvChar には OS X 版がまだない*1 ので、同じ作業を Unicode でするばあいには、検索置換ラクダの X 版に依存することになる(かもしれない)。

 *1 CharConvX なるソフトがあるものの未確認。

それから、処理結果の出力ファイルネームのちがい。
ConvChar は、元ファイル名「+」(半角プラス)が付随した新規ファイルが作成される。いっぽう検索置換ラクダは、元ファイル名のまま。つまり上書きするので、元ファイルは別個保存しないと消失する。アクセント分解変換のように、アプリの併用・複数置換辞書の併用を要するばあいは、とくに注意。



公開:2008.4.3
更新:2008.4.9
しだひろし/PoorBook G3'99
翻訳・朗読・転載は自由です。

名前:
コメント: