タブの挿入No.27734
eigodoo1 さん 10/03/03 09:52
 
日本語と英語との間にタブを入れる正規表現を教えてください:

例)


いりょうかごそしょう 医療過誤訴訟 malpractice suit
いりょうかごほけん 医療過誤保険 malpractice insurance
いりょうきゅうふきん 医療給付金 medical benefit
いりょうりれき 医療履歴 medical history
うちゅういがく 宇宙医学 space medicine
えい・あい・えいち A.I.H.(人工授精) Artificial Insemination by Husband (AIH)
夫の精子による人工授精
えい・あい・でぃー A.I.D.(人工授精) Artificial Insemination by Donors (AID)
他人の精子による人工授精
えいち・あい・ヴぃ HIV Human Immunodeficiency Virus (HIV)
エイズウイルス、ヒト免疫不全ウイルス。感染即エイズ発病とはならない。
えすとろじぇん エストロジェン estrogen

[ ]
RE:27734 タブの挿入No.27735
秀まるお2 さん 10/03/03 10:05
 
    検索(S):   ^(.+?)( *)([^\x81\x40-\xFC\xFF]+)$
    置換(E):   \1\t\3

 で近いことは可能かと思いますけども、完璧に自動で処理出来る訳ではなくて、
ある程度失敗する例があって、そういう部分については手作業で直していただく
しか無いと思います。

[ ]
RE:27735 タブの挿入No.27736
eigodoo1 さん 10/03/03 10:11
 
>    検索(S):   ^(.+?)( *)([^\x81\x40-\xFC\xFF]+)$
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>しか無いと思います。


素晴らしい。Thank you very much.

[ ]
RE:27736 タブの挿入No.27737
eigodoo1 さん 10/03/03 10:26
 
>>    検索(S):   ^(.+?)( *)([^\x81\x40-\xFC\xFF]+)$
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>素晴らしい。Thank you very much.


次の場合は、どのように正規表現すれば良いですか:


電圧制御型水晶発振器  VCXO (Voltage Controlled Crystal Oscillator)  
電圧制御発振器  VCO (Voltage Controlled Oscillators)
電気二重層コンデンサ electric double layer capacitor
トリマコンデンサ adjustable ceramic capacitor (Trimmer capacitor)
発振器 oscillator
ピエゾデバイス piezoelectric devices
フィルムコンデンサ film capacitors
ポリマー半導体 polymer semiconductor
モノリシック水晶フィルタ MCF (Monolithic Crystal Filter)

[ ]
RE:27737 タブの挿入No.27739
秀まるお2 さん 10/03/03 10:37
 
> 電圧制御型水晶発振器  VCXO (Voltage Controlled Crystal Oscillator)  

 これについては、「VCXG」の後ろに全角空白が入ってしまってるので、それを
「日本語」と認識してしまうがために、期待した置換にはなってくれないです。

 そもそも、こういう位置に全角空白があること自体が問題じゃないかと思うの
で、そういうのは手作業で直すしか無いと思います。

[ ]
RE:27739 タブの挿入No.27740
eigodoo1 さん 10/03/03 10:40
 
>> 電圧制御型水晶発振器  VCXO (Voltage Controlled Crystal Oscillator)  
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>で、そういうのは手作業で直すしか無いと思います。


全角空白は手作業で半角空白にするので、その後の正規表現を教えてください。

[ ]
RE:27740 タブの挿入No.27741
秀まるお2 さん 10/03/03 10:54
 
 正規表現パターンとしては、最初にあったパターンでいけると思いますが、そ
れでうまくいかない例はあります。

 それでうまくいかない例については、手作業で直すしかありません。



 昔々にお話させていただいたことがあると思いますが、日本語/英語といった
区別を正規表現で正確に表現することは出来ません。なので、僕の書いたパター
ンというのは、あくまで「全角文字かどうか」というのを基準に、日本語と英語
の区切りをおおよそ予測しているに過ぎないです。

 そういうやり方でやる以上、うまく置換出来ない例はありえます。

 そういう場合は、手作業で修正してもらうしか無いです。

