あいまい検索で「/」を無視すると同一視定No.28174
rosegardenyk さん 10/05/03 14:08
 
いつもご教示いただきお世話になっている rosegarden です。
以下の件すでに報告されているかもしれませんが一応お知らせしておきます。簡単に
再現テストできます。

検索ダイアグラムから
あいまい検索の設定で「特定文字を無視する」にチェックをいれ、当初「.」をリス
トに入れました。
一方でカスタム1にもチェックを入れ「あいまい検索同一視.txt」をhidemalファイ
ルに新規作成して、
kg kilogram
dL deciliter
など登録したところ、問題なく同一視され検索・置換されていました。ところが、上
記の「特定文字を無視する」リストにスラッシュ「/」を加えたところ、このユー
ザー定義の「あいまい検索同一視.txt」の定義が無視されるようになりました。
最初は何が原因なのかわからず再起動をかけるなどしましたが、結果は同じで、
「/」を取り消してやっともとのように「kg」と「kilogram」を同一視してくれるよ
うになりました。他にも問題を起こす特定文字があるかもしれませんが調べていませ
ん。取り急ぎご報告まで。
すでに報告上がっていたらごめんなさい。

[ ]
RE:28174 あいまい検索で「/」を無視するNo.28184
秀まるお2 さん 10/05/06 13:14
 
 とりあえず、こちらで超簡単な例として、

 1.「特定文字を無視する」をONにして、文字に「./」を指定する、
 2.「カスタム1」をONにして、それのファイル内容として、

            kg  kilogram
            dL  deciliter

   のような2行だけの内容を指定する。
 3.あいまい検索のその他のオプションはすべてOFFにする。


 としてテストしました。それでテストした限りでは、「kg」で検索して
「kilogram」にヒットはするようでした。

 何かもっと具体的な設定内容を教えていただけると再現できるんじゃないかと
思いますけど、どうでしょ?

 「半角/全角を区別しない」〜空白/タブ文字を無視する」までも全部ONにして
テストしても大丈夫でしたけども…。

 検索の時の「正規表現」や「大文字/小文字の区別」、「単語の検索」などを
ON/OFFするテストもしてみましたが、それでも特にヒットしなくなる現象は出な
いようでした。

[ ]
RE:28174 あいまい検索で「/」を無視するNo.28186
Iranoan さん 10/05/06 15:31
 
 rosegardenyk さん今日は、一ユーザの Iranoan です。
> 上
> 記の「特定文字を無視する」リストにスラッシュ「/」を加えたところ、このユー
> ザー定義の「あいまい検索同一視.txt」の定義が無視されるようになりました。
 秀まるおさんから回答が既に付いていますが、単なる確認としてですが、
「//」(連続したスラッシュ) ではないですよね。これだと、移行がコメント
になるので。

[ ]
RE:28186 あいまい検索で「/」を無視するNo.28189
rosegardenyk さん 10/05/06 20:36
 

Iranoanさん
>「//」(連続したスラッシュ) ではないですよね。
設定ONは
V特定文字を無視するに「/」のみ
Vカスタム1
vHmJre.dll固有のヒープ領域を使う
他は全てOFF

今回わかりやすくしようと思い次の短い同一視ファイルを作成し
Ctrl+F
v大文字小文字の区別
v単語の検索
v正規表現検索
vあいまい検索
でテストしたところ秀丸さんのテストしたとおり全てうまくいってしまいました。
短いファイル
QOL qualityoflife quality-of-life QOL
HbA1c hemoglobin
40 forty 40s 40th fortyth 40
50 fifty fiftyth 50s 50th 50
10 ten tenth October 10  
9 nine nineth September 9
RA renin-angiotensin
kg kilogram kg
dL deciliter dL
mL milliliter
m2 squaremeter
mm3 cubicmeter
mm millimeter

カスタム1を下記の長い「同一視ファイル」にかえたところ
設定はおなじままで問題を再現できました。
× から数字群とRAまでは問題ありません。
per以下は自身以外ヒットしません。
すいません取り急ぎ再現できるようお知らせまで。

他にも、あいまい検索はmacroで searchdown2 ,fuzzy で使っています。いままでう
まくいっていたのが例えば 40で自身40にヒットしていたのに突然ヒットしなくなっ
たので(40以外のfortyなどにはヒット)、調べまくっているうちに設定は変えないの
にちゃんと40にもヒットするようになりました。
このいままでうまくいっていたのが急にヒットしなくなって、調べているうちに設定
おなじままでうまくいくというのは何回も経験しています。


長い「同一視ファイル」
× x
100,000 10万
11 eleven eleventh November
12 twelve twelfth December
13 thirteen thirteenth
14 fourteen fourteenth
15 fifteen  fifteenth
16 sixteen  sixteenth
17 seventeen seventeenth
18 eighteen eighteenth
19 nineteen nineteenth
20 twenty 20s twentyth 20th
21 twenty-one twentyfirst 21st
23 twenty-three twentythird
30 thirty 30s 30th thirtyth
40 forty 40s 40th fortyth   40
50 fifty fiftyth 50s 50th
51 Fifty-one
60 sixty sixtyth 60s 60th
70 seventy seventyth 70s 70th
80 eighty eightyth 80s 80th
90 ninety 90s 90th
0 no zero none
10 ten tenth  October  
1 one once first January single aday
2 two twice second February
3 three third triple March
4 four forth  April
5 five fifth  May
6 six sixth  June
7 seven seventh  July
8 eight eighth  August
9 nine nineth  September
RA renin-angiotensin
per /
kg kilogram
dL deciliter
mL milliliter
m2 square
mm3 cubic
mm millimeter
km2 square
percent %
L liter
μmol micromole
μL microliter
CT CTC
PEG-IFN peginterferon
HbA1c hemoglobin
IL interleukin
CKD chronickidneydisease
QOL qualityoflife quality-of-life


[ ]
RE:28189 あいまい検索で「/」を無視するNo.28190
秀まるお2 さん 10/05/06 21:43
 
 テストしてみたら再現できました。

 カスタム同一視ファイルの中に

 「per /」

 があるとダメなようです。

 っと詳しく調べてまたお返事させていただきます。

[ ]
RE:28190 あいまい検索で「/」を無視するNo.28193
秀まるお2 さん 10/05/06 23:01
 
 ソースコードをトレースして、たしかにバグが確認出来ました。&、とりあえ
ずの修正も出来ました。

 カスタム指定用のあいまい検索変換テーブルの中を「特定の文字を無視する」
の法則に従ってさらに変換する処理があるんですが、その処理の中で、「/」を
削除するような処理か実行されまして、それの結果、そこの位置が変換テーブル
の終端であるかのような形に書き換わってしまってしまってました。

 それで、それより後ろにある部分の同一視指定文字列がすべて無視されてしま
う、という動作になってしまってました。結果、「per /」と指定した所よりも
後ろの方の同一視指定文字列がすべて無視されるような動作となってしまってま
した。

 ということで、これはこれでバグということで修正させていただきまして、明
日もう一度ソースコード見直し&テストをして修正完了とさせていただきます。

 修正版の公開は、秀丸エディタ/秀丸メールの次のβ版にて、という形にさせ
ていただきます。それまでは、とりあえず「per /」の指定を外していただくか、
または「特定文字を無視する」の中から「/」を外していただくか、どっちかし
て対処療法していただくしか無いです。

 ということで長らくお手数かけましたが、そういうことでお願いします。

[ ]
RE:28190 あいまい検索で「/」を無視するNo.28194
rosegardenyk さん 10/05/06 23:27
 
