キーワードを含む文をセンテンス単位でタNo.07789
白馬の王子様 さん 15/11/13 14:55
 
白馬の王子様です。
 ちょっとお尋ねです。
 grepを使うと、特定の文字列を含む行を機械的に抽出してくれますね。
 それと似ているのですが、機械的な行でなく、意味のあるセンテンス単位で抽出し
てくれる秀丸マクロ、ってあるのでしょうか?(和文なら、「。!?」をセンテンス
の区切りとして、また、欧文なら「. !?」をセンテンスの区切りとして切り出してく
れるというものです。)きっとあるはず、と思って、マクロのライブラリをちょっと
調べたのですが、調べ方が悪いのか見つかりませんでした。
 そして、その抽出先のファイルから、タグジャンプやバックタグジャンプで抽出元
のファイルと往復できる、というものです。
 grepだと、特定の文字列を含むセンテンスが、頭無し、だったり、尻切れだったり、
余計なもの(直前のセンテンスの末尾部分)が、当該センテンスの頭に先行してくっ
ついていたり……で、内容本意で読む(調べる)には、ストレスが多すぎるのです。

[ ]
RE:07789 キーワードを含む文をセンテンスNo.07794
山紫水明 さん 15/11/13 22:34
 
 白馬の王子様さん,

> それと似ているのですが、機械的な行でなく、意味のあるセンテンス単位で
>抽出してくれる秀丸マクロ、ってあるのでしょうか?

 センテンス単位ではありませんが,拙作の「前後行表示・2行渡り検索・結果
強調Grepマクロ」がそれに近いかもしれません。
 ライブラリに,最新版は私のホームページにあります。

                    山紫水明

[ ]
RE:07789 キーワードを含む文をセンテンスNo.07798
山紫水明 さん 15/11/14 08:56
 
 白馬の王子様さん,

補足です。

> grepだと、特定の文字列を含むセンテンスが、頭無し、だったり、尻切れだ
>ったり、余計なもの(直前のセンテンスの末尾部分)が、当該センテンスの頭
>に先行してくっついていたり……で、内容本意で読む(調べる)には、ストレ
>スが多すぎるのです。

 こういう文章というのは,表示行ごとに改行が入っている文章でしょうか。と
すれば,その文章の余分な改行を削除・連結して,その後でグレップすれば改善
されるような気がします。
 連結するマクロはいろいろあると思います。拙作の「簡単複合整形マクロ」で
もできます。
                    山紫水明
                    SANSHISUIMEI

[ ]
RE:07794 キーワードを含む文をセンテンスNo.07799
白馬の王子様 さん 15/11/14 10:59
 
山紫水明さん、
 早速、「前後行表示・2行渡り検索・結果強調Grepマクロ」をご紹介いただき、
ありがとうございました。どんなものか、これから試させていただきます。

[ ]
RE:07798 キーワードを含む文をセンテンスNo.07800
白馬の王子様 さん 15/11/14 11:08
 
山紫水明さん、
 補足説明、ありがとうございました。
> こういう文章というのは,表示行ごとに改行が入っている文章でしょうか。
はい、そうです。印刷された本をOCRで読み取って、元のレイアウトをできるだけ保
持したままテキスト化するため、本のページ上で改行されている箇所にはすべて改行
マークを入れるよう指定して読み取ったテキストファイルです。

>すれば,その文章の余分な改行を削除・連結して,その後でグレップすれば改善
>されるような気がします。
 なるほど。ただそうすると、上記の「元のレイアウトをできるだけ保持したまま」
という希望に背くことになりますね。この希望は、画面上で読み書きしていて、原本
に立ち戻って確認する必要がけっこうあって、その際、レイアウトが異なってしまっ
ていると、該当箇所を見つけるのにかなり手間がかかることがしばしばだからです。

> 連結するマクロはいろいろあると思います。拙作の「簡単複合整形マクロ」で
>もできます。
  「簡単複合整形マクロ」をご紹介、ありがとうございました。試してみる価値が
ありそうなので、ちょっとやってみます。


[ ]
RE:07794 キーワードを含む文をセンテンスNo.07803
白馬の王子様 さん 15/11/14 16:50
 
山紫水明さん、
 「前後行表示・2行渡り検索・結果強調Grepマクロ」を秀丸マクロライブラリ
からダウンロードし、試用してみました。(山紫水明さんのマクロのホームページか
らは、なぜか昨日と同じ状態になってダウンロードできなかったので。IEから履歴削
除もおこなってみたのですが、変わりませんでした。)
 確かに抽出してくれますが、やはり、センテンス単位での抽出に慣れていると(例
の今は亡き、AIソフト製のBoonEditorのマクロではそれが可能でした−−ただし、何
をするにもUnicodeが扱えないという致命的な弱点がありました)、余計なノイズが多
すぎたり、逆に長いセンテンスが尻切れトンボだったりで、非常に効率が悪く、スト
レスがたまることが分かりました。
 また、強調表示しようとしても、「ファイルが見つかりません。ファイル名=C:\Pr
ogram Files\Hidemaruo\Setting\colortemp hilight」と表示され、強調表示されま
せん。探したところ、今日のタイムスタンプのcolortemp hilightというわずか10バ
イトのファイルが\Hidemaruにあったので、それを\Settingにコピーしてみましたが、
予想通り、やはり強調表示されませんでした。\Setting内のcolor hilightというフ
ァイルはどこで入手できるのでしょうか?強調表示が実現すれば、少しは見やすくな
りストレスも減ると期待できるのですが。

[ ]
RE:07800 キーワードを含む文をセンテンスNo.07807
山紫水明 さん 15/11/14 22:21
 
 白馬の王子様さん,

>>その文章の余分な改行を削除・連結して,その後でグレップすれば改善
>>されるような気がします。
> なるほど。ただそうすると、上記の「元のレイアウトをできるだけ保持した
>まま」という希望に背くことになりますね。この希望は、画面上で読み書きし
>ていて、原本に立ち戻って確認する必要がけっこうあって、その際、レイアウ
>トが異なってしまっていると、該当箇所を見つけるのにかなり手間がかかるこ
>とがしばしばだからです。

 連結した上で,「ファイルタイプ別の設定」→「体裁」で「折り返し文字数」
を元のレイアウトに揃えたら少しはよくなるかもしれません。満足できるものか
どうかはわかりませんが。

                    山紫水明

[ ]
RE:07798 キーワードを含む文をセンテンスNo.07810
白馬の王子様 さん 15/11/15 11:21
 
山紫水明さん、
 ご紹介いただいたPluralReform.mac、早速試用してみました。マニュアルがなかっ
たのですが、メニューが親切なので、分かりました。
 これ、センテンス単位に分割してくれるんですね!これはいける!!
 ただ、英文の原文の行末にハイフン「-」があると、そこで単語が切れてしまいま
すが、これは、メニューの「英文」にチェックを入れても変わらないような‥‥。
 何か私が勘違いしているのかもしれませんが。


[ ]
RE:07810 キーワードを含む文をセンテンスNo.07811
白馬の王子様 さん 15/11/15 11:28
 
自己レスです。
 センテンス単位に分割してくれると思いましたが、勘違いでした。
駄目でした。
 メニューに、「分割するマーク」という欄があれば、そこに「.!?。!?」を入れ、
「連結するマーク」という欄があればそこに「\n]で、何とかなりそうですが。

[ ]
RE:07811 キーワードを含む文をセンテンスNo.07816
山紫水明 さん 15/11/15 13:42
 
 白馬の王子様さん,

> ご紹介いただいたPluralReform.mac、早速試用してみました。マニュアルがなかっ
>たのですが、メニューが親切なので、分かりました。

 ホームページに書いていますように説明文書をぜひあわせ読みいただきたいと思い

す。

> センテンス単位に分割してくれると思いましたが、勘違いでした。
>駄目でした。

 この機能はありません。改めて考えますが,さしあたり,
置換で
検索:[.!?。!?]
置換:\0\n
正規表現 ON

でできるでしょう。
                    山紫水明

[ ]
RE:07816 キーワードを含む文をセンテンスNo.07817
白馬の王子様 さん 15/11/15 14:59
 
山紫水明さん、
 センテンス毎に分ける簡便法、ご教示いただき、ありがとうございました。
 早速、実験。
 なるほど、できました!しかも、改行は、できる限り保持されているのですね。
 これは行けそうですね。ありがとうございました。

> ホームページに書いていますように説明文書をぜひあわせ読みいただきたいと思い
>ま
>す。
 ホームページからダウンロードしたときは、解凍しても説明書は出てこなかったよ
うな気がします。(あ、秀丸マクロライブラリーで検索すれば、解説書同梱で圧縮さ
れたのが見つかるかも。やってみます。)

[ ]
RE:07817 キーワードを含む文をセンテンスNo.07825
山紫水明 さん 15/11/15 20:42
 
 白馬の王子様さん,

OCRで読み取ったテキストの上で次のマクロを実行したらどうでしょうか。

//-------- SentenceGrep.mac ---------------------------//
if( !selecting ) selectword;
$s = gettext( seltopx, seltopy, selendx, selendy );
grepdialog2 $s, "*.*", directory, word;
question "これで実行しますか?";
if( result == no ) endmacro;
$s = searchbuffer;
showwindow 0;
gofiletop;
while( code != eof ) {
    tagjump;
    searchdown $s;
    #x = x; #y = y;
    searchdown "[.!?。!?]", regular;
    beginsel;
    searchup "[.!?。!?]", regular;
    right;
    if( loaddllfile == "" ) loaddll "HmJre.dll";
    $t = gettext2(seltopcolumn, seltoplineno, selendcolumn+2, selendlineno);
    $u = dllfuncstr( "ReplaceRegular", "\r\n", $t, 0, "", 1 );
    moveto #x, #y;
    backtagjump;
    golineend2;
    beginsel;
    searchup "): ";
    right 3;
    insert $u;
    movetolineno 1, lineno + 1;
}
showwindow 1;
endmacro;
//----------------------------------------------------//

                    山紫水明

[ ]
RE:07825 キーワードを含む文をセンテンスNo.07826
白馬の王子様 さん 15/11/15 21:08
 
山紫水明さん、
 感動です!感謝です!
 これですよ、これ。
 今、OCRで読み取ったマクロン付きのラテン語のテキストで、試しました。見事です!
 ストレス、全くなく、実に快適です。
 細かな機能上の要望はまだ出るかもしれません(バックタグジャンプとか、隣接行
に分かれた、行末にハイフンが付いて分かれた単語も検索できるように、とか)が、
大筋はこれでもうできあがりです。
 本当に、本当にありがとうございました。
 これ、是非洗練して、多くのユーザー(特に文系のユーザーが涙を流して喜ぶはず
です。みんな、通常のgrepで我慢している、というか、こういうものだ、と思い込ん
でいますから。)
 さぞお疲れのことでしょう。一日に2つの異なるマクロに取り組まれたのですから。
(私もいろいろやったので、少々疲れました。投稿も何通も書きましたし。この辺で、
お休みなさい。)

[ ]
RE:07825 キーワードを含む文をセンテンスNo.07827
白馬の王子様 さん 15/11/16 16:09
 
山紫水明さん、
 センテンス単位での検索結果書き出しの実現で昨晩は嬉しさと興奮のあまり、すぐ
に寝付けませんでした。
 さて、基本はもう実現されているのですが、隣接行にまたがったキーワードも検索
の網にかかって欲しいと思います。実例を示します。
 以下のようなテスト用ファイルがあります。

This is a tele-
vision set.
This is a television set.
これはコンピュー
ターです。
これはコンピューターです。

これを、まず検索語として、televisionでSentenceGrep(いい命名ですね)を実行する
と、結果は、

SentenceGrepTest用.txt(3): This is a television set.

となり、1〜2行目は検索の網から漏れてしまいます。これは是非改善をお願いします。
 同様に、検索語として「コンピューター」で実行すると、結果は、

SentenceGrepTest用.txt(6): これはコンピューターです。

となり、4〜5行目は検索の網にかかっていません。日本語の場合、ハイフンがないの
で、マクロ的にどう扱われるのか分かりませんが、よろしくお願いします。
 あと、結果を保存するファイル名は、元ファイル名_SG_検索語.txtとなると便利か
と思います。ただこのファイル名については、手入力でも大した手間ではありません。
(SGはSentenceGrepの頭文字を取りました。)

[ ]
RE:07827 キーワードを含む文をセンテンスNo.07828
colder さん 15/11/16 18:05
 
> さて、基本はもう実現されているのですが、隣接行にまたがったキーワードも検
>索の網にかかって欲しいと思います。

これは簡単に実現できます。
秀丸の検索にはあいまい検索という機能があり、grepダイアログにあいまい検索のチ
ェックボックスがあると思います。
ここにチェックを入れ、隣の設定ボタンを押して、
「改行を無視する」と「特定文字を無視する」にチェックを入れて、
無視する文字に「-」を入れておけば、検索自体はマクロを改造しなくてもできます。
マクロの変更もごく僅かです。
$s = searchbuffer;の後に#s_o = searchoption;を追加
searchdown $s;をsearchdown $s,#s_o;に変更
これだけです。