[ ]
RE:27736 タブの挿入No.27801
eigodoo1 さん 10/03/11 10:05
 
>>    検索(S):   ^(.+?)( *)([^\x81\x40-\xFC\xFF]+)$
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>素晴らしい。Thank you very much.




上記の正規表現で置換を行うと、英語だけの行なのに、行頭1小文字のすぐ次にタブ
が入るのはなぜですか?それを回避する正規表現を教えてください。


例)


Japanese Reading English
調査対象企業数 chousa taishou kigyou suu Number of sample enterprises
中堅企業 chuuken kigyou Medium-sized enterprises
中小企業 chuushou kigyou Small enterprises


これら上記を置換すると、1行目のJの次にタブが入ってしまいます。和文が存在しな
いのに不思議です。なぜですか?つまり、「Japanese Reading English」の行を無視
して置換したいのです。

[ ]
RE:27801 タブの挿入No.27802
秀まるお2 さん 10/03/11 10:51
 
 前回の正規表現パターンは、1行の中に必ず全角文字が1つ以上あることを想
定して書いているというか、そういうパターンでしかテストしてなかったので、
想定外のケースでどういう動作になるかまでは僕も予想出来てませんでした。

 英語だけの行もあって、その場合には何も置換して欲しくないということでし
たら、

    検索(S):   ^(.*?[\x81\x40-\xFC\xFF].*?)( *)([^\x81\x40-\xFC\xFF]+)$
    置換(E):   \1\t\3

 でいけるかと思います。

[ ]
RE:27802 タブの挿入No.27803
eigodoo1 さん 10/03/11 11:01
 
> 前回の正規表現パターンは、1行の中に必ず全角文字が1つ以上あることを想
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> でいけるかと思います。


ありがとうございます。

[ ]
RE:27803 タブの挿入No.27804
eigodoo1 さん 10/03/11 11:34
 
>> 前回の正規表現パターンは、1行の中に必ず全角文字が1つ以上あることを想
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>ありがとうございます。

下記の文章がある場合、カッコ()の中に存在するタブのみを削除するにはどんな正
規表現になりますか?その他のタブは消去せず、残す方法は?



全国労働者共済生活共同組合連 合会 (全労済 ) zenkoku roudousha kyousai seikat
su kyoudou kumia rengou kai (zenrousai) National Federation of Workers and C
onsumers Insurance Cooperatives Zenrosai
全国市町村職員共済組合連合会 zenkoku shichouson shokuin kyousai kumiai rengo
u kai National Federation of Mutual Aid Associations for Municipal Personnel
全国信用金庫連合会 (全信連) zenko

[ ]
RE:27804 タブの挿入No.27805
eigodoo1 さん 10/03/11 11:59
 
>>> 前回の正規表現パターンは、1行の中に必ず全角文字が1つ以上あることを想
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>全国信用金庫連合会 (全信連) zenko

次のような場合も然りです。つまり、「」の中のタブのみを消去するにはどうすれば
いいですか?

例)



従業員退職所得保障法  「エリサ法 」 jugyouin taishoku shotoku hoshou hou (eris
a hou) Employee Retirement Income Security Act (ERISA) (USA)
加州「カリフォルニア州」公務員年金基 金(カルパース) kashuu (kariforunia sh
uu) koumuin nenkin kikin (karupaasu) California Public Employees' Retirement
 System (CALPERS)

[ ]
RE:27804 タブの挿入No.27806
秀まるお2 さん 10/03/11 12:00
 
 これも難しい正規表現なのでうまくいかないケースもあるかもしれませんが、
とりあえずこちらで試した限りでは、

   検索(S): ((\(|()[^)]*?)(\t+)([^(]*?(\)|)))
   置換(E): \1\3

 でうまくいくと思います。

 括弧がいっぱいあるようなケースでは誤判定の可能性があるかもしれません。