秀まるお2さん、丁寧に調べてくださってありがとうございます。
> もっと詳しく調べてまたお返事させていただきます。
ほかにも 「10」で始まる行を「1」で始まる行の前にしないとうまくいきません。
10 ten tenth  October  
1 one once first January single aday

mm3 cubic
mm millimeter
はOKだけど
mm millimeter
mm3 cubic
は「mm3」で「cubic」にヒットしなくなるとかの現象があります。



お願い:あいまい検索ヘルプで

「書き方
 同一視指定ファイルには、1行内に、同一視指定したい単語を複数、空白(半角に
限る)またはタブ文字で区切って指定します。例えば、「〜」と「−」を同一視させ
たい場合は、1行の中に、「〜」と「−」の文字をタブ文字または空白で区切って指
定すればいいです。
 区切り用のタブ文字または空白の個数は何個でもかまいません。」
とあり、落ち着いて読めば
1 one once first January single aday
のように一行に複数の同一視する単語を並べることができると書いてありこれはこれ
でちゃんとした正確な記述ですが、例示が「〜」と「−」の一対のみで、この一対が
2語からなり、あわてて読むと、2語も複数なので、最初のうちは一行一対のみ登録
可能なのかと勘違いしてました。サンプル見てやっと理解しました。できれば例示を
ほんの少し判りやすくしてくださるようお願いします。

よいこともあります。
v空白/タブ文字を無視する をONに設定しておくと、
1 aday   one once first January single
QOL qualityoflife

検索文字「1」で「a day」(同一視登録は「aday」)
検索文字「QOL」で「quality of life」
という空白まじりの熟語にもヒットしてくれてとても便利です。

これは、便利な使い方の例示としヘルプに書いておくと、特に英文の検索をする人に
はとてもよいガイドになります。英語の熟語は語間に半角の空白が入ってしまい「as
 well as}のような 英熟語を日本語用語の「同様に」と同一視して検索するのは無理
かと思っていましたが「aswellas」と登録しておけば可能ですよね。 また上の例の
ように和文に 「1 日に」、「1 回」、「1 回目」、「1 月」 とか  あると 「1」を
抜き出して、英文に「a day」「ad ay」「ada y」の熟語がないか検索してくれます。
ユーザによっては、標準の使い方と勘違いしてしまうという副作用もあるかも知れな
いので検討の上よろしければ「ヒント」として例示することをご検討してくださると
うれしいです。

もっとも本格的対応として「区切り文字」はタブに限定して、空白を含む熟語の登録
を可能してくれることを検討していただければ、さらに、さらに、うれしい限りです。


「正規表現+あいまい検索」は日⇒英対訳検索の決め手と見つけたりと思っているの
で、前メールで記しように例え大きなファイルを扱っていても、先ほどまでヒットし
てしたものが再起動後突然ヒットしなくなったり、設定が同じままででまたヒットす
るようになったりといったふらつき(突然起こるので再現データの提示が困難)の改善
とか、熟語の登録とかあと一歩の改善があると、涙が出るほどうれしいです。

日英同時検索と格闘しているrosegardenより

[ ]
RE:28194 あいまい検索で「/」を無視するNo.28195
Iranoan さん 10/05/06 23:47
 
 rosegardenyk さん今日は、Iranoan です。
 先の投稿は、的外れですいませんでした。

> もっとも本格的対応として「区切り文字」はタブに限定して、空白を含む熟語の登録
> を可能してくれることを検討していただければ、さらに、さらに、うれしい限りで
>す。
 互換性もあるので難しいかもしれませんが、このようなオプションがあると
便利ですね。仰る通り、現在の仕様では、英熟語の同一視は出来ませんからね。

[ ]
RE:28193 あいまい検索の問題点と若干の要No.28196
rosegardenyk さん 10/05/06 23:55
 