[ ]
RE:07827 キーワードを含む文をセンテンスNo.07829
山紫水明 さん 15/11/16 18:19
 
 白馬の王子様さん,

> 細かな機能上の要望はまだ出るかもしれません(バックタグジャンプとか、
>隣接行に分かれた、行末にハイフンが付いて分かれた単語も検索できるように、
>とか)が、

 バックタグジャンプはできると思います。

> 多くのユーザー(特に文系のユーザーが涙を流して喜ぶはずです。みんな、
>通常のgrepで我慢している、というか、こういうものだ、と思い込んでいます
>から。)

 ラテン語を扱われているところからすると,ヨーロッパの古代・中世の思想,
歴史。宗教,文学などのいずれかの分野を専門にされているとお見受けします。
 最近はその分野でもこういう資料の取り扱い方をする人が多くなっているよう
ですね。

> さて、基本はもう実現されているのですが、隣接行にまたがったキーワード
>も検索の網にかかって欲しいと思います。実例を示します。
>This is a tele-
>vision set.
>This is a television set.
>これはコンピュー
>ターです。
>これはコンピューターです。

 これらは検索語に
tele\-*\n*vision
コンピュー\n*ター
と指定して,正規表現でやればできるはずです。

 ハイフンのつけ方は一定の約束があると思いますが,マクロではそれがわかり
ません。したがって television の指定だけでハイフン付きも含めてを拾おうと
すれば,
television
t-elevision
te-levision
tel-evision
tele-vision
telev-ision
televis-ion
televisi-on
televisio-n
をすべて検索する必要があります。あらかじめこのように設定することは不可能
ではありませんが,別の正規表現で検索したい場合に,これが障害になります。
ちょっとわかりにくいかもしれませんが。
 前記の方法がありますので,ぜひそれで試みて欲しいです。もし,マクロを公
開することがあれば,その方法は説明書に示しておきます。

> あと、結果を保存するファイル名は、元ファイル名_SG_検索語.txtとなると
>便利かと思います。

 そうですね,その案で考えてみます。

                    山紫水明

[ ]
RE:07828 キーワードを含む文をセンテンスNo.07830
山紫水明 さん 15/11/16 18:23
 
 colderさん,

 ご教示ありがとうございます。ほんの一瞬タイミングが遅かった!
 ご提示の方法で考えてみます。

                    山紫水明

[ ]
RE:07829 キーワードを含む文をセンテンスNo.07831
山紫水明 さん 15/11/16 19:46
 
 追伸です,

 colder さんから示唆いただいた方法が使えそうです。
 あいまい検索のこと,すっかり失念していました。

                    山紫水明

[ ]
RE:07828 キーワードを含む文をセンテンスNo.07832
白馬の王子様 さん 15/11/16 20:28
 
colderさん、
 こっちのスレッドでもお世話になります。

>秀丸の検索にはあいまい検索という機能があり、grepダイアログにあいまい検索の
>チェックボックスがあると思います。
>ここにチェックを入れ、隣の設定ボタンを押して、
>「改行を無視する」と「特定文字を無視する」にチェックを入れて、
>無視する文字に「-」を入れておけば、検索自体はマクロを改造しなくてもできます。
 素晴らしい方法を教えて下さり、ありがとうございます。それにしても秀丸って、