[ ]
RE:27806 タブの挿入No.27807
秀まるお2 さん 10/03/11 12:12
 
 すみません。先ほどのパターンは少しミスがありました。それも含めてお返事
させていただきますと、

 「」中のタブだけなら、

   検索(S): (「[^」]*?)(\t+)([^「]*?」)
   置換(E): \1\3

 となります。

 全部まとめてというと、

   検索(S): ((\(|(|「)[^))」]*?)(\t+)([^((「]*?(\)|)|」))
   置換(E): \1\3

 ということでいいんじゃないかと思います。

[ ]
RE:27807 タブの挿入No.27808
eigodoo1 さん 10/03/11 13:44
 
> すみません。先ほどのパターンは少しミスがありました。それも含めてお返事
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ということでいいんじゃないかと思います。




ありがとうございます。

ほんの少し、思うようにならないところがありますが、手作業でやらなくてはならな
いのかなあ。

[ ]
RE:27808 タブの挿入No.27810
秀まるお2 さん 10/03/11 14:10
 
 タブ文字の入り方にきれいな法則があるのなら別ですが、そうでないのなら、
やはり最終的に手作業になっても仕方がないと思います。

[ ]
RE:27810 タブの挿入No.27811
eigodoo1 さん 10/03/11 14:48
 
> タブ文字の入り方にきれいな法則があるのなら別ですが、そうでないのなら、
>やはり最終的に手作業になっても仕方がないと思います。


実は私の言わんとしているのは、その前の段階のことです。次の文章を

^(.*?[\x81\x40-\xFC\xFF].*?)( *)([^\x81\x40-\xFC\xFF]+)$

\1\t\3


で置換すると、「全産業」と「製造業」のそれぞれすぐ後ろにタブが出現してしまう
のです。それを望んではいないのです。あくまでも和文タブ英文のペア作成を行いた
いのです。和文の文中にタブが出現してしまうので困っております。何か良い方法は
ありませんか?

例)

中小企業業況判断来期見通し (全産業) chuushou kigyou gyoukyou handan raiki mi
tooshi (zensangyou) Index of Business Outlook Judgement  
中小企業景況観調査 chuushou kigyou keikyoukan chousa SME Business Sentiment
Index Shoko Chukin
中小企業売上高 (製造業) chuushou kigyou uriagedaka (seizougyou) Index of Sal
es in Small and Medium Sized Enterprises  
第3次産業活動指数 daisanji sangyou katsudou shisuu Indices of Tertiary Indu
stry Activity  

[ ]
RE:27811 タブの挿入No.27812
秀まるお2 さん 10/03/11 15:09
 
 「全産業」の後ろの括弧は半角文字なので、英文の一部と解釈されても仕方が
ないです。

 あくまで「和文と英文の区切り」として正規表現で書いてるのは、全角文字か
半角文字かの区別だけなので…

 検索: ^(.*?[\x81\x40-\xFC\xFF].*?(|\)))( *)([^\x81\x40-\xFC\xFF]+)$
 置換: \1\t\3

 と書けば、一応、全角文字直後の半角括弧は和文の一部と解釈するようになる
かなぁと思います。サンプルの例ではうまくいくようではあります。

[ ]
RE:27812 タブの挿入No.27813
eigodoo1 さん 10/03/11 15:29
 
> 「全産業」の後ろの括弧は半角文字なので、英文の一部と解釈されても仕方が
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>かなぁと思います。サンプルの例ではうまくいくようではあります。


つまり、正規表現を@からAへ変更したわけですね。
@^(.*?[\x81\x40-\xFC\xFF].*?)( *)([^\x81\x40-\xFC\xFF]+)$

A^(.*?[\x81\x40-\xFC\xFF].*?(|\)))( *)([^\x81\x40-\xFC\xFF]+)$



ありがとうございます。

[ ]