> ソースコードをトレースして、たしかにバグが確認出来ました。&、とりあえ
>ずの修正も出来ました。
ひとつ前の秀まるお2さんのメールに返事をかいているうちに、もう対応していただ
いて、感謝します。
この前の「/* の後ろがないケースのバグ」対応も今回も素早い反応に驚き感謝の限
りです。当座の当方の対応は「/」登録抜きで問題ありません。
前メールへの返事に若干の要望も書いておきましたのでよろしくご検討ください。


[ ]
RE:28196 あいまい検索の問題点と若干の要No.28197
rosegardenyk さん 10/05/07 02:27
 
同一視ファイル登録上の問題例がもうひとつ見つかりましたのでお知らせします。
100000 10 ten tenth  October  decade
の登録なら 「100000」で検索し「10」他全てににヒットする。
「tenth」から検索したときだけ「tenth」自身以外どれにもヒットしない。「tent
h」以外からの検索では自身他全てにヒットする。

10 100000 ten tenth  October  decade
の登録だと「10」で検索したときは「100000」他全てににヒットするが「100000」で
検索しても他のどれにもヒットしない。

tenth 100000 10 ten October  decadeの登録の場合は全てが自身他全てにヒットす
る。はじめて同行登録単語が全て同一視されたといえるが、これを成立させるための
内部ルールがさっぱりわからない。

仕様意図は並べ方に関係なく「同行登録単語は全て同一視」のはずですよね。

以上、お知らせまで。

[ ]
RE:28195 あいまい検索で「/」を無視するNo.28198
rosegardenyk さん 10/05/07 04:00
 
>> もっとも本格的対応として「区切り文字」はタブに限定して、空白を含む熟語の登録
>> を可能してくれることを検討していただければ、さらに、さらに、うれしい限り
>です。
> 互換性もあるので難しいかもしれませんが、このようなオプションがあると
>便利ですね。仰る通り、現在の仕様では、英熟語の同一視は出来ませんからね。

また、新たな問題を見つけました。
空白/タブ文字を無視する をONに設定し同一視ファイル登録に次の行を含む場合の例
8 eight August eighth

この同一視ファイル上で「8」を単語・正規・あいまい検索すると「eight」「Augus
t」「eighth」の全てにヒットするのに

現在私が作業中の論理行数 8 万行超の大きなファイルの例文のひとつでは
∫罹患者の多い 8 州で
∬Among patients in eight highly affected states

とあり、macroで「8」の検索で「eight」にヒットしないのです。よくよく調べたら
「空白/タブ文字を無視する」ONのため eighthighlyと読まれ、「eighth」がヒット
するところ「単語検索」 のため、結果「eighth」へのヒットも「eight」へのヒット
もないということのようです。登録から「eighth」を除けば「eight」にヒットします。

これは、もとを質すと英熟語の登録のため 「空白/タブ文字を無視する」をONに設定
したことの副作用といえます。空白抜きの登録も考えれば無理がありますよね。
 こうして副作用がはっきりと見えた以上、空白抜きの英熟語を登録する方法もあり
ますよという「ヒント」としてヘルプに表示したらという私の提案は取り下げます。

やはり、副作用のない「空白を含む英熟語の登録」を可能にすることを改めて要望し
ます。

この場合すでにたくさんの方が「同一視ファイル」をつくられていると思うので配慮
が必要ですね。
容易ではないでしょうけれど、ぜひお願いしたいと思います。

悩めるrosegardenより

[ ]
RE:28197 あいまい検索の問題点と若干の要No.28200
秀まるお2 さん 10/05/07 09:40
 
> 100000 10 ten tenth  October  decade
> の登録なら 「100000」で検索し「10」他全てににヒットする。
> 「tenth」から検索したときだけ「tenth」自身以外どれにもヒットしない。「tent
> h」以外からの検索では自身他全てにヒットする。

 こちらの方も調べてみたら、

   tenth

 という文字列を検索する場合に、それを同一視指定文字列とマッチングして、
「tenth」の最初の3文字の「ten」の部分が同一視指定文字列とマッチすると判
定されて、結果として、

   (10|10000|ten|tenth|october|decade)th

 のように変換されてしまって、それでうまくヒットしなくなってたようでした。

 最長一致でマッチングさせて変換させなとダメということで、そういう風に直
してみます。

[ ]
RE:28194 あいまい検索で「/」を無視するNo.28204
秀まるお2 さん 10/05/07 11:32
 
> mm millimeter
> mm3 cubic
> は「mm3」で「cubic」にヒットしなくなるとかの現象があります。

 「mm3」で検索する場合、それを同一視指定文字列の変換をかける時に、まず
「mm」の部分が先に同一視指定文字列としてヒットして、

 (mm|millimeter)3

 のような正規表現パターンに変換されてしまいます。そうすると、「mm3
cubic」の同一視指定にはマッチしなくなって、結果としてcubicにはヒットしな
い、ということになってしまうようです。

 同一視指定文字列のマッチングの処理が、現状、先頭から順番にマッチする物
を探してヒットしたらそれのつもりで処理する、みたいになってます。それを、
とにかくすべての同一視指定文字列に対してマッチするかどうかチェックして、
マッチする物の中で一番長い文字列に対して処理するような、そういう処理に直
してみます。

 その場合、今度は「mm3」で検索して「millimeter3」にはヒットしなくなりま
すが、それはそれで仕様とするしか無いと思います。

[ ]
RE:28198 あいまい検索で「/」を無視するNo.28205
秀まるお2 さん 10/05/07 11:33
 
> 8 eight August eighth

 これも、eighthという文字列の中の「eight」の部分が先にマッチしてるせい
ということになります。

 次のバージョンでは大丈夫ということでお願いします。

[ ]
RE:28205 あいまい検索で「/」を無視するNo.28206
秀まるお2 さん 10/05/07 11:47
 
 それと、同一視指定文字列の中に空白も指定出来るようにするというのは、他
のあいまい検索オプションの、特に「空白/タブを無視する」との兼ね合いを考
えると難しいんじゃないかと思います。

 今回のバグについてもちょっと予想出来なかった訳ですけども、それと似たよ
うな感じで仕様的に矛盾が起きてしまうような気がします。
 (詳しく検証した訳ではありませんけども)

[ ]
RE:28206 あいまい検索で「/」を無視するNo.28208
rosegardenyk さん 10/05/07 13:43
 
> それと、同一視指定文字列の中に空白も指定出来るようにするというのは、他
>のあいまい検索オプションの、特に「空白/タブを無視する」との兼ね合いを考
>えると難しいんじゃないかと思います。
秀まるおさん、これはまさに私も気にしていたところです。検証するまでもなく
「A.空白/タブを無視する」をONにしてと
「B.同一視指定文字列の中に空白も指定出来るようにする」
というのは矛盾を生じるだろうと思います。

考え方としては、
1)私に限らず、英熟語の登録など「B.同一視指定文字列の中に空白も指定出来るよ
うにする」に対する実務的なニーズがあるということです。少なくとも翻訳を生業
(なりわい)としようとしている人全てが潜在的に望んでいると思います。
2.Bを実現してもらわないと、現行システム下で私が取り下げた「ヒント」のやり
方(「A.空白/タブを無視する」をON)にして「as well as」の熟語にたいし「aswel
las」の登録をする方法を復活させる他ありません。ただし、これだと「as well a
s」はともかく、「今まで」という意味の熟語で「so far」を「sofar」と登録すると
「sofa」+「r」も検索されて「今ままで」のつもりが、長椅子のソファーにもヒット
してしまい実務的な不都合、矛盾が生じます。翻訳者はつらくて泣けるわけです。
3.私の考え方は現行の「A.空白/タブを無視する」のON/OFFをユーザーが自由に選
べるけれど今までどおり「C.同一視指定文字列の中に空白は指定出来ない」を標準
とします。従来ユーザーの既存「同一視ファイル」もそのまま使えるようにするとし
たうえで、どうしても「B.同一視指定文字列の中に空白も指定出来るようにする」
としたいユーザーのためにオプションを追加してその場合は自動的に(「A.空白/タ
ブを無視する」オプションはOFFするというものです。Bを選んだ場合はAはできな
くても実務的に問題なく我慢できるということです。Bのご利益がはるかに大きいの
が英語などを頻繁に検索するユーザの方たちのはずです。

[ ]
RE:28208 あいまい検索で「/」を無視するNo.28209
秀まるお2 さん 10/05/07 14:17
 
 あいまい検索での同一視指定については、以前あったご要望としては、ユニ
コード文字を指定したいというのがありましたけども…。性能を無視していいな
ら対応出来るんですけど、性能を考えるとあんまりやりたくないというのがあっ
て対応してなかったりします。

 いろいろ新機能対応するとそれに比例してバグも出てしまうので、なかなか対
応のタイミングが難しい所です。

 とりあえずV3.16としてはバグ修正だけ対応させていただきまして、それでま
たしばらくユーザー様からのご要望などがたまったタイミングで一気に新機能へ
の対応を考えるというような作戦がいいのではないかと思います。

 (秀丸エディタもそういうサイクルでやってますので)

[ ]
RE:28209 あいまい検索で「/」を無視するNo.28210
colder さん 10/05/07 15:36
 
「foo」と「bar」を同一視指定した場合、内部的に「(foo|bar)」と変換されて、検
索されるという事みたいですが、(〜〜)ではなく(?:〜〜)と変換した方がいいのでは
ないでしょうか?
現在の方式ですと、タグ付き正規表現を使った場合、\1,\2,…で参照される部分が実
際に指定したものとずれが生じます。





[ ]
RE:28210 あいまい検索で「/」を無視するNo.28211
秀まるお2 さん 10/05/07 16:21
 
 たしかに、(...)で囲んでしまうとタグ付き正規表現との相性問題が出てしま
うようでして、教えていただいた通り、「(?:....)」を使えば回避出来そうです。

 ということで、これまたそのように修正させていただきます。

[ ]
RE:28211 あいまい検索で「/」を無視するNo.28213
rosegardenyk さん 10/05/08 14:23
 
> たしかに、(...)で囲んでしまうとタグ付き正規表現との相性問題が出てしま
>うようでして、教えていただいた通り、「(?:....)」を使えば回避出来そうです。
>
> ということで、これまたそのように修正させていただきます。

プログラミング初心者からの質問です。
(?:....)という表記は秀丸マクロではないような気がしますが、秀丸エディタはどの
ような言語でコードしているのでしょうか?



[ ]
RE:28213 あいまい検索で「/」を無視するNo.28214
Iranoan さん 10/05/08 14:36
 
 rosegardenyk さん今日は、Iranoan です。
> (?:....)という表記は秀丸マクロではないような気がします
 これは正規表現の話ですね。
 HmJre.chm に記載があります。

[ ]
RE:28214 あいまい検索で「/」を無視するNo.28215
rosegardenyk さん 10/05/09 01:58
 
> rosegardenyk さん今日は、Iranoan です。
>> (?:....)という表記は秀丸マクロではないような気がします
> これは正規表現の話ですね。
> HmJre.chm に記載があります。
HmJre.chm やっとhidemaruファイルに見つけましたが秀丸でひらいても文字化けして
います。これはこれでいいのですが、(?:....)という正規表現の表記法はPerl5につ
いてインタネット検索したときお目にかかったことがあり、何のことだかよく判らな
いままにしていました。
単純に秀丸はC言語で書かれているのか、JAVAなのか興味をちょっと持っただけです。
 perlじゃないだろうしましてや秀丸マクロじゃないだろうしと、そのへんcolderさ
んは判っていてあのようなアドバイスをされたのだと思ったのです。(?:....)という
表記はどの言語で使う正規表現で、使い方はそしてcolderさんのアドバイスの意味が
さっぱりわからなかったのです。単に初心者向けにだれか教えてくれたらいいなと思
ってます。だだ軽く興味をもっただけなのでお返事してくださらなくてもかまいませ
ん。

ところで話が変わりますが、配列に保存した文字列に正規表現の置換なんてかけられ
ないですよね。 いま、強力な正規表現の置換を使いたくて、ファイルに書き出して
置換後配列に取り込みファイルの該当部分TEXTを削除するという馬鹿なことやってい
ます。例文に100人の100という数字が出てきたら、正規表現の数字一般を表す検索文
(例、[0-9]+)とかにに置き換えて配列に取り込みそれを使って100人の患者でも20人
の患者でも「xxx人の患者」という表現に対しファイル全体に検索をかけたいわけで
す。マクロの文字列関数を使ってこれをやると手間がかかりすぎるのと数字以外のも
っと複雑な置換も処理しているので上記のようにファイルに書き出してまた作業後ま
た消すなんて馬鹿なことしてます。もっとよい方法があったら教えてください。
話がそれました。これもお返事くださらなくて結構です。

自分の力量以上のことをやりすぎているrosegardenより



[ ]
RE:28215 あいまい検索で「/」を無視するNo.28216
h-tom さん 10/05/09 06:22
 

h-tom です。

>HmJre.chm やっとhidemaruファイルに見つけましたが秀丸でひらいても文字化けして
>います。
*.chmは、ヘルプファイルです。
Windowsの関連付けが正常なら、そのまま開けば、見えるはずです。

>単純に秀丸はC言語で書かれているのか、JAVAなのか興味をちょっと持っただけです。
C/C++でしょうね。

>ところで話が変わりますが、配列に保存した文字列に正規表現の置換なんてかけられ
>ないですよね。 いま、強力な正規表現の置換を使いたくて、ファイルに書き出して
マクロの話ですよね?
HmJre.chmの「マクロからのdllfunc呼び出し」にある、ReplaceRegular, ReplaceReg
ular
NoCaseSense関数を使えばできますよ。

[ ]
RE:28215 あいまい検索で「/」を無視するNo.28217
秀まるお2 さん 10/05/09 09:45
 
 秀丸エディタやHmJre.dllは、ほとんどの部分を、いわゆるC++言語で開発して
ます。

 それと、秀丸エディタは今現在は「秀丸担当」という人が作ってまして、僕自
身はHmJre.dllと、あと秀丸メールの方を主にやってます。今回はたまたまHmJre.
dllの話だったので僕の方でお返事させていただきました。

 それとあと、colderさんの話はまったく別のバグについての話なので、今回の
rosegardenykさんの話とは関係無いです。

> ところで話が変わりますが、配列に保存した文字列に正規表現の置換なんてかけられ
> ないですよね。

 HmJre.dllのReplaceRegular関数などを使えば、マクロ変数に対しての置換な
んかは出来ます。

> 上記のようにファイルに書き出してまた作業後ま
> た消すなんて馬鹿なことしてます。

 そういうやり方もアリというか、それなりにいいやり方のような気もします。
配列変数にReplaceRegularをかけるのがいいか、秀丸上で置換コマンドで置換す
るのかいいか、どっちがいいかはケースバイケースになると思います。

[ ]
RE:28217 あいまい検索で「/」を無視するNo.28218
rosegardenyk さん 10/05/09 10:53
 
いつも素早く反応してくれて愚問にも丁寧に答えてくれる Iranoanさん、h-tomさん、
秀まるお2さん、本当にありがとうございます。

秀丸マクロはじめたばかりなので初歩的なことでよくまごつきます。
最初は秀丸の replaceallfast のスピードと正規表現のパワーにはまって replaceal
lfast だけを数百ステップならぺたマクロつくってました。
後でwhileでやればLoopできるのがわかってステップ数はすこし減りましたがreplace
allfast だけで分岐のあるプログラミングに近いことやってました。replaceallfast
 とても速いです。私的にみて巨大な未完成対訳ファイルの処理をこのマクロだと5分
で処理します。 仕事上の目的があって秀丸マクロに手を染めましたが、なかなか大
変です。最初はreplaceallfast だけのマクロで自前の対訳集作ってさっとマクロか
ら手を引こうと思っていたのですが...


今回、あいまい検索の問題点に始まっていろいろお世話になりました。
また、愚問重ねると思いますがよろしくお願いします。


[ ]
RE:28215 あいまい検索で「/」を無視するNo.28219
colder さん 10/05/09 13:33
 
>(?:....)という表記はどの言語で使う正規表現で、使い方はそしてcolderさんのア
>ドバイスの意味がさっぱりわからなかったのです。単に初心者向けにだれか教えて
>くれたらいいなと思ってます。だだ軽く興味をもっただけなのでお返事してくださ
>らなくてもかまいません。


何か誤解させてしまったみたいで申し訳ありません。

私が指摘したかったのは、例えば、正規表現を使った場合で「foo (baz) \1」を検索
したとき、「foo」と「bar」を同一視するようにあいまい検索を設定すると、
ヒットする文字列が「foo baz baz」から「foo baz foo」に変化しますが、これはお
かしいのではないかということです。

[ ]
RE:28209 HmJre.dll V3.16(バグ修正版)のNo.28270
rosegardenyk さん 10/05/14 12:18
 
> とりあえずV3.16としてはバグ修正だけ対応させていただきまして、それでま
>たしばらくユーザー様からのご要望などがたまったタイミングで一気に新機能へ
>の対応を考えるというような作戦がいいのではないかと思います。

秀まるお2さん
HmJre.dll V1.92に基づきバグを指摘させていただきましたが、秀まるおのホーム
ページ>ソフトウェア>HmJre.dll の改定履歴に5月7日V3.16として下記の記述があり
ます。すでに修正版のV3.16使用可能と思って、おなじ画面のダウンロード「最新版
はこちら」をみるとhmjre169.lzh(ソースコード無し)がVer1.69 とありこれをダウ
ンロードしても現在のV1.92より前のVersionに戻ってしまうような気がしてDLせずに
このメールを書きました。

V3.16の正しい入手方法、時期をお知らせください。

改定履歴2010/05/07 V3.16
「あいまい検索で、カスタム同一視指定の中に、1文字だけの文字を指定していて、
さらにその文字を「特定文字を無視する」の中にも指定した場合、カスタム同一視指
定の中でのその文字のある所より後ろの同一視指定文字がすべて無視されてしまうバ
グ修正。
同一視指定の中に文字列的に重なってどっちとも解釈出来るようなケースで、一番長
い文字列の方を優先するようにした。例えば「x」と「エックス」を同一視、「xx」
と「ダブルエックス」を同一視指定するようにしていた場合に、検索文字列に「xx」
を指定した場合には、解釈として「xx/ダブルエックス」に対して同一視指定する方
を優先するようにした」

[ ]
RE:28270 HmJre.dll V3.16(バグ修正版)のNo.28273
秀まるお2 さん 10/05/14 13:15
 
 HmJre.dllのダウンロードページですが、たしかに古いバージョンしか置いて
無くて、まぎらわしいです。

 なので、もうそこの掲載内容は、旧バージョンのソースコードのみということ
にさせていただきます。

 最新版のHmJre.dllは、秀丸エディタ/秀丸メールの最新β版に添付という形
になります。今ちょうど秀丸エディタの最新β版に、V3.17が入っています。そ
れをインストールして欲しいです。

  http://hide.maruo.co.jp/software/hidemaru.html

 の所の「次のバージョンのβ版はこちら」という所からダウンロード出来ます。

[ ]
RE:28273 HmJre.dll V3.17(バグ修正版)にNo.28276
rosegardenyk さん 10/05/15 00:32
 
>  http://hide.maruo.co.jp/software/hidemaru.html
> 所の「次のバージョンのβ版はこちら」という所からダウンロード出来ます。

β版をDLしてテストしました。
同一視ファイル
13 thirteen thirteenth
thirteen thirteenth 13
の登録だとthirteenにヒットしません。thirteenからの検索だと自身以外にヒットし
ます。

13 thirteenth thirteen
thirteen 13 thirteenth
の登録だと全てうまくいきます。

30 thirty thirtyth
の登録だとthirtyにヒットしません。上記とおなじ問題が発生します。

他の数字はすべて、どのように並べても問題がおきません。例えば
14 fourteen fourteenth
の登録でも相互に自身を含めて全てヒットします。

語頭のth- と 語尾の -th が同じだと問題がおきる????
なかなか予想外のことが起きますね。

他は
mm millimeter
mm3 cubic
と並べてもOKです。mm3からcubicにヒットします。

取り急ぎご報告まで。


 

[ ]
RE:28276 HmJre.dll V3.17(バグ修正版)にNo.28278
秀まるお2 さん 10/05/15 11:51
 
 こちらで試した限りは、

  13 thirteenth thirteen

 の場合も、

  thirteen 13 thirteenth

 の場合も、どちらの場合でも「13」、「thirteenth」、「thirteen」の検索で
どれにもうまくヒットしました。

 30 thirty thirtyth

 の場合もうまくいくようです。

 僕がテストしたのは、上記のそれぞれの1行だけをカスタム同一視指定に書い
ただけのテストでしたが、何か他にも同一視指定文字列があるとダメってことで
はないでしょうか。

 それと1つ思ったことですが、同一視指定が複数行に分かれているとうまくい
かないこともあると思います。例えば今試した所だと、「A」、「BBB」、
「CCC」の3つを同一視指定する指定を、

 A BBB
 BBB CCC

 のように指定されると、「A」の検索では「CCC」にはヒットしませんでした。
そういう指定のされ方をするとダメみたいですけど、これは仕様とさせていただ
くしか無いと思います。

[ ]
RE:28278 HmJre.dll V3.17(バグ修正版)にNo.28280
rosegardenyk さん 10/05/15 18:24
 
秀まるお2さん
設定条件を変えて試したところ再現の条件がわかりました。
「空白/タブ文字を無視する」がONなっていると問題がおきます。
OFFにするとこちらでもうまくいきます。

判りやすくするため他に設定しているのは最下段にある「ヒープ領域を使う」をONで
す。あと当然ながら「カスタム1」ONです。

前回報告では他の登録の干渉を避けるため次の1件だけで実施しました。今回は条件
をあわせる意味で下記の3件の登録でテストしてみてください。 13 thirteen thirt
eenth
40 forty fortyth
30 thirty thirtyth

現象を再度説明すると
「空白/タブ文字を無視する」がONなっていると「13」からも「thirteenth」からも
「thirteen」にヒットしない。「thirteen」から検索すると自身にヒットしないで
「13」「thirteenth」にヒットする。
おなじように「30」からも「thirtyth」からも「thirty」にヒットしない。「thirt
y」から検索すると自身にヒットしないで「30」「thirtyth」にヒットする。

また
thirteen 13 thirteenth のように並べ替えるとうまくいく場合がある。

他の数字の登録例では問題がおきない。
「40」「forty」「forty」からは自身を含めて同一行の単語全てににヒットする。⇒
語頭のth-と語尾の-th の一致が関係しているのか?

よろしくお願いします。

[ ]
RE:28280 HmJre.dll V3.17(バグ修正版)にNo.28281
秀まるお2 さん 10/05/15 22:17
 
 テストしてみたんですけど、やっぱりいまいち再現しないです。

 カスタム指定ファイルの内容は、以下の3行だけとします。

13 thirteen thirteenth
40 forty fortyth
30 thirty thirtyth

 で、再現用のマクロとして以下のマクロを作りました。

setcompatiblemode 0x0200;
gofiletop;
beginsel;
gofileend;
delete;
insert "\n13\nthirteen\nthirteenth\n";
gofiletop;
searchdown "13", fuzzy, noregular, nocasesense;
message str(result);
searchdown "13", fuzzy, noregular, nocasesense;
message str(result);
searchdown "13", fuzzy, noregular, nocasesense;
message str(result);

 このマクロを実行すると、"13"という文字列の検索を3回実行するんですが、
3回ともヒットして、メッセージとして「1」というのが3回出ます。

 1回目の検索では"13"にヒットし、2回目では「thrteen」にヒットし、3回
目は「thrteenth」にヒットします。

 ということで合ってるような気がしますけども…。そちらでは上記マクロを実
行しても「0」が表示されるのでしょうか。

 あいまい検索のオプションは、「空白/タブを無視する」と「カスタム1」と
「Hmjre.dll固有のヒープを使う」をONにして、その他はOFFにしました。

 HmJre.dllのバージョンはV3.17ですよねぇ。検索ダイアログにバージョン情報
が出ますけども。

[ ]
RE:28281 HmJre.dll V3.17(バグ修正版)にNo.28282
colder さん 10/05/15 23:54
 
colderです。

単語の検索をONにしたときに、再現しました。

以下に再現用のマクロを書いておきます。

setcompatiblemode 0x0200;
gofiletop;
beginsel;
gofileend;
delete;
insert "\n13 thirteen thirteenth\n";
gofiletop;
searchdown "13", fuzzy, noregular, word, nocasesense;
message str(result);
searchdown "13", fuzzy, noregular, word, nocasesense;
message str(result);
searchdown "13", fuzzy, noregular, word, nocasesense;
message str(result);

//ここまで

ただこれだと、rosegardenykさんがうまくいくといっている同一視ファイルの登録が
13 thirteenth thirteen
の順になっているときも、ヒットしなくなるので外しているかもしれません。

他に以下の場合に検索がうまくいかなくなります。
・\を含んでいる単語を同一視する場合
・検索で、選択"|"を含む正規表現を使用した場合。


[ ]
RE:28282 HmJre.dll V3.17(バグ修正版)にNo.28283
Iranoan さん 10/05/16 00:19
 
 colder さん今日は、一ユーザの Iranoan です。
> 単語の検索をONにしたときに、再現しました。
<snip>
> insert "\n13 thirteen thirteenth\n";
<snip>
> ただこれだと、rosegardenykさんがうまくいくといっている同一視ファイルの登録が
> 13 thirteenth thirteen
 同一視ファイルの仕様の有無に関わらず、「単語の検索」と
> 「空白/タブ文字を無視する」がON
の併用は上手くいきません。上記例ですと、
13thirteenththirteen
と空白を削除した文からの検索と同じ扱いになるので。

 ですから、rosegardenyk さんのご報告は別問題かと。

[ ]
RE:28283 HmJre.dll V3.17(バグ修正版)にNo.28284
colder さん 10/05/16 01:21
 
colderです

> 同一視ファイルの仕様の有無に関わらず、「単語の検索」と
>> 「空白/タブ文字を無視する」がON
>の併用は上手くいきません。上記例ですと、
>13thirteenththirteen
>と空白を削除した文からの検索と同じ扱いになるので。

完全に同じ扱いになるわけでないようです。
そうでないと、thirteenth にはヒットする説明がつきません。

[ ]
RE:28284 HmJre.dll V3.17(バグ修正版)にNo.28285
rosegardenyk さん 10/05/16 09:23
 
>colderです
>
>> 同一視ファイルの仕様の有無に関わらず、「単語の検索」と
>>> 「空白/タブ文字を無視する」がON
>>の併用は上手くいきません。上記例ですと、
>>13thirteenththirteen
>>と空白を削除した文からの検索と同じ扱いになるので。
>
>完全に同じ扱いになるわけでないようです。
>そうでないと、thirteenth にはヒットする説明がつきません。

皆様、いろいろと調べてくださってありがとうございます。
朝、目が覚めて突然原因を思いつきました。
私はテストを同一視ファイルでで行っていました。これを書くべきでした。方法はCt
rl+F の 単語+正規+あいまい検索です。
13 thirteen thirteenth
は「空白/タブ文字を無視する」がONだと「13」で検索すると
対照文字列は検索システムからは

13thirteenthirteenth

13 thirteenthirteenth

13 thirteenth irteenth

ともみえているはずです。
単語検索なので2、3番めにヒットしないのではないでしょうか。

thirteen 13 thirteenth

13 thirteenth thirteen

だとうまくいく理由が説明できます。
説明不足申し訳ありませんでした。同一視ファイルそのものを使ってテストしていた
だければ、簡単に再現できます。

実務的には、「1万3千例」という意味で

thirteen thousand patients

とかの場合、「空白/タブ文字を無視する」がONだと問題がおきるとおもいます。
同一視ファイルに次の登録してテストしたところ 「13」で検索して「thirteen」に
ヒットしません。

13 thirteen thousand thirteenth

実務的に単語検索ははずしたくない場合が多いのです。では実務上どうあればいいの
かについては、すぐには考えがまとりません。
取り急ぎご報告します。


[ ]
RE:28285 HmJre.dll V3.17(バグ修正版)にNo.28286
秀まるお2 さん 10/05/16 10:33
 
 調べてみたら、大変ややこしいことになってました。

 まず、「空白/タブを無視する」として検索するとなると、

    13THIRTEENTHIRTEENTH

 という文字列に対して、

 (13|thirteen|thirteenth)

 という正規表現パターンのマッチングが実行されます。そうすると、ヒットす
る位置としては、

 先頭の「13」
 先頭から2桁目の「THIRTEENTH」
 先頭から10桁目の「THIRTEENTH」

 の3つだけになってしまいまして、

 先頭から2桁目の「THIRTEEN」

 にはヒットしないです。

 先頭から2桁目の「THIRTEENTH」にヒットしたのに対しては、「単語の検索」
という条件にマッチしないがために、ヒットしない扱いにされてしまいます。

 ということで、この場合ヒットしないのは仕方がないというか、現状の仕組み
的にどうしようも解決不可能な問題ということになってしまうような気がします。

 今思いつくアイデアとしては、とりあえず「単語の検索」と、あいまい検索で
のカスタム同一視指定は同時に使えなくするという、安易な解決策(というか、
くさい物にはふたをする的解決策)はありますけども…

 何かいいアイデアあるでしょうか?>誰か詳しい人

[ ]
RE:28286 HmJre.dll V3.17(バグ修正版)にNo.28287
rosegardenyk さん 10/05/16 13:28
 
> 今思いつくアイデアとしては、とりあえず「単語の検索」と、あいまい検索で
>のカスタム同一視指定は同時に使えなくするという、安易な解決策(というか、
>くさい物にはふたをする的解決策)はありますけども…
>
> 何かいいアイデアあるでしょうか?>誰か詳しい人

あいまい検索で「カスタム同一視指定」と「単語の検索」との併用は実務的にはずせ
ませんよね。ここはこの併用が問題というよりは「空白/タブを無視する」ONにする
ことでこういう予想もしなかった問題もおこりうると考えるのがよいと思います。
特に英文検索しているときは「空白/タブを無視する」ONは常に問題含みです。空白
が英単語と英単語の区切り文字であるわけですから稀ではあるけれども何が起こるか
わからないわけです。

日本語で回文ひねるようにして一生懸命考えましたが「thirteen」と「thirteenth」
(語頭=語尾の英単語)のような日本語思いつきませんでした。あるかもしれませんが、
英語よりは稀のような気がします。

「空白/タブを無視する」ONと「「カスタム同一視指定」の併用を禁止すれば防げま
すが、このような稀な例のために併用を禁止するのはおかしい訳です。したがって現
状で゛はシステムは変えずにヘルプに「同一視ファイル」登録上の注意書きとして
「13 thirteen thirteenth」を例示して「空白/タブを無視する」ONと併用の場合は
まれではあるがかくかくの問題が報告されているとか書いておくのもひとつの手だと
思います。

ここからが、私としては本論です。
英文を多く検索する人達にとって「空白/タブを無視する」OFFでもかまわないので
すが、下記(注)の問題が生じます。

解決策としては、かねてから要望しておりますとおり、「空白を含む熟語を同一視フ
ァイルに登録可能とする」オプションとして追加しその場合「空白/タブを無視す
る」は自動的にOFFとなりONではこのオプションは使えないという新機能を開発して
いただくことではないかと我田引水的に考えております。 他にもあるHmJre.dllに対
する新機能開発リクエストのなかでバグ解決がらみ新規開発要望として高めのプライ
オリティをつけていただきたく思います。


(注)
「空白/タブを無視する」OFFで英文検索したときの実務的な問題点
これははすでにもっと前のメールで説明したとおり現状では「quality of life」と
か「so far」などの空白を含む熟語の検索ができなくなるということです。実際、や
むを得ず私は今「空白/タブを無視する」ONにして
同一視ファイルに
QOL qualityoflife
と登録して「QOL」で検索し「quality of life」にヒットさせています。
問題例として、同一視ファイルに
今まで sofar
と登録した場合は、「so far」ではなく「sofa」(ソファー)にヒットすることもある
とこのやりかたの限界も説明しました。







[ ]
RE:28287 HmJre.dll V3.17(バグ修正版)にNo.28288
秀まるお2 さん 10/05/16 22:09
 
 ちょっと慌てて書いたのでなんですが、もっと正確に書くと、

 「単語の検索」
 あいまい検索での「空白/タブを無視する」
 あいまい検索でのカスタム同一視指定

 の3つが全部ONだと、現状問題ありということになります。

 解決策として何かいいアイデアが無いか、もうちょっと考えてみます。

[ ]
RE:28287 HmJre.dll V3.17(バグ修正版)にNo.28289
秀まるお2 さん 10/05/16 22:14
 
 それと、空白を含む単語を同一視指定に指定する方ですが、例えば

 「X Y」と「ZZZ」を同一視指定したとしたら、

 X  Y

 のようにXとYの間に半角空白が2つ入っている場合はヒットしなくてもいいの
でしょうか。

 さらにはXとYの間がタブだったり、XとYの間に改行が入っている場合もヒット
しなくていいのかとか…。

[ ]
RE:28289 HmJre.dll V3.17(バグ修正版)にNo.28290
Iranoan さん 10/05/16 22:58
 
 秀まるおさん、秀丸担当さん今日は、Iranoan です。
>  「X Y」と「ZZZ」を同一視指定したとしたら、
に関しては、rosegardenyk さんが、
> 解決策としては、かねてから要望しておりますとおり、「空白を含む熟語を同一視フ
> ァイルに登録可能とする」                                      ^^^^
の観点から考えると、
>  のようにXとYの間に半角空白が2つ入っている場合はヒットしなくてもいいの
> でしょうか。
は、ヒットしなくても良いと思います。ただ、開発の観点から、そういった例
外が難しければ、ヒットするという仕様でも良いと思います。
>  さらにはXとYの間がタブだったり、
こちらも同様です。しかし、タブの場合は、秀丸エディタ Ver.8.00 では、
TSV 形式の扱いがし易くなっているので、ヒットしない方が使い易いでしょう。
タブがセル (列) の区切りなので。

> XとYの間に改行が入っている場合もヒット
> しなくていいのかとか…。
 こちらは、繰り返しになりますが、元々の主眼が「熟語の同一視」なので、
ヒットしてくれた方が使い易いと思います。
X
 Y
との記述は、最初の複数の空白と同じ扱いよいと思います。

 以下、一部秀丸担当さん宛も含みますが、質問ですが、
13 thirteen thirteenth
に対して、
>  まず、「空白/タブを無視する」として検索するとなると、
>
>     13THIRTEENTHIRTEENTH
>
>  という文字列に対して、
>
>  (13|thirteen|thirteenth)
>
>  という正規表現パターンのマッチングが実行されます。
の条件、流れなら、なぜ
>  先頭から2桁目の「THIRTEEN」
>
>  にはヒットしないです。
>
>  先頭から2桁目の「THIRTEENTH」にヒットしたのに対しては、「単語の検索」
> という条件にマッチしないがために、ヒットしない扱いにされてしまいます。
となるのでしょう? 上記にある通り、単純に「13THIRTEENTHIRTEENTH」に対し
て検索するなら、10 桁目の thirteenth にもヒットしない気がします。「単
語の検索で"abc"を検索する時、"abc123"にはヒットさせない」が ON なら、
先頭もヒットしてはいけない気がします。
 実際、あいまい検索 OFF で同一ファイルも使わず、
     13THIRTEENTHIRTEENTH
に対して、「(13|thirteen|thirteenth)」で正規表現+単語検索すると、どれ
にもヒットしません。「単語の検索で"abc"を検索する時、"abc123"にはヒッ
トさせない」が OFF でも、13 にヒットしないのがなぞですが。

[ ]
RE:28290 HmJre.dll V3.17(バグ修正版)にNo.28291
秀まるお2 さん 10/05/16 23:14
 
 やはりIranoanさんの話を聞いたら、同一視指定ファイルに半角空白を認める
ことは無理だと思いました。

 それと、thrteenにヒットする関係の技術的な理由については、僕もプログラ
ムをデバッガーでトレースしてやっと分かったくらいだし、それで分かった話を
日本語でうまく説明するのは無理な話でした。なので、すみませんがこれ以上の
内部的な説明は省略させていただきます。

 とにかく、なんとかうまく動作するように、根本的な仕組みから考え直してみ
ます。

[ ]
RE:28291 英熟語のあいまい検索を可能にすNo.28293
rosegardenyk さん 10/05/17 01:10
 
> やはりIranoanさんの話を聞いたら、同一視指定ファイルに半角空白を認める
>ことは無理だと思いました。
私も「半角空白を認める」というリクエストは無理だと思い始めました。現状でもこ
んなにややこしい問題がでてきているわけですから「同一視指定ファイルに半角空白
を認める」という表現でのリクエストは引っ込めます。もっとも、熟語の検索を可能
にしたいというのは実務的な要望ですから相変わらず強くもっています。要は「半角
空白」を認めることが話をややこしているわけです。

> とにかく、なんとかうまく動作するように、根本的な仕組みから考え直してみます。

先ずはこちらの方に集中していただいて、ひと段落したら熟語の検索を可能にするに
ついても考えていただくという作戦がよろしいと思います。

その間私も根本的なリクエストの仕方から考え直してみます。

今、頭にあるのは次のような登録方法と追加機能です。
QOL quality-of-life 生活の質
同様に 同じく as-well-as
今までに so-far これまでのところ
現状の登録方法とまったく変わりません。

新機能として辞書検索とか他の検索システムによくある「半角空白とハイフンを同一
視する」ON/OFF オプションを追加してもらうことになります。ONにすれば結果とし
て英熟語の検索もできるという仕組みです。
はたしてこれは可能でしょうか? どんな問題が考えられますでしょうか?

「半角空白とハイフンを同一視する」ON/OFF オプションはごく一般的な機能ですの
であいまい検索のオプションに入っていないのが不思議なくらいです。英熟語の検索
うんぬんとは関係なく標準装備してほしいオプションですよね。

考えを練りこんでいないので、 Iranoanさん、colderさん、h-tomさん他このオプシ
ョンに関心の皆さんのコメント歓迎です。


[ ]
RE:28291 HmJre.dll V3.17(バグ修正版)にNo.28299
Iranoan さん 10/05/17 23:14
 
 秀まるおさん今日は、一ユーザの Iranoan です。
> 日本語でうまく説明するのは無理な話でした。なので、すみませんがこれ以上の
> 内部的な説明は省略させていただきます。
 解りました。

[ ]
RE:28293 英熟語のあいまい検索を可能にすNo.28304
秀まるお2 さん 10/05/18 11:25
 
 HmJre.dllの修正だけではちょっと対処出来ませんでした。それで、次の秀丸
エディタの方で、今回のための特別な修正を入れてもらうことにしました。

 HmJre.dllのバージョンとしては、V3.18になりますが、それと、次の秀丸エデ
ィタV8.01β6以降を組み合わせて使うとうまくいくようになる、ということでお
願いします。

[ ]
RE:28304 英熟語のあいまい検索を可能にすNo.28315
rosegardenyk さん 10/05/21 01:51
 
> HmJre.dllのバージョンとしては、V3.18になりますが、それと、次の秀丸エデ
>ィタV8.01β6以降を組み合わせて使うとうまくいくようになる、ということでお
>願いします。


V8.01βDLしてそれについてきたHmJre.dllのV3.18をテストしました。 OKです。
8 eight eighth
13 thirteen thirteenth
30 thirty thirtyth
の登録で同一視ファイルそのもの使ってテストしたところOKです。

また、13の検索で
thirteen thousand
の「thirteen」にヒットします。

8 州 の 「8」で検索し
eight highly affected states
が空白無視で「eighth ighly」と読めてもちゃんと「eight」にヒットします。

どちらもうまくいきました。
長いことお疲れ様でした。いつもながら素早い対応には頭が下がります。


一息つきましたら、ひとつ前のメールで提案した、新機能「空白とハイフン同一視」
ON/OFFオプションについても考えてみてください。

「同様に as-well-as」
と空白のない形で同一視ファイルに登録し、 「空白とハイフン同一視」ONにすると
「同様に」と「as well as」を同一視ヒットさせるという案は無理でしょうか?  

改行をはさんでヒットさせる必要は特にないです。通常の空白なし単語とおなじ扱い
にしていただければOKです。

 








 

[ ]
RE:28315 英熟語のあいまい検索を可能にすNo.28316
秀まるお2 さん 10/05/21 08:43
 
> 一息つきましたら、ひとつ前のメールで提案した、新機能「空白とハイフン同一視」
> ON/OFFオプションについても考えてみてください。

 すみません。そういう話があったことは完全に見逃してました。

 今ちょっと試した限りはですが、あいまい検索のオプションで、「空白/タブ
を無視する」と「特定文字を無視する」の両方をONにして、特定文字の中に
「-」を指定してやれば、それでうまくヒットするようでした。

 「as well as」を検索して、

 as well as
 as-well-as
 aswellas

 の3つともにヒットします。

 3つ目の「aswellas」にはヒットして欲しくないということだと都合悪いです
けども、「aswellas」なんて単語は普通使わないので、実用上は差し支えないか
なぁと思います。

[ ]
RE:28316 英熟語のあいまい検索を可能にすNo.28317
rosegardenyk さん 10/05/21 12:22
 
> 今ちょっと試した限りはですが、あいまい検索のオプションで、「空白/タブ
>を無視する」と「特定文字を無視する」の両方をONにして、特定文字の中に
>「-」を指定してやれば、それでうまくヒットするようでした。
>
> 「as well as」を検索して、
>
> as well as
> as-well-as
> aswellas
>
> の3つともにヒットします。
>
> 3つ目の「aswellas」にはヒットして欲しくないということだと都合悪いです
>けども、「aswellas」なんて単語は普通使わないので、実用上は差し支えないか
>なぁと思います。

これは気が付きませんでした。なかなかよいやり方ですね。
同一視ファイルに
「同様に as-well-as」と登録し、「空白/タブを無視する」ON、「特定文字を無視す
る」ONでして、ここで「-」を無視指定してやれば

「これも前のやりかた同様にうまくいく。」という意味で
「This works as well as previous way.」
「同様に」であいまい検索して見事に「as well as」にヒットしますね。しかも、単
語検索ONにしておけば「a swell asshole」にはヒットしませんね。OFFだとヒットし
てしまうし「'」も無視指定していたとすると「as we'll assist」というごくありふ
れた表現にもヒットしてしまいます。単語検索ONにしておけば問題にはなりませんが
英語をしょっちゅう扱う人たちはは常にこういうことまで心配します。

同一視ファイル「今までは so-far」の登録で
「今までは家庭のソファの団欒が欲しかった。」という意味で
「So far I wanted a sofa relazation at home.」
単語検索OFFだと「今までは」で検索して本来の「so far」と想定外の「sofa rxxx」
にもヒットしますが、単語検索ONだと「sofa rxxx」にはヒットしません。

通常英文検索は単語検索ONの場合が多いので、いずれも上のやり方で問題になること
は多くありません。
これで実質的に空白混じりり英熟語登録したとおなじことになります。
新アイデアありがとうございました。早速とりいれます。


さて、英熟語のあいまい検索とは別の話として一般に「空白/タブを無視する」ONで
和英文の混ざったテキストをあいまい検索することは実務的に常にリスクがともない
ます。上の英文例は次のようにみなされ
「Thisworksaswellaspreviousway.」
「SofarIwantedasofarelazationathome.」
同一視ファイル指定になにも指定していなくても、いつ頭をひねらないとわかりづら
い予想外のヒット例えば「eight highly」で「eighth」にヒットが起こるかわからな
い状態になります。

だからといって「空白/タブを無視する」ONを避けると、秀まるお2さんの例示した
方法も使えません。

そこで、新機能「空白とハイフン同一視」ON/OFFオプションの追加があってもいいの
ではないでしょうか。「空白/タブを無視する」OFFでも「空白とハイフン同一視」ON
で「as-well-as」で上の例のように「as well as」にヒットさせるようにするわけで
す。
どうも技術的には難しくはなさそうだし、「空白とハイフン同一視」ON/OFFはあって
もよい機能だからユーザーからの要望リストに残すようお願いします。

当初の開発段階で「空白/タブを無視する」ON +「特定文字としてハイフン無視指
定」で問題なしと見做された可能性もありますね。英文をたくさん扱う人たちは私の
要望に賛成してくれると思います。

しつこいと思われるのではないかと気にしている rosegardenより


















[ ]
RE:28317 英熟語のあいまい検索を可能にすNo.28318
colder さん 10/05/21 13:16
 
colderです

一つうまくいくかもしれない方法を見つけました。

同一視ファイルに以下のように全角空白を使って登録し、
全角/半角を区別しないをonにしておくのはどうでしょうか。

//同一視ファイルの設定例
as well as 同様に

[ ]
RE:28318 英熟語のあいまい検索を可能にすNo.28319
rosegardenyk さん 10/05/21 14:35
 
>一つうまくいくかもしれない方法を見つけました。
>同一視ファイルに以下のように全角空白を使って登録し、
>全角/半角を区別しないをonにしておくのはどうでしょうか。
>
>//同一視ファイルの設定例
>as well as 同様に
colderさん
これは、気づきにくい絶妙手ですね。
「半角/全角を区別しない」だけON+単語検索ONならば全てうまくいくというのがわか
りやすく弊害もなくていいですね。
素晴らしいアイデアありがとうございました。

テスト結果
「半角/全角を区別しない」ON
「空白/タブを無視する」OFF
「特定文字無視指定」なし
「カスタム 1」ON で同一視ファイルに全角SPを使って熟語登録。
「同様に as well as」
「今まで so far」
これでテストしたところ
Ctrl + F  
大文字/小文字の区別、単語検索、正規表現がON/OFFいずれでもOK。
あいまい検索ON ならば、単語検索OFFでも
「今まで」で「so far」にヒットし「sofa」にはヒットしません。これはいいですね。

「同様に」で見事に「as well as」にヒットします。
単語検索ONにしないで、「'」を特定文字無視指定していると「as we'll assist」に
もヒットしてしまいますが、通常単語検索ONでよい場合がほとんどなので実務上問題
はおきないと思います。

colder さん、Good idea ありがとうございます。早速取り入れます。

こうなると、「全角空白を含む英熟語の同一視登録」で副作用なく英熟語のあいまい
検索も現行システムでできることになりました。
要望をリストに残す意味も薄れましたので引っ込めます。

よい方法だが気づきにくいため他のユーザーにもこの手があることを知らせる意味で、
あいまい検索ヘルプの「ヒント」として書いておかれるとよいと思います。きっと翻
訳を仕事にしている人がよろこぶと思いますよ。
長いこと、付き合ってくださってありがとうございました。

やっと夜もよく眠れる rosegarden より。





 

[ ]
RE:28319 英熟語のあいまい検索を可能にすNo.28320
秀まるお2 さん 10/05/21 15:19
 
 僕もよく分かってないんですが、なんとかcolderさんのアイデアで解決出来た
ということで、よかったということにさせていただきます。

 「空白とハイフン同一視」のような機能をしいてやるとしたら、もっと汎用的
に、例えば

 □ 空白と同一視する文字の指定  [______________]

 みたいな感じで任意の文字を空白と同一扱いに出来るオプション追加したらい
いのかなぁと思いました。技術的にはそんなに難しくなく出来るような気がしま
す。

 とりあえず現状必要無いということでやめときます。

[ ]
RE:28319 英熟語のあいまい検索を可能にすNo.28321
秀まるお2 さん 10/05/21 15:22
 
> よい方法だが気づきにくいため他のユーザーにもこの手があることを知らせる意味
>で、
> あいまい検索ヘルプの「ヒント」として書いておかれるとよいと思います。きっと翻
> 訳を仕事にしている人がよろこぶと思いますよ。

 実は僕自身はあまりよく分かってないので、rosegardenykさんのような専門家
の方が、例えばブログに「秀丸 翻訳 あいまい検索」みたいな言葉を含めてこ
ういうやり方があるよ、みたいな感じのことを書いていただけるのが一番有益な
のではないかと思います。

 そうすると、似たようなことをしたい人がgoogleで検索した時に、そこのペー
ジがヒットしてくれたりします。

 (今ちょっと検索したら、ここのサポート会議室のページがヒットしたので、
それでいいという気もします)

[ ]