• 締切済み

OCRで読み取った英文を正規表現を使って整形したい

英文をOCRで読み取ったデータがあります。 ワードなどに入れるには、末尾の余分な改行が邪魔で削除したいので、秀丸エディタを使用して整形したいと思っています。 何段階かに分けてしないといけないと思いますが、アドバイスをいただければと思います。 以下にある程度考えたものを書きますので、ご指摘いただけば幸いです。 1) 全角文字を半角にする 右クリックメニューから「ハンカクに変換」 2) スペースやタブのみの行のスペースを削除 置換で、^[ \t]+\n → \n 3) 末尾の余分なスペースを削除 置換で、 $ → なし (※ 検索文字列の$の前には半角スペースがある。) 4) 単語の途中で改行されている単語をくっつける(末尾の-を削除し、次の行と繋げる) 5) .や?や! で終っていない行末の改行を削除 上記のような流れで大丈夫でしょうか? 4)は、[a-z]-$ で検索すれば、単語を分割する末尾のハイフンは探してくれますが、それを削除して、次の行と繋げることができず、とりあえずキーマクロで処理しました。 具体的には、キーマクロ登録開始、F3で検索、一文字シフトしてハイフンと改行を削除、キーマクロ終了で、登録しておいて、後は連続的にキーマクロを実行しました。 5)は、小文字で始まっている行の先頭を探し、スペースを入れて、バックスペースで前の行とつなぎました。 ^[a-z] それでも行末が変な所があったので、 [^\.\!\?]$ で検索して、個別に直していきました。(タイトル行などで、ピリオドで終わらない場合もあるので。) このような整形の必要性は割とありそうなのですが、なかなかいい情報が見当たりませんでした。 アプリケーションも探しましたが、なかなか見つからなかったのと、見つかったものもうまくいきませんでした。 何かうまい方法などありましたら、教えてください。

みんなの回答

  • sholmes
  • ベストアンサー率81% (89/109)
回答No.1

秀丸エディタ・OCR共に深く活用した経験が無い為、自分には現状お力添えができません。 秀丸エディタの代わりにスクリプト言語を利用してもよければ、次の情報を頂いた上でご助力できるかもしれません。 1, 取り込み直後のテキストからサンプルを10~20行程度 2, 1のテキストから整形された、理想的なテキスト 御検討下さい