すごいエディタですねぇ。(この部分、秀丸にコピペして、「隣接行検索法」とファ
イル名を付け、永久保存させていただきます。別ファイルに書き出さずに、単に検索
だけ、ということもよくあるので、これは使えます。

>マクロの変更もごく僅かです。
>$s = searchbuffer;の後に#s_o = searchoption;を追加
>searchdown $s;をsearchdown $s,#s_o;に変更
>これだけです。
 この辺は、山紫水明さんにお願いするしかなさそうです。

[ ]
RE:07829 キーワードを含む文をセンテンスNo.07833
白馬の王子様 さん 15/11/16 20:34
 
山紫水明さん、

> バックタグジャンプはできると思います。
 それは嬉しいです。
> ラテン語を扱われているところからすると,ヨーロッパの古代・中世の思想,
>歴史。宗教,文学などのいずれかの分野を専門にされているとお見受けします。
 そんな立派な人じゃないです、実は。ラテン語もぼけ防止に始めたばかりで、分か
らないことばかり。ただ、同じ語が別のセンテンスでどう使われているかを検討する
ことにより、文法書では分からないことがいろいろ分かって自習できることに気がつ
いたのです。
> 最近はその分野でもこういう資料の取り扱い方をする人が多くなっているよう
>ですね。
 確かにそういう傾向があるということは聞いています。

 隣接行にまたがる検索語の処理については、colderさんと山紫水明さんの共作にお
任せすることにして……。

>> あと、結果を保存するファイル名は、元ファイル名_SG_検索語.txtとなると
>>便利かと思います。
>
> そうですね,その案で考えてみます。
 ありがとうございます。楽しみにしています。


[ ]
RE:07829 キーワードを含む文をセンテンスNo.07834
白馬の王子様 さん 15/11/16 20:49
 
山紫水明さん、
 元投稿の「説明書」という一言で思いついたのですが、SentenceGrep.macでは、機
械的な半角のピリオドや「。」でセンテンス末を判断するため、例えば、Mr. Smith
のMr.がセンテンス末として、そこでセンテンスが断ち切られて出力されたり、B.B.C.
のB.がセンテンス末と判断されたりする(要は略語など)し、日本文では、例えば、

「それはいいね。」と彼は笑いながら言った。

の「それ」を検索語とすると、

「それはいいね。

で出力されるなど、一部に制約があることを説明書で予め断っておいた方がいいでし
ょう。
 「こんなはずじゃない」とユーザーが早合点されるのは不本意ですからね。
 こうした変な(?)センテンス出力に出会ったら、タグジャンプで本文に立ち戻り
確認すれば簡単に、それ以降が読めるし、必要なら、そこをコピペして、出力結果に
書き加えれば、済むことです。
 BoonEditor時代もこうした尻切れのセンテンス出力にはときどき出会いましたが、
実用上は何ら不都合は感じませんでした。(当時はラテン語は扱っていませんでした
が。)

[ ]
RE:07834 キーワードを含む文をセンテンスNo.07835
山紫水明 さん 15/11/16 21:28
 
 白馬の王子様さん,

> こうした変な(?)センテンス出力に出会ったら、タグジャンプで本文に立
>ち戻り確認すれば簡単に、それ以降が読めるし、必要なら、そこをコピペして、
>出力結果に書き加えれば、済むことです。

 そうですね。変かどうかをマクロで判断するのはちょっと無理でしょうね。
とりあえず,次のマクロを試してください。
 colder さんご指摘の「あいまい検索」の内容の設定はダイアログ上で,一度
手動でやる必要があります。後は自分で変更しない限り維持されると思います。

//-------- SentenceGrep.mac ---------------------------//
if( !selecting ) selectword;
$s = gettext( seltopx, seltopy, selendx, selendy );
$file = filename2;
setsearch $s, searchoption | 0x2831;
grepdialog2 $s, "(現在の内容)", directory, searchoption;
$search = searchbuffer;
#s_op = searchoption;
setsearch $search, #s_op;
begingroupundo;
showwindow 0;
gofiletop;
while( code != eof ) {
    tagjump;
    if( windowstate > 0 ) showwindow 0;
    finddown;
    #x = x;
    #y = y;
    searchdown "[.!?。!?]", regular;
    beginsel;
    searchup "[.!?。!?]", regular;
    right;
    if( loaddllfile == "" ) loaddll "HmJre.dll";
    $t = gettext2( seltopcolumn, seltoplineno, selendcolumn + 2,
selendlineno );
    $u = dllfuncstr( "ReplaceRegular", "\r\n", $t, 0, "", 1 );
    moveto #x, #y;
    backtagjump;
    golineend2;
    beginsel;
    searchup "): ";
    right 3;
    insert $u;
    movetolineno 1, lineno + 1;
}
endgroupundo;
showwindow 1;
changename leftstr($file, strlen($file) - strlen(filetype) ) + "_SG_" + $
search + ".txt";
question "保存しますか?";
if( result == yes ) SAVEAS;
endmacro;
//----------------------------------------------------//
                  山紫水明

[ ]
RE:07828 キーワードを含む文をセンテンスNo.07836
山紫水明 さん 15/11/16 22:23
 
 colderさん,

 あいまい検索の有無は searchoption に反映されるようですが,その内容は反
映されないようです。どこに保存されているのかご存知でしょうか。

                    山紫水明

[ ]
RE:07836 キーワードを含む文をセンテンスNo.07837
colder さん 15/11/17 06:44
 
> あいまい検索の有無は searchoption に反映されるようですが,その内容は反
>映されないようです。どこに保存されているのかご存知でしょうか。
保存されているのはレジストリで、
CURRENTUSER\\Software\\Hidemaruo\\HmJreになります。
↓詳しくはここを見ると分かると思います。
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_4/x07146.html#7146

[ ]
RE:07837 キーワードを含む文をセンテンスNo.07838
山紫水明 さん 15/11/17 07:57
 
 colderさん,

>保存されているのはレジストリで、
>CURRENTUSER\\Software\\Hidemaruo\\HmJreになります。
>↓詳しくはここを見ると分かると思います。
>http://hidemaruo.dip.jp:81/hidesoft/hidesoft_4/x07146.html#7146

 ありがとうございます。
 3年前ですね。そういえばそういう話題があったような気もしますが,当時自
分ではあまり切実に感じていなかったせいか,記憶に残っていなかったようです。
助かりました。

                    山紫水明

[ ]
RE:07835 キーワードを含む文をセンテンスNo.07839
白馬の王子様 さん 15/11/17 08:03
 
山紫水明さん、
 早速ありがとうございました。
 朝一で実験したのですが、

SentenceGrep.mac(38)式がおかしいです。
(ヘルプ参照)
キーワード/関数/式 search

というエラーメッセージが出てしまいました。

> colder さんご指摘の「あいまい検索」の内容の設定はダイアログ上で,一度
>手動でやる必要があります。後は自分で変更しない限り維持されると思います。

はい、これを実行した上でマクロを動かしました。

[ ]
RE:07839 キーワードを含む文をセンテンスNo.07840
山紫水明 さん 15/11/17 09:18
 
 白馬の王子様さん,

>SentenceGrep.mac(38)式がおかしいです。
>(ヘルプ参照)
>キーワード/関数/式 search
>というエラーメッセージが出てしまいました。

 多分,送受信の過程で余分な改行が入ったのでしょう。
 したから4〜5行目の $ と search の間の改行を削除してください。

                    山紫水明
                    SANSHISUIMEI

[ ]
RE:07840 キーワードを含む文をセンテンスNo.07841
白馬の王子様 さん 15/11/17 11:11
 
山紫水明さん、
 早速のサポート、ありがとうございました。
 ご指示の通りにしたところ、うまく動きました。
 ただ、例のtelevision setとコンピューターのテストファイルで実験したのですが、
英語の方が、

SentenceGrepTest用.txt(1):
SentenceGrepTest用.txt(3): This is a television set.

と出力されました。つまり、1〜2行目がちゃんと検索の網にかかっているのに、セン
テンス自体が出力されていません。
 それにたいし、日本語の方は、

SentenceGrepTest用.txt(4): これはコンピューターです。
SentenceGrepTest用.txt(6): これはコンピューターです。

と正しく検索も出力もされています。
 また出力ファイル名も自動的について、とても便利です。

[ ]
RE:07841 キーワードを含む文をセンテンスNo.07842
山紫水明 さん 15/11/17 17:59
 
 白馬の王子様さん,

>と出力されました。つまり、1〜2行目がちゃんと検索の網にかかっているのに、
>センテンス自体が出力されていません。
> それにたいし、日本語の方は、

 英語,日本語の別ではなくて,最初の行が取得できていませんでした。
 次のでどうでしょう。

//-------- SentenceGrep.mac ---------------------------//
if( !selecting ) selectword;
$s = gettext( seltopx, seltopy, selendx, selendy );
$file = filename2;
setsearch $s, searchoption | 0x0030;
grepdialog2 $s, "(現在の内容)", directory, searchoption;
$search = searchbuffer;
#s_op = searchoption;
if( $search == "" ) endmacro;
setsearch $search, #s_op;
begingroupundo;
showwindow 0;
gofiletop;
while( code != eof ) {
    tagjump;
//    if( windowstate > 0 ) showwindow 0;
    finddown;
    #x = x;
    #y = y;
    searchdown "[.!?。!?]", regular;
    beginsel;
    searchup "[.!?。!?]", regular;
    if( !result ) gofiletop;
    else right;
    if( loaddllfile == "" ) loaddll "HmJre.dll";
    $t = gettext2( seltopcolumn, seltoplineno, selendcolumn + 2,
    selendlineno );
    $u = dllfuncstr( "ReplaceRegular", "\r\n", $t, 0, "", 2 );
    moveto #x, #y;
    backtagjump;
    golineend2;
    beginsel;
    searchup "): ";
    right 3;
    insert $u;
    movetolineno 1, lineno + 1;
}
endgroupundo;
showwindow 1;
changename leftstr($file, strlen($file) - strlen(filetype) ) + "_SG_"
+ $search + ".txt";
question "保存しますか?";
if( result == yes ) SAVEAS;
endmacro;
//----------------------------------------------------//

                    山紫水明

[ ]
RE:07842 キーワードを含む文をセンテンスNo.07843
白馬の王子様 さん 15/11/17 18:52
 
山紫水明さん、
 改良版、ありがとうございました。
 早速試しました。
 以下のようにばっちり検索、表示されました。

SentenceGrepTest用.txt(1): This is a tele-vision set.
SentenceGrepTest用.txt(3): This is a television set.

ただ、一つ気になったのは、原文の改行が、結果では活かされていないことです。
もし、可能なら、

SentenceGrepTest用.txt(1): This is a tele-
vision set.
SentenceGrepTest用.txt(3): This is a television set.

となって欲しいのです。今はテスト用の1センテンスが非常に短いもので試していま
すが、これが1センテンスが5行や長い場合10行以上にわたる場合、原文の改行が
維持されていないと結構読みづらくなるので。(もちろん、単純なGrep出力に比べれ
ば、現状でも雲泥の差ではあるのですが。)


[ ]
RE:07843 キーワードを含む文をセンテンスNo.07845
山紫水明 さん 15/11/17 20:54
 
 白馬の王子様さん,

>ただ、一つ気になったのは、原文の改行が、結果では活かされていないことです。

 不自然な改行はない方がいいと思いました。「ファイルタイプ別の設定」で折り返
し幅を原文の改行幅に揃えればいいと思いますけど。
 まあ,それぞれ好みがあるでしょうから,とりあえずオプションにしています。
マクロ冒頭で指定できます。

//-------- SentenceGrep.mac ---------------------------//
////// オプション /////////////////////////////
#return = 0;    // 0:途中改行を残す。1:改行を消去
///////////////////////////////////////////////
if( !selecting ) selectword;
$s = gettext( seltopx, seltopy, selendx, selendy );
$file = filename2;
setsearch $s, searchoption | 0x0030;
grepdialog2 $s, "(現在の内容)", directory, searchoption;
$search = searchbuffer;
#s_op = searchoption;
if( $search == "" ) endmacro;
setsearch $search, #s_op;
begingroupundo;
showwindow 0;
gofiletop;
while( code != eof ) {
    tagjump;
//    if( windowstate > 0 ) showwindow 0;
    finddown;
    #x = x;
    #y = y;
    searchdown "[.!?。!?]", regular;
    beginsel;
    searchup "[.!?。!?]", regular;
    if( !result ) gofiletop;
    else right;
    if( loaddllfile == "" ) loaddll "HmJre.dll";
    $t = gettext2( seltopcolumn, seltoplineno, selendcolumn + 2,
selendlineno );
    if( #return ) {
        $t = dllfuncstr( "ReplaceRegular", "\r\n", $t, 0, "", 2 );
    }
    moveto #x, #y;
    backtagjump;
    golineend2;
    beginsel;
    searchup "): ";
    right 3;
    insert $t;
    movetolineno 1, lineno + 1;
}
if( !#return ) replaceallfast "(?<=\\): )\\n", "", regular;
endgroupundo;
showwindow 1;
changename leftstr($file, strlen($file) - strlen(filetype) ) + "_SG_" + $
search + ".txt";
question "保存しますか?";
if( result == yes ) SAVEAS;
endmacro;
//----------------------------------------------------//

                    山紫水明

[ ]
RE:07845 キーワードを含む文をセンテンスNo.07846
白馬の王子様 さん 15/11/17 21:28
 
山紫水明さん、
 早速最新版、ありがとうございました。
 試用しようとしたら、先回同様のエラーメッセージが出たので、

> 多分,送受信の過程で余分な改行が入ったのでしょう。
>  したから4〜5行目の $ と search の間の改行を削除してください。
のアドバイスを実行しても変わりません。
 あの時のバージョンの同じ箇所を見ても、違いはなく正しいはずなのですが。
 唯一違いは、今回のバージョンでは、その行の最後の
".txt";
の".txt"が赤字になっていることですが、これは関係ないですよね?


[ ]
RE:07846 キーワードを含む文をセンテンスNo.07847
白馬の王子様 さん 15/11/17 21:37
 
追伸です。
 $の後にスペースが入ってしまっていたようでした。エラーメッセージ、出なくな
りました!
 明日午前中に多少長い文章で試用してみます。

[ ]
RE:07845 キーワードを含む文をセンテンスNo.07849
白馬の王子様 さん 15/11/18 06:47
 
山紫水明さん、
 お早うございます。
 本格的な実験がしたくて、今朝は5時前に起きてしまいました。
 お陰様で見事に、原文の改行を保持したまま、出力されました。
快適で、これなら、効率も上がります。本当にありがとうございました。

 ただ、センテンスの末尾が「”」で終わっている場合、例えば、
pretium est lusionem conficere.”
というとき、出力結果は
pretium est lusionem conficere.・
となります。(投稿でこの四角の小さな黒い文字化けが維持されるかどうか心配です
が。)
 実用上は問題ないのですが、ちょっと気づいたものですから。


[ ]
RE:07849 キーワードを含む文をセンテンスNo.07850
白馬の王子様 さん 15/11/18 09:04
 
山紫水明さん、
 その後も、試行を続けていますが、いやはや、便利ですねぇ。素晴らしいです。
 調子に乗って、出力ファイルの先頭に、
検索語:○○○
とあった方が、立て続けにやっている間に混乱することなく、便利かなと思い、メッ
セージ1行くらい、自分でやってみようか、と、他のマクロを参考に、

insert "検索語("$search"):\n"
 
とやって、マクロの何カ所かに入れてみましたが、どの場合もエラーメッセージが出
てうまくいきませんでした。
さすがにマクロは難しい!こんな簡単そうなことができないなんて。

[ ]
RE:07850 キーワードを含む文をセンテンスNo.07851
白馬の王子様 さん 15/11/18 10:00
 
山紫水明さん、
 メッセージ関係で補足です。
 検索語を含むセンテンスが当該ファイルに無かった場合、最後に例えば、

 検索語○○○○を含むセンテンスは見つかりませんでした。

といった感じのメッセージが出ると親切だと思います。空のファイルだけが生成され
ると、一瞬マクロが正常に機能しなかったのでは?ととまどうことがあります。
 なお、本日午前11時半頃から、夜8時過ぎ頃まで、PCに触れることができなくなり
ます。その間はお返事できなくなりますので、予めご了承下さい。

[ ]
RE:07851 キーワードを含む文をセンテンスNo.07854
白馬の王子様 さん 15/11/18 20:48
 
山紫水明さん、
 今(水曜午後8時45分)パソコンを一度開くことが出来ましたが、また、今晩か
ら明日午後2時過ぎまでパソコンがいじれなくなります。
 申し訳ないですが、予めご了承下さい。


[ ]
RE:07851 キーワードを含む文をセンテンスNo.07855
山紫水明 さん 15/11/18 21:19
 
 白馬の王子様さん,

>ただ、センテンスの末尾が「”」で終わっている場合、例えば、
>pretium est lusionem conficere.”

 ピリオドの後に全角の引用符ですか。こういう文章もあるのですね。対応でき
ると思います。

>insert "検索語("$search"):\n"
>とやって、マクロの何カ所かに入れてみましたが、どの場合もエラーメッセー
>ジが出てうまくいきませんでした。

insert "検索語(" + $search + "):\n";
とすればよいでしょう。

> 検索語を含むセンテンスが当該ファイルに無かった場合、最後に例えば、
> 検索語○○○○を含むセンテンスは見つかりませんでした。
>といった感じのメッセージが出ると親切だと思います。

 これもできるでしょう。

                    山紫水明

[ ]
RE:07855 キーワードを含む文をセンテンスNo.07856
白馬の王子様 さん 15/11/19 06:53
 
山紫水明さん、
 今朝、ちょっとだけパソコンにさわれたので‥。
 お返事、ありがとうございました。
> ピリオドの後に全角の引用符ですか。
 ちょっと変ですが、OCRの出力で、こういうのもあるんです。
>こういう文章もあるのですね。対応でき
>ると思います。
 よかった。

>insert "検索語(" + $search + "):\n";
>とすればよいでしょう。
 ありがとうございます。確かにエラーメッセージは出なくなったのですが、マクロ
のどの行と行の間に入れても、出力ファイルの先頭に、二重にこのメッセージが出て
しまいます。以下のように

検索語(gesticulata):検索語(gesticulata):

>> 検索語を含むセンテンスが当該ファイルに無かった場合、最後に例えば、
>> 検索語○○○○を含むセンテンスは見つかりませんでした。
>>といった感じのメッセージが出ると親切だと思います。
>
> これもできるでしょう。
 よろしくお願いします。
 それでは、また今日の午後までしばしの別れ‥‥

[ ]
RE:07856 キーワードを含む文をセンテンスNo.07857
白馬の王子様 さん 15/11/19 13:47
 
山紫水明さん、
 ようやく、ひとまず、パソコンの前に座れました。

>> ピリオドの後に全角の引用符ですか。
> ちょっと変ですが、OCRの出力で、こういうのもあるんです。
 後で考えたのですが、こんな全角の引用符は、最初にファイル全体にわたって半角
の「"」に変換しておけば問題ないわけですね。
 ただ、「"」だと、openingとclosingの区別ができないというちょっとした不便が
あります。Wordだと、半角で「“”」ができるのに、このフォーラムや秀丸にコピペ
すると、全角になってしまいますね。(なぜでしょうね?今まであまり考えたことが
ありませんでした。)
 あと、今朝、慌てていて書き忘れたのですが、抽出されたセンテンスとセンテンス
の間に1行、空行があると、見やすいですね。これも「\n」をどこかに入れればでき
そうですが、言うは易し‥‥で。
 そして、懸案のバックタグジャンプ、それでもうこのマクロは完成と言えそうです。

[ ]
RE:07857 キーワードを含む文をセンテンスNo.07858
白馬の王子様 さん 15/11/19 13:56
 
山紫水明さん、
 2件、書き落としがありました。
 一つめは、説明書に、「同じセンテンス内に、2回以上検索語が出現する場合も、
抽出されるセンテンスは1回です。」と入れておいた方がいいでしょう。(この仕様
の方がダブったり、何回も同じセンテンスが出力されるよりスマートです。)
 もう一つは、抽出されたセンテンスに連番が振られると、全部で該当するセンテン
スが何個あったかが、一目で分かって便利かと思います。ただ、タグ情報の邪魔にな
るようでしたら、無視していただいて結構です。(あ、センテンス末に【14】とか振
れば、邪魔にならないか‥?)

[ ]
RE:07858 キーワードを含む文をセンテンスNo.07859
山紫水明 さん 15/11/19 17:05
 
 白馬の王子様さん,

> 抽出されたセンテンスとセンテンスの間に1行、空行があると、見やすいで
>すね。

 オプションにします。

> そして、懸案のバックタグジャンプ、それでもうこのマクロは完成と言えそ
>うです。

 前にも書いておられましたが,バックタブジャンプは現状でできませんか?こ
ちらではできています。

> もう一つは、抽出されたセンテンスに連番が振られると、全部で該当するセ
>ンテンスが何個あったかが、一目で分かって便利かと思います。

 オプションにします。

> 一つめは、説明書に、「同じセンテンス内に、2回以上検索語が出現する場
>合も、抽出されるセンテンスは1回です。」と入れておいた方がいいでしょう。
>(この仕様の方がダブったり、何回も同じセンテンスが出力されるよりスマー
>トです。)

 これは実は簡単ではありませんので,考えてみます。

 とりあえず,修正したものを今度はホームページの方にアップしておきます。
ここに何度も長いマクロコードを,繰り返し載せるのも気が引けますので。
 オプションは現状ではマクロ冒頭に書いていますが,これはメニューから選べ
るようにする予定です。

                    山紫水明
                    SANSHISUIMEI

[ ]
RE:07859 キーワードを含む文をセンテンスNo.07860
白馬の王子様 さん 15/11/19 17:56
 
山紫水明さん、
 たくさんのオプションで、私のわがままな希望をすべて叶えていただき、本当に恐
縮です。心よりお礼申し上げます。
 非常にすっきりと見やすくなりました。しかも原文(元ファイル)と行のレイアウ
トが同じなので、前後の文脈も含め、確認がきわめて容易です。

> 前にも書いておられましたが,バックタブジャンプは現状でできませんか?こ
>ちらではできています。
 はい、今回、私の方でもできていることを確認しました。ひょっとすると、以前は
キーを間違えていたのかもしれません。何やらATOKのメニューが出てきてしまったよ
うな記憶があります。

>> 一つめは、説明書に、「同じセンテンス内に、2回以上検索語が出現する場
>>合も、抽出されるセンテンスは1回です。」と入れておいた方がいいでしょう。
>>(この仕様の方がダブったり、何回も同じセンテンスが出力されるよりスマー
>>トです。)
>
> これは実は簡単ではありませんので,考えてみます。
 えっと、現状のままの方がいいように思うのですが。つまりセンテンス内に同一の
検索語がいくつあっても、出力はそのセンテンス1回限り、ということで、現時点で
それは実現しています。

> オプションは現状ではマクロ冒頭に書いていますが,これはメニューから選べ
>るようにする予定です。
 その方が、親切ですよね。
 なお、冒頭の検索語の表示ですが、その後に空行が1行あった方が抽出結果との区
別がつきやすいので、77行目の最後に"+ "\n"をもう一つ加えさせていただきました。
つまり、以下のようにしました。

insert "検索語:" + $search + "\n"+ "\n";>

この行、ずいぶん後ろの方に置かないといけなかったのですね。

[ ]
RE:07860 キーワードを含む文をセンテンスNo.07862
山紫水明 さん 15/11/19 18:34
 
 白馬の王子様さん,

>> これは実は簡単ではありませんので,考えてみます。
> えっと、現状のままの方がいいように思うのですが。つまりセンテンス内に
>同一の検索語がいくつあっても、出力はそのセンテンス1回限り、ということ
>で、現時点でそれは実現しています。

 ん? 例えば,以下のような文章ではどうでしょうか。新聞記事を少し不自然
ですが改変した文で,改行を挿入した文です。「天気予報」で検索してください。

世界各地の膨大な観測記録(ビッグデータ)をもとにした日本の天気予報が、世
界で活躍し、異常気象が農作物に及ぼす影響が深刻化するなか、日本の天気予報
はアジア諸国を中心に世界40カ国以上に普及、分析するコンピューターの進歩
などで、天気予報の精度も年々向上している。

                    山紫水明

[ ]
RE:07862 キーワードを含む文をセンテンスNo.07863
白馬の王子様 さん 15/11/19 20:05
 
山紫水明さん、
 あら、ほんと!
 私が別のセンテンスで実験したとき(検索語が2回出る例)でやったときは、1回
しかセンテンスが出力されなかった記憶があるのですが……。勘違いでしょうかね。
 私は検索語複数回出現センテンスでも1回出力の方がすっきりしていていいような
気がしますが、難しければ現状でも構わないと思います。余計なセンテンスは読まな
ければ済むだけの話ですから。

 あと、今回の出力例で特に感じたのですが、

ファイル名(行数):実際のセンテンスの冒頭部分
実際のセンテンスの続き……

という風に、現状ではタグ情報の直後から実際のセンテンスが開始されますが、

ファイル名(行数):
実際のセンテンスの冒頭部分
実際のセンテンスの続き……

という風に、タグ情報と実際のセンテンスが分かれて表示された方が特にセンテンス
の冒頭部分が読みやすくなることに気づきました。
 もし可能なら、これもオプションで現状と、タグ情報別置きとのいずれかから選べ
るようになるといいかもしれません。


[ ]
RE:07863 キーワードを含む文をセンテンスNo.07864
colder さん 15/11/19 20:15
 
逆に一行内に検索語を含むセンテンスが二つ以上見つかったときに、
一つしかセンテンスが出力されないことは書いておいた方が良いでしょうね。

[ ]
RE:07864 キーワードを含む文をセンテンスNo.07865
白馬の王子様 さん 15/11/19 20:56
 
あ、そうか!
私がテスト用に作ったセンテンスは、1行内に検索語を2つ含んでいたものだった可
能性が高いです。(テスト用として短いセンテンスしか作らなかったのが、間違いの
元でした。


[ ]
RE:07863 キーワードを含む文をセンテンスNo.07866
山紫水明 さん 15/11/19 21:08
 
 白馬の王子様さん,

>ファイル名(行数):
>実際のセンテンスの冒頭部分
>実際のセンテンスの続き……
>
>という風に、タグ情報と実際のセンテンスが分かれて表示された方が特にセン
>テンスの冒頭部分が読みやすくなることに気づきました。

 自分で出力結果に改行を挿入して,カーソルがどこにあったらタグジャンプで
きるか試して見てください。

                    山紫水明

[ ]
RE:07864 キーワードを含む文をセンテンスNo.07867
山紫水明 さん 15/11/19 21:14
 
 colderさん,

>逆に一行内に検索語を含むセンテンスが二つ以上見つかったときに、
>一つしかセンテンスが出力されないことは書いておいた方が良いでしょうね。

 コメントありがとうございます。説明を書く段階になったら,そのこともふれ
ることにしたいと思います。

                    山紫水明

[ ]
RE:07866 キーワードを含む文をセンテンスNo.07869
白馬の王子様 さん 15/11/20 05:28
 
山紫水明さん、
 お早うございます。

> 自分で出力結果に改行を挿入して,カーソルがどこにあったらタグジャンプで
>きるか試して見てください。
 今、試してみました。
 なるほど。現状なら、タグ情報のある1行目なら、カーソルがどこにあってもタグ
ジャンプするのですね。これは気づかなかったです。
 これに気づいて、閃いたのですが、カーソルが、2行目以下のどこにあっても、タ
グジャンプできるようにはならないでしょうか?そうすれば、タグジャンプするため
にいちいち最初の行にカーソルを移動する手間が省けそうです。もっともこれは、原
文の改行マークを維持するオプションで使っているユーザーだけが欲しがる機能かも
知れませんね。改行マークなしの設定なら、センテンスのどこにカーソルがあっても
タグジャンプできることになりますから。

[ ]
RE:07869 キーワードを含む文をセンテンスNo.07870
K'zawa さん 15/11/20 14:26
 
白馬の王子様さん、こんにちは。
K'zawaです。

> これに気づいて、閃いたのですが、カーソルが、2行目以下のどこにあっても、タ
>グジャンプできるようにはならないでしょうか?そうすれば、タグジャンプするため
>にいちいち最初の行にカーソルを移動する手間が省けそうです。

できますよ。

// tagjump改
setcompatiblemode 0x0F;
disabledraw;

#column = column;  #lineno = lineno;
#hGrep = hidemaruhandle( 0 );
if ( rangeeditmode & 0x01 ) {
    #top = ytolineno( 0, rangeedittop );
} else {
    #top = 1;
}

#limit = 10;
while ( #i < #limit ) {
    tagjump;
    #r = result;
    if ( #r == yes || lineno == #top ) break;
    moveto2 column, lineno - 1;
    #i = #i + 1;
}

if ( #r == yes ) {
    #hJump = hidemaruhandle( 0 );
    setactivehidemaru #hGrep;
    moveto2 #column, #lineno;
    setactivehidemaru #hJump;
} else {
    moveto2 #column, #lineno;
    message "タグジャンプできませんでした。";
}

[ ]
RE:07870 キーワードを含む文をセンテンスNo.07871
白馬の王子様 さん 15/11/20 15:11
 
K'zawaさん、
 初めまして。
 お世話になります。

>できますよ。
ということで、せっかく作っていただいたマクロですが、どう使ったらよいものやら。
 SentenceGrep.macのtagjumpとある、35行目以下にそっくりコピペして、元来そこ
にあった部分をbacktagjumpの直前行までを削除してみたのですが、結果はそもそも
抽出機能がおかしくなって、

検索語:gesticulata

SentenceGrepTest用.txt(2): SentenceGrepTest用.txt(4): SentenceGrepTest用.txt
(185): SentenceGrepTest用.txt(387): SentenceGrepTest用.txt(2156): SentenceGr
epTest用.txt(2158):

というファイルができただけでした。
 何か全然分かっていないで、申し訳ないです。

[ ]
RE:07871 キーワードを含む文をセンテンスNo.07872
白馬の王子様 さん 15/11/20 15:25
 
自己レスです。
K'zawaさん、
 分かりました!
 作っていただいたTagjump(改)は、SentenceGrep.macに組み込んで使うのではなく、
独立したマクロだったんですね。
 今、試行して、ほんと、見事にいけました!
 ありがとうございました!!

[ ]
RE:07866 キーワードを含む文をセンテンスNo.07873
白馬の王子様 さん 15/11/20 16:08
 
山紫水明さん、
 K'zawaさんに作っていただいたTagJump(改).macを試用していて、とんでもないこ
とに気づいてしまいました。
 SGTest用.txtという208行から成るラテン語テキスト(macron無し)でlibrumを検索
語としてSentenceGrep.macを実行しました。
 その結果は以下の通りです。

検索語:librum

SGTest用.txt(6):  Semel et saepius in librum oculos conjecerat quem
soror legebat: sed ei inerant nec tabulae nec sermones.<1>

SGTest用.txt(137): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>

問題は2番目のセンテンスです。実際にはlibrumは含まれていません!
原文に立ち戻って検索してみると、
上記のタグ情報通り、136〜138行目にわたるセンテンスの137行目にlibrumがありま
す。そこのセンテンスは、
Speravit enim se in ea
alteram clavem inventuram esse, aut saltem librum praecep-
torum, quibus usi homines comprimerentur velut telescopia.
です。では、上記のSentenceGrep.macの出力結果のセンテンスはどこにあるかと調べ
てみたら、何と、184〜186行目にわたる
Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.
であることが分かりました。
 一体なぜこのようなずれ−−つまりタグ情報は正しく検索語の存在行を表している
のに、そこに出力されたセンテンスは、50行近くも先のセンテンスであるというずれ
−−が生じているのでしょうか?
 これまでこのような現象に気づかなかったのは、出力結果のセンテンスをよく読ま
ずに、タグジャンプして本文の方でばかり(その文脈などを気にしながら)気を取ら
れていたためかもしれません。(そもそも、実は、まだラテン語、「読める」ところ
まで行っていないので、このマクロは猫に小判的なところがあるのです。)

[ ]
RE:07873 キーワードを含む文をセンテンスNo.07874
白馬の王子様 さん 15/11/20 17:11
 
山紫水明さん、
 メモリーに余計な記憶が残っているのが原因かも、と思い、一旦PCの電源を落とし
て、実験を続けましたが、症状は変わりません。
 K'zawaさんに作っていただいたTagJump(改).macをSentenceGrep.macにコピペした
のがいけなかったかと、昨晩ダウンロードしたzipファイルを再解凍して、実施しま
したがやはり同じ。(以下の例でお分かりのように冒頭の「検索語:○○」の後に空
行がないことから、私が一切マクロには手を加えていません、オプションを除き)。
 さて、今度はtamenという検索語で試しました。その結果は以下の通りです。

検索語:tamen
SGTest用.txt(62): ” (Complures enim hujus
generis res Alicia in schola didicerat; et quamquam occasio
minime opportuna erat scientiae ostentandae, quod nemo
aderat qui eam audiret, tamen bonae exercitationi esse
putabat haec iterare.<1>

SGTest用.txt(87): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>

SGTest用.txt(118): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<3>

SGTest用.txt(167): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<4>

SGTest用.txt(185): optime admonebat (raro tamen ipsa monitis utebatur): ” P
lerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<5>

直前の投稿と同じことが起こっています。しかも今度は最後の出力だけ、センテンス
の途中から始まり、またセンテンスの冒頭から始まっています。タグ情報は正しいで
す。

[ ]
RE:07874 キーワードを含む文をセンテンスNo.07875
白馬の王子様 さん 15/11/20 17:22
 
山紫水明さん、
 出力されるセンテンスで、このマクロが異常に拘っているセンテンス
(Plerumque quidem....)付近に問題があるのかもしれないので、このセンテンスが含
まれるパラグラフ全体をお送りします。デバッグのお役に立てれば幸いです。

   “Tacedum: inane est sic lacrimare!” sibi dixit severe Alicia.
“Te hortor ut extemplo desinas!” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret. Tempore
quodam (sic recordabatur) se alapis caedere eonata est, quod
pila ludens nullo alio competitore contra se ipsam fallaciter
egisset. Nam Aliciam lusus insolitus delectabat, quo duos
homines se esse simulabat. “Sed vanum est” Alicia medita-
batur, “nunc simulare me esse duos homines! Vix satis mei
superest ex quo homo unus eo nomine dignus fiat!”


[ ]
RE:07875 キーワードを含む文をセンテンスNo.07876
白馬の王子様 さん 15/11/20 18:49
 
山紫水明さん、
 一連の異常に気づいたPCはXPだったので、念のためWindows 7のPCでも同じ実験を
しました。
 結果は全く同じでした。ですから、PCやWindowsの違いの問題ではなさそうです。


[ ]
RE:07875 キーワードを含む文をセンテンスNo.07877
山紫水明 さん 15/11/20 22:09
 
 白馬の王子様さん,

>   “Tacedum: inane est sic lacrimare!” sibi dixit severe Alicia.
>“Te hortor ut extemplo desinas!” Plerumque quidem se
>optime admonebat (raro tamen ipsa monitis utebatur): ali-

 お送りいただいたセンテンスの3行目の後部に utebatur): ali- があります
が,このコロンの後の半角スペースを削除するか全角スペースに変換して,一度
試していただけませんか。

                    山紫水明

[ ]
RE:07877 キーワードを含む文をセンテンスNo.07878
白馬の王子様 さん 15/11/21 06:54
 
山紫水明さん、
 お早うございます。(お返事が遅くなり、失礼しました。老人になるとどうしても
夜寝るのが早いもので……。)
 ご指示の通り、

>このコロンの後の半角スペースを削除
してみました。そうしたら、見事に正しく出力されました!
 ということは、元ファイルの半角コロンの後の半角スペースは、必ず全置換で削除
する、という前処理を行えばよい、ということになりますか?


[ ]
RE:07878 キーワードを含む文をセンテンスNo.07879
白馬の王子様 さん 15/11/21 07:04
 
追伸です。
 異常出力問題が無事解決したので、07863番で希望した、

ファイル名(行数):
実際のセンテンスの冒頭部分
実際のセンテンスの続き……

という風に、タグ情報と実際のセンテンスを別の行に表示する、というオプションも
可能ならお願いします。
 昨日K'zawaさんに作っていただいたTagjump(改).macのお陰で、タグ情報と実際の
センテンスが別の行でも、カーソルがセンテンスのどこにあってもタグジャンプして
くれるようになったので。


[ ]
RE:07878 キーワードを含む文をセンテンスNo.07880
山紫水明 さん 15/11/21 17:05
 
 白馬の王子様さん,

> ということは、元ファイルの半角コロンの後の半角スペースは、必ず全置換
>で削除する、という前処理を行えばよい、ということになりますか?

 対策をしておきましたが,もしだめでしたらそうしてください。
 いくつか修正してアップしておきましたので,いろいろ試してください。

                    山紫水明

[ ]
RE:07880 キーワードを含む文をセンテンスNo.07881
白馬の王子様 さん 15/11/21 21:18
 
山紫水明さん、
 連休初日というのに、SentenceGrep.macの改良、恐れ入ります。
 さて、librumで検索したところ、186行目のコロンの後に半角スペースがあっても
正しい出力が得られました。
 ところが、quidemで検索したところ、原文では以下のようなのに
(この投稿では区別しやすいように行末に原文での行数を入れておきました。)

   Non diutius morata, Alicia post eum descendit, ne cogitans(30)
quidem quo pacto omnino rursus emergeret.(31)

Sed ne caput(127)
quidem per januam protrudere poterat.(128)

Plerumque quidem se(184)
optime admonebat (raro tamen ipsa monitis utebatur): ali-(186)
quando tam aspere se increpabat ut etiam fleret.(187)

マクロ出力は
(ここでも投稿用に各行末に原文での行数を入れてあります。)

検索語:quidem
----------------------------------------
SGTest用.txt(31): Sed ne caput(126)
quidem per januam protrudere poterat.(127)<1>

SGTest用.txt(128):
” Plerumque quidem se(184)
optime admonebat (raro tamen ipsa monitis utebatur): ali-(185)
quando tam aspere se increpabat ut etiam fleret.(186)<2>

となってしまいます。これは185行目のコロンの後の半角スペースの有無にかかわら
ずです。
 念のため、元ファイル全体のコロンの後の半角スペースを削除してからマクロを実
行しても変化はありませんでした。さらに念のため「!」の後ろの半角スペースも全
削除してみましたが状況は変わりませんでした。さらに、怪しいセミコロンの後の半
角スペースも全削除しましたがかわりませんでした。さらに、引用符を全て半角の
「"」に変えても駄目でした。
 ところで、タグ情報とセンテンス開始の行を分けるオプションを付けていただき、
ありがとうございました。また、冒頭の検索語と出力結果の間に区切りの線が入って、
より区別しやすくなりましたね。




[ ]
RE:07881 キーワードを含む文をセンテンスNo.07882
白馬の王子様 さん 15/11/21 21:22
 
訂正です。
 直前の投稿で、原文の行数が最後のセンテンスが
184, 186, 187としましたが、正しくは184, 185, 186です。


[ ]
RE:07882 キーワードを含む文をセンテンスNo.07883
白馬の王子様 さん 15/11/21 21:26
 
もう一つ、訂正です。
 出力結果の最初のセンテンスの冒頭がタグ情報の直後(タグ情報と同じ行)に来て
いますが、これは、私が実験していて変えてしまったもので、最初はオプションで指
定した通り、正しくタグ情報行の次の行に出力されていました。(つまり2番目のセ
ンテンスの出力例と同じでした。)


[ ]
RE:07883 キーワードを含む文をセンテンスNo.07884
colder さん 15/11/21 22:06
 
ざっとマクロを見たところ、
37行目〜39行目が余分です。そこを全削除してください。

[ ]
RE:07883 キーワードを含む文をセンテンスNo.07885
山紫水明 さん 15/11/21 22:32
 
 白馬の王子様さん,

 要するに最初のデータが欠落しているということですね。
 因みに,1番目と2番目の文章を入れ替えてみると,やはり最初のデータがな
くなります。librumの 場合に正しい検索結果がでるということですが,最初の
データも出ているのでしょうか。
 他の単語の場合,一番目のデータが常に欠落するかどうか,調べていただけま
せんか。

                    山紫水明

[ ]
RE:07883 キーワードを含む文をセンテンスNo.07886
山紫水明 さん 15/11/21 22:42
 
 白馬の王子様さん,

 colder さんのコメントがありました。ちょっと今日は時間がありませんので,
指摘された行を削除あるいはコメントアウト(行頭に//を付加)して試してくだ
さい。

                    山紫水明

[ ]
RE:07884 キーワードを含む文をセンテンスNo.07887
白馬の王子様 さん 15/11/22 07:37
 
colderさん、
 白馬の王子様です。
 ご指摘、ありがとうございました。

>37行目〜39行目が余分です。そこを全削除してください。

//で、コメントアウトしました。今、その状態で実験中です。 

[ ]
RE:07885 キーワードを含む文をセンテンスNo.07888
白馬の王子様 さん 15/11/22 07:47
 
山紫水明さん、
 面倒な問題に辛抱強くお付き合いいただき、本当に申し訳ございません。

> 要するに最初のデータが欠落しているということですね。
という訳でもないようです。というのは、

>librumの 場合に正しい検索結果がでるということですが,最初の
>データも出ているのでしょうか。
というので再実験しましたが、ちゃんと出ています。秀丸の通常の検索で、6行目と1
37行目にlibrumがあることを確認後、マクロを実行すると、
検索語:librum
----------------------------------------
SGTest用.txt(6):
 Semel et saepius in librum oculos conjecerat quem
soror legebat: sed ei inerant nec tabulae nec sermones.<1>

SGTest用.txt(137):
 Speravit enim se in ea
alteram clavem inventuram esse, aut saltem librum praecep-
torum, quibus usi homines comprimerentur velut telescopia.<2>

と、正しい結果が得られます。なお、これは、元ファイルに修正を加えていないファ
イルで実験しました。(つまり、コロンの後の半角その他一切削除していないもので
す。

> 因みに,1番目と2番目の文章を入れ替えてみると,やはり最初のデータがな
>くなります。
> 他の単語の場合,一番目のデータが常に欠落するかどうか,調べていただけま
>せんか。
 はい、これから時間をかけて実験を繰り返します。


[ ]
RE:07886 キーワードを含む文をセンテンスNo.07889
白馬の王子様 さん 15/11/22 07:59
 
山紫水明さん、

> colder さんのコメントがありました。
>指摘された行を削除あるいはコメントアウト(行頭に//を付加)して試してくだ
>さい。
はい、今日の実験はコメントアウト済みのマクロで行っています。

>ちょっと今日は時間がありませんので,
 私のような定年退職者と異なり、山紫水明さんを始め、皆様のほとんどは現役で忙
しくしていらっしゃるはずです。その忙しい合間を縫って、時間と神経を使うマクロ
開発に取り組んで下さっているのには、本当にいつもいつも頭が下がります。
 しかも、今日は日曜日。お仕事なり、お遊びなり、どうぞマクロを気にすることな
く、気兼ねなくお過ごし下さい。気長にお待ちしています。(老人は気が短い、とい
うのは都市伝説に過ぎません。)



[ ]
RE:07888 キーワードを含む文をセンテンスNo.07890
白馬の王子様 さん 15/11/22 11:00
 
山紫水明さん、
 5つの実験結果をご報告します。
 分量が多くなるので、2つの投稿に分けます。

投稿用準備
問題のある184行目から186行目まで、原文の行全体を以下に、行頭に行番号を振って
引用しておきます。(検索元ファイルは、以下の3行も含め、半角スペースの削除等の
改変は一切行っていません。)

184Te hortor ut extemplo desinas!” Plerumque quidem se
185optime admonebat (raro tamen ipsa monitis utebatur): ali-
186quando tam aspere se increpabat ut etiam fleret. Tempore

実験1
185行目の先頭のopitmeを検索語としてマクロ実行。(ファイル全体で185行目しかこ
の語はないことは、秀丸の検索機能で確認済み)
結果

検索語:optime
----------------------------------------
SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1>

実験2
185行目の先頭から2番目のadmonebatを検索語としてマクロ実行。(ファイル全体で1
85行目しかこの語はないことは、秀丸の検索機能で確認済み)
結果

検索語:admonebat
----------------------------------------
SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1>

実験3
185行目の行末から次行にわたるaliquandoを検索語としてマクロ実行。(ファイル全
体で91行目と185〜6行目の2カ所に出現することは、秀丸の検索機能で確認済み)
結果

検索語:aliquando
----------------------------------------
SGTest用.txt(91):
” et aliquando “Vespertilionesne vescuntur felibus?<1>

SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>

実験4
186行目の途中にあるetiamを検索語としてマクロ実行。(ファイル全体で100行目と1
86行目の2カ所に出現することは、秀丸の検索機能で確認済み)
結果

検索語:etiam
----------------------------------------
SGTest用.txt(100):
 Sed ante eam erat altera
porticus longa: Cuniculus Albus etiam erat in conspectu, per
eam properans.<1>

SGTest用.txt(186):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>


[ ]
RE:07890 キーワードを含む文をセンテンスNo.07891
白馬の王子様 さん 15/11/22 11:04
 
実験報告の続きです。
実験5
186行目の途中にあるtamを検索語としてマクロ実行。(ファイル全体で18カ所にtam
という文字列があることを、秀丸の検索機能で確認済み。上記の実験例に比べて多い
感じがしますが、これは、単語としてtam以外に、他の語や活用の一部として語中に
含まれる文字列や隣接する単語の語尾と語頭を合わせてtamとなる例もカウントされ
ているためです。秀丸の検索機能で拾われたtamの出現行の行番号は、33, 45, 62, 7
9, 87, 114, 118, 121, 139, 146, 159, 167, 185, 186, 193, 194, 204, 208。

結果(数があまりに多いので、注目すべき所だけを抜き書きします。)

検索語:tam
----------------------------------------
SGTest用.txt(33):
   Aliquod spatium cuniculi cavum protinus recte porrigeba-
tur velut fossa subterranea; deinde tam subito declive factum
est ut Alieia, antequam se sistere posset, inveniret se
decidere quasi in profundissimum puteum.<1>

SGTest用.txt(45):
 Praeteriens Alicia de uno pluteorum ollam
detraxit, titulo inscriptam “AUREORUM DECOCTIO
MALORUM”; at praeter spem vacua erat.<2>

(途中省略)

SGTest用.txt(118):
 Clave aurea parvula ad machinationem ac-
commodata, Alicia gaudio maximo eam aptam esse invenit!<7>

SGTest用.txt(139):
Nunc ibi invenit ampullam parvam (“Certo non hic erat
12
 antea,” inquit Alicia), cujus circum cervices alligatus est
titulus chartaceus.<8>

(途中省略)

SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<12>

SGTest用.txt(193):

   Mox eonspicata est cistellulam vitream sub mensa sitam;
qua reclusa placentam parvulam invenit, in qua verba
“VESCERE ME” uvis passis belle notata sunt.<13>

SGTest用.txt(204):
 Nempe
hoc plerumque fit cum placentam edas.<14>

SGTest用.txt(208):
   Initio igitur facto Alicia mox devoravit placentam.<15>
(これで終わり)

注目すべきなのは、
(1)最初の出現例も2番目以降の出現例も正しく出力されていること。
(2)ところが、原文では121行目にあるtamが出力されていないこと。
当該行前後は以下の通りです。(行頭に行番号を付加しておきます。この最終行120
行目はOCRで読み取られた本のページ番号11があるだけです。)

118quindecim alta. Clave aurea parvula ad machinationem ac-
119commodata, Alicia gaudio maximo eam aptam esse invenit!
12011

(3)原文186行目にtamがあるのに、出力されていない。(たまたま、例の問題センテン
スに原文では185行目と186行目にtamが存在しています。)当該行前後は以下の通り。

184“Te hortor ut extemplo desinas!” Plerumque quidem se
185optime admonebat (raro tamen ipsa monitis utebatur): ali-
186quando tam aspere se increpabat ut etiam fleret. Tempore
187quodam (sic recordabatur) se alapis caedere eonata est, quod
188pila ludens nullo alio competitore contra se ipsam fallaciter
189egisset. Nam Aliciam lusus insolitus delectabat, quo duos

(4)原文194行目にtamがあるのに、出力されていない。当該行前後は以下の通り。

193   Mox eonspicata est cistellulam vitream sub mensa sitam;
194qua reclusa placentam parvulam invenit, in qua verba
195“VESCERE ME” uvis passis belle notata sunt. “Esto, vescar

今のところ、以上です。
他に行うべき実験や必要な情報があればご指示下さい。(一番良いのは、SGTest用.t
xt全体をお送りすることですが、そういう場、仕組みがないようなので、結果として
細切れの情報提供で申し訳ございません。)

[ ]
RE:07891 キーワードを含む文をセンテンスNo.07892
colder さん 15/11/22 13:31
 
>(4)原文194行目にtamがあるのに、出力されていない。当該行前後は以下の通り。
これは、白馬の王子様さんの希望通りではないんですか?
同じセンテンス内に複数、検索語があっても出力は1回限りにしているようです。
>(2)ところが、原文では121行目にあるtamが出力されていないこと。
こちらは、121行の内容が書かれていないのでよく分かりませんが、
ひょっとして118行と全く同じ文章が書かれているんじゃないでしょうか?
それならば、同一センテンスの出力を1回限りにする処理の副作用でそんな風になっ
てしまっています。
↓こんな文章があると、1回しか出力されない。
大事なことなので2回書きました。
大事なことなので2回書きました。

[ ]
RE:07892 キーワードを含む文をセンテンスNo.07893
白馬の王子様 さん 15/11/22 14:02
 
colderさん、
 また、お世話になります。

>>(4)原文194行目にtamがあるのに、出力されていない。当該行前後は以下の通り。
>これは、白馬の王子様さんの希望通りではないんですか?
>同じセンテンス内に複数、検索語があっても出力は1回限りにしているようです。
 あ、仕様が私の希望通りに変更になっていたんですね。それは気づきませんでした。
ご指摘、ありがとうございました。

>>(2)ところが、原文では121行目にあるtamが出力されていないこと。
>こちらは、121行の内容が書かれていないのでよく分かりませんが、
>ひょっとして118行と全く同じ文章が書かれているんじゃないでしょうか?
済みません、行番号を間違えて振っていたようです。正しくは、
118tamen bis circumiisset, invenit aulaeum humile quod antea
119non animadverterat. Post hoc erat janua parva, fere digitos
120quindecim alta. Clave aurea parvula ad machinationem ac-
121commodata, Alicia gaudio maximo eam aptam esse invenit!
12211
です。私の不注意で混乱させて、申し訳ありません。

[ ]
RE:07893 キーワードを含む文をセンテンスNo.07894
白馬の王子様 さん 15/11/22 14:06
 
追伸です。
 1センテンスにいくつ検索語があっても、1回しか出力しないという仕様になって
るのなら、193〜194も現状の出力で正しいということになりますね。


[ ]
RE:07894 キーワードを含む文をセンテンスNo.07895
白馬の王子様 さん 15/11/22 14:09
 
追伸の追伸です。
 同様に、185行目、186行目のtamも、同じセンテンス内にあるから、1回の出力でO
Kとなりますね。

[ ]
RE:07895 キーワードを含む文をセンテンスNo.07896
白馬の王子様 さん 15/11/22 14:12
 
ただし、出力が変です。

[ ]
RE:07884 キーワードを含む文をセンテンスNo.07897
山紫水明 さん 15/11/22 14:18
 
 colderさん,

>ざっとマクロを見たところ、
>37行目〜39行目が余分です。そこを全削除してください。

 マクロのコードまで見ていただいて恐縮です。この部分は実は #7873 の問題の
対策として入れたところです。

                    山紫水明

[ ]
RE:07891 キーワードを含む文をセンテンスNo.07898
山紫水明 さん 15/11/22 14:27
 
 白馬の王子様さん,

>186行目の途中にあるtamを検索語としてマクロ実行。(ファイル全体で18カ所
>にtam
>という文字列があることを、秀丸の検索機能で確認済み。上記の実験例に比べ
>て多い

 「単語の検索」をON にすれば単語だけを検索します。これはデフォルトで
設定しておきます。
 いくつかの修正をしてアップしておきましたのでそちらで試してください。

                    山紫水明

[ ]
RE:07896 キーワードを含む文をセンテンスNo.07899
colder さん 15/11/22 14:32
 
40行目の「searchdown $search, #s_op;」を「searchdown2 $search, #s_op;」に、
70行目の「searchup "): ";」を「golinetop2;searchdown "): ";」に変更したらど
うなりますか?試してみてください。

[ ]
RE:07898 キーワードを含む文をセンテンスNo.07900
白馬の王子様 さん 15/11/22 15:33
 
山紫水明さん、
 お忙しいのに済みません。
 まず、185行目のoptimeで試しました。

検索語:optime
----------------------------------------
SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur):  Tempore
quodam (sic recordabatur) se alapis caedere eonata est, quod
pila ludens nullo alio competitore contra se ipsam fallaciter
egisset.<1>

原文が
184“Te hortor ut extemplo desinas!” Plerumque quidem se
185optime admonebat (raro tamen ipsa monitis utebatur): ali-
186quando tam aspere se increpabat ut etiam fleret. Tempore
187quodam (sic recordabatur) se alapis caedere eonata est, quod
188pila ludens nullo alio competitore contra se ipsam fallaciter
189egisset.
ですので、上記の出力は、184行目の後半、すなわち、センテンスの冒頭に当たる Pl
erumque quidem seが欠けているのと、186行目の前半、すなわちセンテンスの末尾に
当たるquando tam aspere se increpabat ut etiam fleret.が欠けていて、次のセン
テンスが入ってしまっています。しかも、そのセンテンスの冒頭のTemporeが185行目
の末尾のali-と入れ替わる、という複雑なことになっています。


[ ]
RE:07900 キーワードを含む文をセンテンスNo.07901
白馬の王子様 さん 15/11/22 15:42
 
続いて185行目の2番目のadmonebatで実行。ご覧のように、余計なものが付いていま
す。センテンスの末尾は正しく出力されています。

検索語:admonebat
----------------------------------------
SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1>


[ ]
RE:07901 キーワードを含む文をセンテンスNo.07902
白馬の王子様 さん 15/11/22 15:49
 
続いて、185〜6にまたがるaliquandoで実行。例の問題センテンスについては、optim
eの場合と同様な出力結果です。
検索語:aliquando
----------------------------------------
SGTest用.txt(91):
” et aliquando “Vespertilionesne vescuntur felibus?<1>

SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur):  Tempore
quodam (sic recordabatur) se alapis caedere eonata est, quod
pila ludens nullo alio competitore contra se ipsam fallaciter
egisset.<2>



[ ]
RE:07902 キーワードを含む文をセンテンスNo.07903
白馬の王子様 さん 15/11/22 15:53
 
続いて、186行目のetiamで実行。ご覧のように過不足なく正しく出力。

検索語:etiam
----------------------------------------
SGTest用.txt(100):
 Sed ante eam erat altera
porticus longa: Cuniculus Albus etiam erat in conspectu, per
eam properans.<1>

SGTest用.txt(186):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>


[ ]
RE:07903 キーワードを含む文をセンテンスNo.07904
白馬の王子様 さん 15/11/22 16:00
 
続いてtamを単語として検索。秀丸の検索で2箇所にあることを確認後、マクロを実行。
ご覧のように正しく出力。

検索語:tam
----------------------------------------
SGTest用.txt(33):
   Aliquod spatium cuniculi cavum protinus recte porrigeba-
tur velut fossa subterranea; deinde tam subito declive factum
est ut Alicia, antequam se sistere posset, inveniret se
decidere quasi in profundissimum puteum.<1>

SGTest用.txt(186):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>



[ ]
RE:07904 キーワードを含む文をセンテンスNo.07905
白馬の王子様 さん 15/11/22 16:28
 
執念の実験の積み重ねで、ちょっと見えてきたことがあります。
例の185行目の特徴は「): 」そして行末にハイフンですよね。
元のファイルにそのような条件が揃ったところは185行目しかありません。そこで、
小さな実験用ファイルを作り、この条件を再現しました。(もちろん、ラテン語の文
章的には非文あることは明瞭です。そこで、その末尾の単語を検索語としてみました。
結果は下記の通りです。

検索語:exspectationem
----------------------------------------
parenthiscolonspacehyphen.txt(20):
discerneret quam in partem mutaretur. Praeter):  Praeter):  exspec-
tationem sensit se nec majorem nec minorem fieri.<1>

この前後の原文は

19cresco? Utro” In summo capite manum tenebat, ut
20discerneret quam in partem mutaretur. Praeter):  exspec-
21tationem sensit se nec majorem nec minorem fieri. Nempe

です。
 気をよくして、続いてpartemを検索語としました。

検索語:partem
----------------------------------------
parenthiscolonspacehyphen.txt(18):

   Paululum edit, sibique anxie dixit: “Utram in partem
cresco?<1>

parenthiscolonspacehyphen.txt(20):
discerneret quam in partem mutaretur. Praeter):  Utro” In summo capite manu
m tenebat, ut
discerneret quam in partem mutaretur.<2>

このように実験用のファイルの20行目の出力はexspectationemの場合もpartemの場合
も、元ファイルの185行目の異常出力を再現していますよね。
 これで何とか解決策は見いだせないでしょうか?


[ ]
RE:07905 キーワードを含む文をセンテンスNo.07906
白馬の王子様 さん 15/11/22 16:45
 
昨晩異常に気づいたきっかけとなった検索語quidemで元ファイルを対象に再度実行し
てみました。
検索語:quidem
----------------------------------------
SGTest用.txt(31):
 Sed ne caput
quidem per januam protrudere poterat.<1>

SGTest用.txt(128):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<2>

となり、184行目にあるquidemは無視されて出力されていません。
 同じく、昨晩のtamenで検索しました。

検索語:tamen
----------------------------------------
SGTest用.txt(62):
” (Complures enim hujus
generis res Alicia in schola didicerat; et quamquam occasio
minime opportuna erat scientiae ostentandae, quod nemo
aderat qui eam audiret, tamen bonae exercitationi esse
putabat haec iterare.<1>

SGTest用.txt(87):
 In aere, opinor, nulli
sunt mures; fortasse tamen posses captare vespertilionem,
qui sane muris similis est.<2>

SGTest用.txt(118):
 Primo tamen
paulisper exspectabat si amplius se contraheret.<3>

SGTest用.txt(185):
optime admonebat (raro tamen ipsa monitis utebatur): ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<4>

原文には5箇所あるのです(62, 87, 118, 167, 185行目)が、167行目を含むセンテン
スが出力されていません。原文は以下の通りです。

167amoenissimum per parvam januam intrandum. Primo tamen
168paulisper exspectabat si amplius se contraheret.

そして例の問題のセンテンスの出力が異常です。


[ ]
RE:07905 キーワードを含む文をセンテンスNo.07907
山紫水明 さん 15/11/22 16:53
 
 白馬の王子様さん,

>例の185行目の特徴は「): 」そして行末にハイフンですよね。

 この記号はタグの末尾と同じなので,誤作動を惹起していると思います。この
記号が文中に出てくることは想定していませんでした。通常はないですよね。

 マクロの25行目
else $searchfile = "(現在の内容)";
のすぐ下に
replaceallfast "): ", "): ";
を追加してみてください。

 これは半角のスペースを全角に置換しています。原文に手を加えることは本来
やってはいけないことですが,この際応急措置としてやむを得ません。何らか別
の方法があれば,また考えます。

                    山紫水明

[ ]
RE:07906 キーワードを含む文をセンテンスNo.07908
山紫水明 さん 15/11/22 17:05
 
 白馬の王子様さん,

 すみません。β3のアップロードができていなかったようです。もう一度見てい
ただけませんか。
                   山紫水明

[ ]
RE:07908 キーワードを含む文をセンテンスNo.07909
白馬の王子様 さん 15/11/22 17:17
 
山紫水明さん、
 5時15分現在ではまだ22日のアップロードは見当たりませんが……?


[ ]
RE:07907 キーワードを含む文をセンテンスNo.07910
白馬の王子様 さん 15/11/22 17:21
 
山紫水明さん、
>>例の185行目の特徴は「): 」そして行末にハイフンですよね。
>
> この記号はタグの末尾と同じなので,誤作動を惹起していると思います。
 おおっ!解決のきっかけが掴めそう?

>この
>記号が文中に出てくることは想定していませんでした。通常はないですよね。
 確かに。ただ、現実に私がOCRで電子化した元の印刷本にはあったので、皆無とは
言えないのでしょうね。

> マクロの25行目
>else $searchfile = "(現在の内容)";
>のすぐ下に
>replaceallfast "): ", "): ";
>を追加してみてください。
 これはβ3(本日版)での話でしょうか?

> これは半角のスペースを全角に置換しています。原文に手を加えることは本来
>やってはいけないことですが,この際応急措置としてやむを得ません。何らか別
>の方法があれば,また考えます。
 そうですね。とりあえずということなら。


[ ]
RE:07910 キーワードを含む文をセンテンスNo.07911
白馬の王子様 さん 15/11/22 17:29
 
自己レスです。

>> マクロの25行目
>>else $searchfile = "(現在の内容)";
>>のすぐ下に
>>replaceallfast "): ", "): ";
>>を追加してみてください。
> これはβ3(本日版)での話でしょうか?
 そのようですね。手元のβ2(昨日版)では、25行目に
else $searchfile = "(現在の内容)";
という行はありませんから。

[ ]
RE:07911 キーワードを含む文をセンテンスNo.07912
山紫水明 さん 15/11/22 18:02
 
 白馬の王子様さん,

 β4をアップしておきます。置換しないで処理するものです。

                    山紫水明

[ ]
RE:07908 キーワードを含む文をセンテンスNo.07913
白馬の王子様 さん 15/11/22 18:08
 
β3、無事ダウンロードできました。
そして、25行目の次にご指定の行を挿入。実験しました。これまで報告した検索語で
次々実験しました。ほとんど全て正常に出力されました。
 ちょっと変なのが、185行目から186行目にまたがっているaliquandoで、出力結果
は以下の通りです。

検索語:aliquando
----------------------------------------
SGTest用.txt(91):
” et aliquando “Vespertilionesne vescuntur felibus?<1>

SGTest用.txt(185):
 Tempore
quodam (sic recordabatur) se alapis caedere eonata est, quod
pila ludens nullo alio competitore contra se ipsam fallaciter
egisset.<2>

原文は、以下の通りです。

184“Te hortor ut extemplo desinas!” Plerumque quidem se
185optime admonebat (raro tamen ipsa monitis utebatur): ali-
186quando tam aspere se increpabat ut etiam fleret. Tempore
187quodam (sic recordabatur) se alapis caedere eonata est, quod
188pila ludens nullo alio competitore contra se ipsam fallaciter
189egisset. Nam Aliciam lusus insolitus delectabat, quo duos

また、optimeの出力結果が

検索語:optime
----------------------------------------
SGTest用.txt(185):
” Plerumque quidem se
 optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1>

となっていて、2行目冒頭に余計なスペースが入っています。(実害は全くありませ
んが。)

同様にquidemだと、

検索語:quidem
----------------------------------------
SGTest用.txt(31):
 
   Non diutius morata, Alicia post eum descendit, ne cogitans
 quidem quo pacto omnino rursus emergeret.<1>

SGTest用.txt(128):
 Sed ne caput
 quidem per januam protrudere poterat.<2>

SGTest用.txt(184):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<3>

となり、出力自体は正確ですが、31行目と128行目の例で分かるように、行頭に検索
語があると、なぜかその前に余計なスペースが入ってしまうようです。
 昨日から今日にかけて特に大変でしたが、お陰様でようやく完成に近づいてきまし
たね。

[ ]
RE:07912 キーワードを含む文をセンテンスNo.07914
白馬の王子様 さん 15/11/22 18:21
 
山紫水明さん、
 β4、無事ダウンロードできました。
 元ファイルの全角スペースを半角に戻し、実験。
 β3で指摘した問題点はもちろんタッチの差で、そのまま残っていますが、それら
の問題点、すなわち、185-6行目の行またぎの単語が検索語になっている場合のセン
テンス出力の問題と、検索語が行頭にある場合、行頭に余計なスペースが入る問題が
解決すれば、もう完成と言ってもいいかもしれません。既に考え得る実験はし尽くし
た感がありますから。
 何か、集中は力なり、って感じですね。



[ ]
RE:07914 キーワードを含む文をセンテンスNo.07915
白馬の王子様 さん 15/11/22 19:54
 
山紫水明さん、
 そろそろ完成に近づいてきたので、解説文のことも考え始めてよいかと思いますが、
一つ、これまで何度も目にした出力例

>検索語:admonebat
----------------------------------------
SGTest用.txt(185):
” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1> β4、無事

のように、センテンスの前に、直前のセンテンスの尾てい骨が付く場合があるが、そ
れは、「.?!」を機械的にセンテンス末と判断しているためであり、誤動作ではない、
と書き添えておいた方がいいでしょうね。実害は全くないのですし、文句を言う人に
は「通常のgrepの出力を思い出して、それと比較してご覧なさい」とアドバイスすす
べきでしょうね。


[ ]
RE:07915 キーワードを含む文をセンテンスNo.07916
白馬の王子様 さん 15/11/22 20:00
 
山紫水明さん、
 少し落ち着いてきたので、スレッドを最初に戻って読み返し始めたのですが、この
マクロ、本格的な開発はちょうど1週間前の日曜日だったのですね。わずか1週間で、
ここまで洗練されたものに成長したとは!
まさに感動ものです。


[ ]
RE:07916 キーワードを含む文をセンテンスNo.07918
山紫水明 さん 15/11/22 21:09
 
 白馬の王子様さん,

 行頭の空白削除したつもりでしたが,残ってしまいました。
 β5をアップしておきました。
 まだ完璧でないかもしれません。

                    山紫水明

[ ]
RE:07918 キーワードを含む文をセンテンスNo.07922
白馬の王子様 さん 15/11/23 08:11
 
山紫水明さん、
 お早うございます。
 早速の対応、ありがとうございます。
 実はすぐにも出かける用事のため、ダウンロードや試用は午後4時過ぎになる見込
みです。悪しからず、ご了承下さい。



[ ]
RE:07918 キーワードを含む文をセンテンスNo.07928
白馬の王子様 さん 15/11/23 17:59
 
山紫水明さん、
 お返事が遅くなり済みませんでした。
 帰宅後、来客があり、β5をダウンロードできたのはつい先刻(午後5時40分頃)に
なってしまいました。
 早速投稿番号07913で指摘した、残っていた問題点をチェックしました。
 見事にいずれも解決していて、正確な出力が得られました。
 本当にありがとうございました!
 本来なら、試用、実験をさらに繰り返して、結果をお知らせすべきなのでしょうが、
外出と接客とが重なり、−−おまけに昨日の集中実験の疲れも残っていて−−今日は、
もうPCをいじる元気がありません。これから少々休みます。(老人は疲れやすく、疲
れが残る、というのは、都市伝説ではありません。)山紫水明さんも、さぞお疲れで
しょう。ひとまずゆっくりとお休み下さい。
 明日以降、少しずつ試用して、何か気づいたらお知らせします。もし投稿がなけれ
ば、「便りの無いのは良い知らせ」とご理解下さい。
 

[ ]
RE:07928 キーワードを含む文をセンテンスNo.07929
白馬の王子様 さん 15/11/23 18:26
 
山紫水明さん、
 xpのPCの電源を落として、「さあ、休憩しよう」と肩の力を抜いたとたん、大事な
ことを思い出しました。
 そこで今度はWindows 7のPCの電源を入れ、今こうして追伸を書いています。
 解説書に、タグ情報行とセンテンス行を分けた出力にした場合でも、投稿番号0787
0でK'zawaさんが作って下さったTagJump(改).macを使えば、センテンスのどこにカー
ソルがあってもタグジャンプが可能なことを書き添えておいた方が、ユーザーに親切
でしょうね。私一人が便利な思いをしているのはもったいないです。
 ただ、TagJump(改).macが秀丸マクロ・ライブラリで公開されていないと一般ユー
ザーはどうしていいか分からなくなりそうですね。その辺は、山紫水明さんとK'zawa
さんとでご相談いただいてユーザーにとってベストな方法をお考えいただくしかない
かな…。


[ ]
RE:07929 キーワードを含む文をセンテンスNo.07930
白馬の王子様 さん 15/11/24 07:37
 
山紫水明さん、
 お早うございます。
 この投稿は、実験結果報告ではなく、可能ならということでの機能追加リクエスト
です。
 同じセンテンス内に複数回検索語が出現する場合でも、そのセンテンスの出力は1
回だけ、というのは、センテンスの内容を重視する私からのリクエストで、現状では
これを叶えていただいています。
 ただ、よく考えると、ユーザーの中にはセンテンス内での、また、文章全体内での、
検索語の出現頻度や出現頻度の傾向を知りたい人がいるかもしれません。
 そこで、検索語が複数回出現するセンテンスに限って、センテンス末に例えば、
[2]というように出現頻度を付加情報として表示してはどうでしょうか?そして、出
力最終センテンス末には、例えば[[43]]というように、出現総数を表示してはいかが
でしょうか?
 最初のプロトタイプからすると、既に相当に長く、複雑になっているマクロですの
で、面倒、ないし無理というのなら、もちろんパスしていただいて構いませんが、昨
夜寝ながら気がついたものですから。

[ ]
RE:07930 キーワードを含む文をセンテンスNo.07933
山紫水明 さん 15/11/24 18:10
 
 白馬の王子様さん,

> そこで、検索語が複数回出現するセンテンスに限って、センテンス末に例え
>ば、[2]というように出現頻度を付加情報として表示してはどうでしょうか?そ
>して、出力最終センテンス末には、例えば[[43]]というように、出現総数を表
>示してはいかがでしょうか?

 センテンス末につけるのは簡単ではなさそうですし,つけたとしても連番の番
号と重複して少し雑然として混乱しやすくなりそうですのでやめておきます。
 総数は表示することにします。

 タグジャンプのマクロについては,実は私の方でも K'zawa さんのお作りにな
ったものと少し違ったものを考えていましたので,それをあわせてアップするか
もしれません。

 β6をアップしておきます。

                    山紫水明

[ ]
RE:07933 キーワードを含む文をセンテンスNo.07934
白馬の王子様 さん 15/11/24 19:05
 
山紫水明さん、
 お返事、ありがとうございました。

> センテンス末につけるのは簡単ではなさそうですし,つけたとしても連番の番
>号と重複して少し雑然として混乱しやすくなりそうですのでやめておきます。
 了解しました。

> 総数は表示することにします。
 それはいいですね。センテンス総数とその語数が一致しなければ、どこかのセンテ
ンスに検索語が複数出現しているということが分かりますしね。

> タグジャンプのマクロについては,実は私の方でも K'zawa さんのお作りにな
>ったものと少し違ったものを考えていましたので,それをあわせてアップするか
>もしれません。
 それなら、他のユーザーに親切ですね。

> β6をアップしておきます。
 これからダウンロードに出かけます。ありがとうございました。


[ ]
RE:07933 キーワードを含む文をセンテンスNo.07935
白馬の王子様 さん 15/11/24 19:21
 
山紫水明さん、
 β6、試用してみました。
 オプションがメニュー形式になって、非常に使いやすくなりましたね。ただ、各項
目の変更の仕方が最初分からず、戸惑いました。メニューの先頭に、「各項目で左ク
リックすると、設定が変更できます。」と表示されると、親切でしょう。
 さて、設定完了して、さあ、使おうと思ったら、「設定を変更しない」で、既に設
定済みのオプションで行こうとしても、マクロ本体が動いてくれません。「設定を変
更する」とすると、またさっきのメニュー画面に。
 無間地獄から抜け出せないような…?


[ ]
RE:07935 キーワードを含む文をセンテンスNo.07936
白馬の王子様 さん 15/11/24 19:26
 
山紫水明さん、
 あ、脚注マクロのときと同じように、ファイル先頭で起動すればよかったのですね。
マクロの中身を覗いて、はじめて気づきました。


[ ]
RE:07936 キーワードを含む文をセンテンスNo.07937
白馬の王子様 さん 15/11/24 19:28
 
山紫水明さん、
 じゃなくて、先頭以外で起動すればよかったんだ。


[ ]
RE:07937 キーワードを含む文をセンテンスNo.07938
白馬の王子様 さん 15/11/24 20:35
 
山紫水明さん、
 検索語総数とセンテンス総数が最後に並んで表示されるの、とてもいいですね。同
じセンテンスに検索語が複数回出現する例もやってみましたが、きれいに正しくカウ
ントされていました。


[ ]
RE:07938 キーワードを含む文をセンテンスNo.07939
山紫水明 さん 15/11/24 22:21
 
 白馬の王子様さん,

 ライブラリにアップするときには当然説明書をつけますから,無間地獄を味わ
う人は多分他にはいないでしょう。
 説明書を書くのが実はやっかいな仕事です。

                    山紫水明

[ ]
RE:07939 キーワードを含む文をセンテンスNo.07940
白馬の王子様 さん 15/11/25 08:10
 
山紫水明さん、
 お早うございます。
 説明書も大切ですが、可能な限りではあっても、説明書を丁寧に読まなかったり、
私のように早合点するユーザーのことも考えて、メニューやメッセージでアドバイス
するようにした方が親切だと思います。
 例えば、今回の例では、私はファイルを開いた直後(つまり、カーソルがファイル
冒頭にある時点)で、マクロを起動したため、

設定の変更をしますか?
はい いいえ

のメッセージが出てしまいました。ここで、

「いいえ」で、マクロの実行を続たい場合、カーソルをファイルの冒頭以外の場所に
移動してから、マクロを再起動して下さい。

といった感じのヘルプメッセージを併記して上げてはいかがでしょうか?


[ ]
RE:07940 キーワードを含む文をセンテンスNo.07941
白馬の王子様 さん 15/11/25 08:15
 
メッセージは、
>「いいえ」で、マクロの実行を続たい場合、カーソルをファイルの冒頭以外の場所
>に移動してから、マクロを再起動して下さい。

よりも、

「いいえ(N)」を選ぶと、このメッセージが消えるので、このマクロの実行を続けた
い場合は、カーソルをこのファイルの冒頭以外の場所に移動してから、このマクロを
再起動して下さい。 

の方が分かりやすいけど…ちょっとくどいかなぁ。


[ ]
RE:07941 キーワードを含む文をセンテンスNo.07942
白馬の王子様 さん 15/11/25 09:45
 
というより、「いいえ(N)」を選ぶと、検索語入力画面に進む、という風にマクロの
流れが変われば、最高なんですがね。


[ ]
RE:07942 キーワードを含む文をセンテンスNo.07943
山紫水明 さん 15/11/25 17:36
 
 白馬の王子様さん,

 設定の変更はファイルトップではなく,再末尾にカーソルを置くように変えて
みました。この方が誤起動が少なくなるのではないかと考えました。
 改行を残す場合の第1行の始まり位置を変えてみました。

 β7をアップしておきます。試して見てください。

                    山紫水明

[ ]
RE:07943 キーワードを含む文をセンテンスNo.07944
白馬の王子様 さん 15/11/25 21:10
 
山紫水明さん、
 β7のアップ、ありがとうございました。
 今日は午後外出していまして、お返事がこんなに遅くなり失礼しました。
 早速、試用しました。
 いいですねぇ!
 
> 設定の変更はファイルトップではなく,再末尾にカーソルを置くように変えて
>みました。この方が誤起動が少なくなるのではないかと考えました。
 こういう改良の仕方があったのですね。思いもよりませんでした。
考えてみれば、ファイルをオープンして、最初にカーソルをファイル末に飛ばす人、
って、まずいないでしょうからね、ま、前回書き終えた続きをすぐ書き始めるとして
も、直前をまず読んでから…でしょうし。
 この改良版なら、ファイルをオープンして、すぐにマクロを使い始められます。気
持ちいいです。

> 改行を残す場合の第1行の始まり位置を変えてみました。
 これもいいですね。特にいいと思ったのは、直前のセンテンスの尾てい骨が残って
いる場合、それが目障りでなくなることです。下の例では、

検索語:nam
----------------------------
SGTest用.txt(10):
                                                             ”
   Itaque cogitabat (nempe ut lucidissime poterat, nam tem-
pestate calida torpebat semisomna) num operae pretium
esset surgere et flosculos carpere, modo ut sertum nectendo
se delectaret, cum subito Cuniculus Albus oculis rubeis prope
eam praeteriit.<1>

たまたま直前のセンテンスの末尾が行末に当たっていて、しかもそこが引用文の最後
であるため、尾てい骨として「”」が残っているのですが、それが当該センテンスの
先頭になくなって表示されています。もちろん、

検索語:optime
----------------------------
SGTest用.txt(185):
                                         ” Plerumque quidem se
optime admonebat (raro tamen ipsa monitis utebatur): ali-
quando tam aspere se increpabat ut etiam fleret.<1>

のように、直前のセンテンスの引用符が行の途中にあるときは、そううまくはいきま
せんが、最初の例のように行末に引用符が来ることは多いので見やすくなりました。

 明日午前中も外出するので、試用の続きは午後になります。悪しからずご了承くだ
さい。


[ ]
RE:07944 キーワードを含む文をセンテンスNo.07945
白馬の王子様 さん 15/11/25 21:22
 
山紫水明さん、
 ファイル末尾にカーソルを飛ばしての実験もしました。
 これもいいですね。設定変更をするかどうかの質問にいいえで答えると、そのまま
検索語入力ウィンドーに進んでくれますね。素晴らしいです。
 ところで、そこの項目の9番目で区切り記号が入力出来るようになったことも素晴
らしいですが、ここで、二文字一組は無理でしょうね。つまり、「."」を一組とすれ
ば、引用文が最後の"まで含めて出力されるし、尾てい骨がセンテンス冒頭にくっつ
いて出力されることもなくなりそうですが。もちろん、小説の中の台詞のように複数
のセンテンスが引用符に含まれている場合は、引用符内の最初のセンテンスと最後の
センテンスは片方の"しか付かないことになりますが。



[ ]
RE:07945 キーワードを含む文をセンテンスNo.07946
山紫水明 さん 15/11/25 22:29
 
 白馬の王子様さん,

>、ここで、二文字一組は無理でしょうね。つまり、「."」を一組とすれば、引
>用文が最後の"まで含めて出力されるし、尾てい骨がセンテンス冒頭にくっつい
>て出力されることもなくなりそうですが。

 一度「."」の2文字を区切り文字にして,どういう結果になるかお試しになっ
たらいかがでしょう。

                  山紫水明

[ ]
RE:07943 キーワードを含む文をセンテンスNo.07947
colder さん 15/11/25 23:12
 
colderです

単なる感想ですが、これ、あいまい検索をオンにすると正規表現もオンになるんです
ね。
以前使われていたjre32.dllのあいまい検索には、正規表現もオンにしないと動作し
ないという制限がありました。
山紫水明さんは古くからのユーザーなので、jre32.dllを利用する場合のことも考え
ての措置かもしれませんが、jre32.dllのあいまい検索だと改行を無視した検索は出
来ないし、あまり意味がないような気がします。

[ ]
RE:07946 キーワードを含む文をセンテンスNo.07948
白馬の王子様 さん 15/11/26 09:36
 
山紫水明さん、
 お早うございます。
 今日は午前中外出しなければならない予定だったのですが、急遽取りやめに。明日
に延期になりました。
 ということで、SentenceGrep.macを試すことができました。
 とりあえず、区切り文字を、

.”!”?”。!?

としてみたら…。
 見事に直前のセンテンスの尾てい骨が消えてすっきり!!
 実害はなかったものの、ちょっと煩い感じだったので、これはいいですよ。
 同じように日本語の方も」を加えればよさそうですね。


[ ]
RE:07943 キーワードを含む文をセンテンスNo.07949
白馬の王子様 さん 15/11/26 09:45
 
山紫水明さん、
 昨晩は、尾てい骨に気を取られ、

> 改行を残す場合の第1行の始まり位置を変えてみました。

の真意が分からないままでしたが、試行を繰り返す内に、原文内での当該センテンス
の開始位置を再現してくれていることに気づきました。
 これ、いいですね。特に原文の1行が長い場合、センテンスの開始位置を楽に正確
に見極められるので、これは使える機能です。こういうほんの僅かな、けれども、実
用上大変便利な配慮、嬉しいですね。
 本当にもう通常のGrepには戻れないです。


[ ]
RE:07947 キーワードを含む文をセンテンスNo.07951
山紫水明 さん 15/11/26 19:46
 
 colderさん,

>山紫水明さんは古くからのユーザーなので、jre32.dllを利用する場合のことも
>考えての措置かもしれませんが、jre32.dllのあいまい検索だと改行を無視した
>検索は出来ないし、あまり意味がないような気がします。

 ありがとうございます。
 古くからのユーザーなのは確かですが,頭も古いままでした。
 ご指摘の点,修正します。

                    山紫水明

[ ]
RE:07949 キーワードを含む文をセンテンスNo.07955
山紫水明 さん 15/11/28 17:49
 
 白馬の王子様さん,

 若干修正したものをアップしました。
 連番の飾りのカスタマイズ
 カタカナ語,漢字熟語の単語検索
がおもなものです。

> とりあえず、区切り文字を、
>.”!”?”。!?
>としてみたら…。

 この場合は,「”」をどこかに1個書けばいいです。この中の複数個が続いて
いたら,順序に関わりなく連続したものとして扱います。

                    山紫水明

[ ]
RE:07955 キーワードを含む文をセンテンスNo.07956
白馬の王子様 さん 15/11/28 20:20
 
山紫水明さん、
 今晩は。

> 若干修正したものをアップしました。
> 連番の飾りのカスタマイズ
> カタカナ語,漢字熟語の単語検索
>がおもなものです。
 まだ進化し続けているんですか!?
 日本語のテストはほとんどやっていなかったので、まず適当なテスト用文書ファイ
ルを見つけるところからやってみます。ただ、明日、明後日と、外出、接客が立て込
んでいて、じっくりPCに向かう暇がなさそうですが、できるだけ合間を見つけてやっ
てみます。実験結果や感想がすぐに投稿できそうにないので、申し訳ございません。

>> とりあえず、区切り文字を、
>>.”!”?”。!?
>>としてみたら…。
>
> この場合は,「”」をどこかに1個書けばいいです。この中の複数個が続いて
>いたら,順序に関わりなく連続したものとして扱います。
 あ、そうだったんですか。となると、区切り文字の入力欄がすっきりしますね。
 ご教示、ありがとうございました。


[ ]
RE:07956 キーワードを含む文をセンテンスNo.07957
山紫水明 さん 15/11/28 22:36
 
 白馬の王子様さん,

> 日本語のテストはほとんどやっていなかったので、まず適当なテスト用文書
>ファイルを見つけるところからやってみます。

 日本語についてはあまり必要とされないようですの,あえてテストはしていた
だかなくても結構です。
 これまでの欧文のテストで問題なければ,コメントはしていたかなくてかまい
ません。
                    山紫水明

[ ]
RE:07957 キーワードを含む文をセンテンスNo.07958
白馬の王子様 さん 15/11/29 13:49
 
山紫水明さん、
 私の負担軽減を考えてくださっての、
> 日本語についてはあまり必要とされないようですの,あえてテストはしていた
>だかなくても結構です。
とのご配慮、心より感謝いたします。(一瞬、「今日は敬老の日だったっけ?」とカ
レンダーに目をやりました(笑))
 このマクロに限らず、複数の素晴らしいマクロを作っていただいたのですから、せ
めてものご恩返しに、できる限りのことはさせていただきます。何と言っても、こん
な便利なマクロ、私だけが使わせていただいたのではもったいないですから。

 さて、Web上に「吾輩は猫である」のテキストがあったので、その第1話という部分
を実験用として少しやってみました。このテキストファイルは、印刷本をOCRで読み
取って、ページ上のフォーマット(改行)をそのまま維持するというのでない形式で
したが、ともかくやってみました。通常は大変順調にいくのですが、「名前」という
検索語で試行したところ、以下のようになりました。

検索語:名前(単語)
----------------------------
吾輩は猫である_第1話.txt(12):
                                                         名前はまだ無い。<1>

吾輩は猫である_第1話.txt(18):
いかに珍重されなかったかは、今日(こんにち)に至るまで名前さえつけてくれない
のでも分る。<2>

吾輩は猫である_第1話.txt(32):
                                                              名前はまだない」
となるべく平気を装(よそお)って冷然と答えた。<3>

吾輩は猫である_第1話.txt(122):
名前はまだつけてくれないが、欲をいっても際限がないから生涯(しょうがい)この
教師の家(うち)で無名の猫で終るつもりだ。<4>

----------------------------
検索語出現総数:1
出現センテンス数:4

ご覧のように検索語出現総数が「1」となっています。よく見たところ、どうやらセ
ンテンス冒頭に検索語があるとカウントされていないようです。

[ ]
RE:07958 キーワードを含む文をセンテンスNo.07963
山紫水明 さん 15/11/29 20:49
 
 白馬の王子様さん,

>ご覧のように検索語出現総数が「1」となっています。よく見たところ、どうや
>らセンテンス冒頭に検索語があるとカウントされていないようです。

 テストありがとうございます。
 昨日アップ後,自分で試していて,どうもそうではないかと疑っていましたが,
やはりそうでしたか。

                    山紫水明

[ ]
RE:07963 キーワードを含む文をセンテンスNo.07964
白馬の王子様 さん 15/11/29 20:59
 
山紫水明さん、
 お返事、ありがとうございました。
 お役に立てたようで嬉しいです。
 欧文では、センテンス冒頭語もちゃんとカウントされているようですね。

[ ]
RE:07964 キーワードを含む文をセンテンスNo.07982
山紫水明 さん 15/12/01 20:44
 
 白馬の王子様さん,

 修正版アップしておきました。

                    山紫水明

[ ]
RE:07982 キーワードを含む文をセンテンスNo.07983
白馬の王子様 さん 15/12/01 21:30
 
山紫水明さん、
 今晩は。
 修正版、ありがとうございました。
 センテンス冒頭の検索語でも正しくカウントされていることを、「名前」だけでな
く「吾輩」でも確認できました。


[ ]
RE:07983 キーワードを含む文をセンテンスNo.07984
山紫水明 さん 15/12/01 22:24
 
 白馬の王子様さん,

> センテンス冒頭の検索語でも正しくカウントされていることを、「名前」だ
>けでなく「吾輩」でも確認できました。

 確認ありがとうございます。
 そろそろライブラリにアップすることにしたいと思います。

                    山紫水明

[ ]
RE:07984 キーワードを含む文をセンテンスNo.07987
白馬の王子様 さん 15/12/02 20:39
 
山紫水明さん、

> そろそろライブラリにアップすることにしたいと思います。
 おめでとうございます!!
 私まで嬉しく思います。
 面倒な注文に真摯に取り組んで下さった結果ですね。きっと多くのユーザーに便利
に使ってもられるようになることと思います。
 解説文も親切に、丁寧に、を心がけて下さいね。


[ ]