関連するQ&A

  • 英単語が誤って空白で区切られたのを正規表現で除く

    英語の文章を紙媒体からスキャンして電子化しました。その際に、斜体が含まれていたり、何らかの事情で英単語がスペースで区切られてしまっている場合があります。これを取り除くのが最終的な目的です。例えば I l o v e New York. といったようにです。 正規表現による置換での処理をまず思いつき、 置換前 スペース[a-z]スペース 置換後 スペース[a-z] としてみたら、[a-z]に当たる部分が置換後には元の文字から[a-z]となってしまい、あいまい検索でヒットしたのはよいものの、置換後は元の文字を維持してくれませんでした。   第一の質問として、[a-z] や [0-9]といった表現を含む置換の場合、元の文字をそのままに、それ以外の部分を置換することは可能なのでしょうか? 第二に、I l o v e New York. を I love New York. とするにはどうしたら良いのでしょうか?処理が完全でなくても、以前よりも読みやすくなれば構いません。 よろしくお願いします。

  • 正規表現の置換(EmEditor)

    Fireworksで書きだしたhtmlをEmEditorで修正中です。 name="●●●" を一括削除しようと正規表現を使った置換を試みていますが上手く出来ません。 検索する文字列に入れるサンプル文字を教えて頂けませんか。 ■検索したい文字列例(行頭に半角スペースあり) (半角スペース)name="c123_r4_c6" (半角スペース)name="c123_r5_c5" (半角スペース)name="c123_r6_c4" などです。 全てに共通するものは name=""、c123、_r、_c です。 4、5、6 の位置にある数字は変わります。 ■置換後の文字列 空白 (検索したい文字列の行頭半角スペースも削除) よろしくお願いします。

  • サクラエディタの正規表現での置換

    サクラエディタの正規表現での置換の方法について教えて下さい。 行の末尾が数字で終わらない行の改行コードを削除したいと考えています。 ---------- 元ファイル ---------- 000abc123 777def 456 333ghi789 222jk+ 111 ---------- ---------- 加工後 ---------- 000abc123 777def456 333ghi789 222jk+111 ---------- 「置換前」は『[^0-9]\n』を入力することで検索できましたが、 「置換後」に何を設定すれば良いのかわかりません。(または「検索対象」の設定を変える必要があるのかなど) 例えば置換後に何も設定しないと「777de456」とfが消えてしまうため、”f”を残した上で改行コードを削除したいのですが その方法がわかりません。 よろしくお願いいたします。

  • 正規表現で改行が3個続いてたら、それを削除する書き

    検索とか置換えで、正規表現で、改行が3回続いていたら、それを削除する書き方ってあるでしょうか? 試して見てるのですが、改行が全部消えてしまい、うまく思い通りにいきません。 検索:^\n 置換: とかだと、改行が全部なくなってしまいます。 ^\n\n\n$ だと、ヒットしません。 改行が続いていて、それを3行だけ取り除くなんていうのは、できないもんでしょうか。 文章の中にあります。 行頭に半角空白,改行と続くのもありますが、それはヒットしないように。      

  • 正規表現、文末のスペース削除

    初心者です。 4つ知りたいことがあります。 行頭のスペースまたはタブを削除する方法 行末のスペースまたはタブを削除する方法 行の最後にカンマを付ける 特定の文字後にカンマを付ける お忙しい中恐縮ですが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Dreamweaverの置換(正規表現)

    あるHTMLファイルで、2バイト文字の中にある半角スペースを削除したいとき、秀丸で開いて、 検索:\f[ -黑]\f \f[ -黑]\f 置換:\0\1\2\3 としたらちゃんと置換されました。 (文字化けしてるかもしれませんが、IMEパッドの文字一覧の一番最後の漢字です) 同じ事をDreamweaverで処理する事は可能でしょうか?可能な場合、どのように設定すればよいのでしょうか?

  • 正規表現置換

    はじめまして。 現在、テキストエディタで kami987koroです。(漢字、かな、英数字、半角記号、全角記号、改行、スペースを含む文字列)ありがとうございました。 という文字列を正規表現で拾いだして、置換したいと考えています。 ただ、私がその方面の知識に疎く、どう表記すればよいのか分かりません。 そこで、この分野にお詳しい方、ご教授願えませんでしょうか? よろしくお願い致します。

  • Perlで使える正規表現を教えて下さい。

    Perlで使える正規表現を教えて下さい。 半角英語で、小文字が3文字以上続いた後、大文字が来る場合、その大文字の右にスペースを入れる。 これをPerlで使える正規表現を教えて頂けないでしょうか? 例 $str = 'AaaAaaaBbbbbCccccDddBbA'; # Aaa Aaaa Bbbbb Ccccc DddBbA ちなみに、色々ネットで調べて試してみて、 $str =~ s/([a-z])([A-Z])/$1 $2/g; が最も近いコードになったのですが、2文字続いただけでもスペースが入り困っています。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 正規表現の$について

    aaa とある行の後ろにbbbを付けるには 検索条件 $ 置換内容 bbb で、aaabbbになると思うのですが、 aaa bbb と、行末ではなく次行に挿入されます。 Speeeeedを使って、一括置換を試みています。 上記の原因が判らず困っています。

  • 正規表現[a-z0-9\-\.]* の意味を教えて

    [a-z0-9\-\.]* の意味を教えてください。 preg_matchで確かめてみようと思ったのですが、 よく分かりませんでした。 「半角英小文字」か「数字」か「ハイフン」か「ドット」だと思ったのですが、 「半角英大文字」でも、「""」でも「空白」でも「日本語」でも、1が返ってきました。 「*」を調べたら、「直前の表現の0回以上の繰り返しにマッチ」て書いてあったのですが、 「0回以上」の意味が分かりません。 「すべてに当てはまる」ということなのでしょうか?

    • ベストアンサー
    • PHP