grep検索No.25571
eigodoo1 さん 08/10/27 11:28
 
grep検索の時に以下のことをしたいのですが、うまくできません:


例:

「必ず」をgrep検索すると、「必ずしも」とか「必ずや」などが検索されます。「必
ず」のみ検索したい場合は、どのようにすればよろしいですか?


[ ]
RE:25571 grep検索No.25572
いいじま さん 08/10/27 12:36
 
秀丸ユーザのいいじまと申します。

> 「必ず」をgrep検索すると、「必ずしも」とか「必ずや」などが検索されます。
> 「必ず」のみ検索したい場合は、どのようにすればよろしいですか?

正規表現を用いて、
    必ず[^ぁ-ん]
でどうでしょう。

[ ]
RE:25572 grep検索No.25573
さん 08/10/27 12:53
 
ま、です。

>正規表現を用いて、
>    必ず[^ぁ-ん]
>でどうでしょう。

「必ずやる」とか「必ずなんとかします」とかにも
ヒットしなくなりますが、それでもいいのかどうかを、
元の質問者の方に確認したいところですね。

[ ]
RE:25573 grep検索No.25574
eigodoo1 さん 08/10/27 15:19
 
>ま、です。
>
>>正規表現を用いて、
>>    必ず[^ぁ-ん]
>>でどうでしょう。
>
>「必ずやる」とか「必ずなんとかします」とかにも
>ヒットしなくなりますが、それでもいいのかどうかを、
>元の質問者の方に確認したいところですね。



必ず[あ-ん]でgrep検索すると、[必ずしも]とかにもヒットしてしまいました。この
ことは小生の希望とすることではありません。何かいい方法はございませんか?

[ ]
RE:25574 grep検索No.25575
いいじま さん 08/10/27 15:37
 
いいじまです。

>>>     必ず[^ぁ-ん]
>>> でどうでしょう。
>> 「必ずやる」とか「必ずなんとかします」とかにも
>> ヒットしなくなりますが、それでもいいのかどうかを、
>> 元の質問者の方に確認したいところですね。
>
> 必ず[あ-ん]でgrep検索すると、[必ずしも]とかにもヒットしてしまいました。
> このことは小生の希望とすることではありません。
> 何かいい方法はございませんか?

もういちどよく観てください。[あ-ん]ではなく[^ぁ-ん]です。
先頭は小さい「ぁ」で、その前には半角の ^ が入っています。

それはそうとして、ご所望の動作は、秀丸単体で可能な限界を超えていると
思います。「必ず」の後に来るひらがなが、どういう品詞で、先行する
「必ず」とは文法的にどういう関係にあるのか、まじめに解析しないと
いけません。そういった処理をするためのツールはいくつもありますが、
かなり大掛かりな作業になることは間違いありません。

[ ]
RE:25575 grep検索No.25576
eigodoo1 さん 08/10/27 15:45
 
>いいじまです。
>
>>>>     必ず[^ぁ-ん]
>>>> でどうでしょう。
>>> 「必ずやる」とか「必ずなんとかします」とかにも
>>> ヒットしなくなりますが、それでもいいのかどうかを、
>>> 元の質問者の方に確認したいところですね。
>>
>> 必ず[あ-ん]でgrep検索すると、[必ずしも]とかにもヒットしてしまいました。
>> このことは小生の希望とすることではありません。
>> 何かいい方法はございませんか?
>
>もういちどよく観てください。[あ-ん]ではなく[^ぁ-ん]です。
>先頭は小さい「ぁ」で、その前には半角の ^ が入っています。
>
>それはそうとして、ご所望の動作は、秀丸単体で可能な限界を超えていると
>思います。「必ず」の後に来るひらがなが、どういう品詞で、先行する
>「必ず」とは文法的にどういう関係にあるのか、まじめに解析しないと
>いけません。そういった処理をするためのツールはいくつもありますが、
>かなり大掛かりな作業になることは間違いありません。



おっしゃるとおりにすると、「必ず時」などの単語にヒットしました。小生に言う
「必ず」には、そのの前後にひらがな、漢字、カタカタも存在します。そういう状況
下で、「必ず」のみgrep検索することは可能でしょうか?そんなに大掛かりな動作と
は思えませんが...




[ ]
RE:25576 grep検索No.25577
いいじま さん 08/10/27 16:16
 
いいじまです。

>> それはそうとして、ご所望の動作は、秀丸単体で可能な限界を超えていると
>> 思います。「必ず」の後に来るひらがなが、どういう品詞で、先行する
>> 「必ず」とは文法的にどういう関係にあるのか、まじめに解析しないと
>> いけません。そういった処理をするためのツールはいくつもありますが、
>> かなり大掛かりな作業になることは間違いありません。
>
> おっしゃるとおりにすると、「必ず時」などの単語にヒットしました。
> 小生に言う「必ず」には、そのの前後にひらがな、漢字、カタカタも存在します。
> そういう状況下で、「必ず」のみgrep検索することは可能でしょうか?
> そんなに大掛かりな動作とは思えませんが...

「必ず時」の中から「必ず」だけを取り出すのは、秀丸が拡張した正規表現で
何とかなると思います。(私はよく知らないので他の人のレスをお待ちください。)

で、その先、「必ずやる」の「必ず」にはヒットして、「必ずや」を
除外するのが簡単にできるかというと、これはかなり難しい問題です。
ゼロからやるとしたら、大学の卒業論文くらいの難度になります。
#「必ずやる」を分解すると「必ず|やる」になる理由を説明できますか?
#「やる」が動詞で、「必ず」が形容詞だから?では動詞・形容詞とは
#コンピュータ上ではどう表現すればいいのでしょう?

[ ]
RE:25576 grep検索No.25578
秀丸担当 さん 08/10/27 16:17
 

正規表現の、後方不一致指定を使って、
必ず(?!しも|や)
というようにすると、「必ず」に続いて「しも」または「や」がある場合はヒッ
トしなくなり、以下のようにな結果になります。

○必ず
○必ずします
○必ず時
○必ずなんとかします
×必ずやる
×必ずしも
×必ずや

「必ずやる」もヒットしなくなってしまいます。
これが希望される結果ならばいいですが、もし文脈を判断しなくてはならないよ
うなことだとしたら、いいじまさんの言われる通り、難しいことになってきます。

後方不一致指定についてはヘルプの正規表現の「(?!expression) 後方不一致指
定 」のところに詳しく書いてあります。
[^ぁ-ん]という書き方については、「[] ブラケット(キャラクタクラス) 」につ
いての説明に書かれています。

[ ]
RE:25578 grep検索No.25582
eigodoo1 さん 08/10/28 10:50
 
>
>正規表現の、後方不一致指定を使って、
>必ず(?!しも|や)
>というようにすると、「必ず」に続いて「しも」または「や」がある場合はヒッ
>トしなくなり、以下のようにな結果になります。
>
>○必ず
>○必ずします
>○必ず時
>○必ずなんとかします
>×必ずやる
>×必ずしも
>×必ずや
>
>「必ずやる」もヒットしなくなってしまいます。
>これが希望される結果ならばいいですが、もし文脈を判断しなくてはならないよ
>うなことだとしたら、いいじまさんの言われる通り、難しいことになってきます。
>
>後方不一致指定についてはヘルプの正規表現の「(?!expression) 後方不一致指
>定 」のところに詳しく書いてあります。
>[^ぁ-ん]という書き方については、「[] ブラケット(キャラクタクラス) 」につ
>いての説明に書かれています。

いいじまさん、秀丸担当さん、いろいろとありがとうございます。なんだか、目的地
にもう少しでたどり着けそうです。小生の欲するところは、(必ず)のみを浮き彫り
にしたいのです。どうすればよろしいですか?お願いします。





[ ]
RE:25582 grep検索No.25583
秀まるお2 さん 08/10/28 13:03
 
 いろんなユーザー様の話を総合させていただくと、つまり、eigodoo1さんの期
待されるような検索は、日本語の文法解析でもやらないかぎり不可能ではないか、
という話だと思います。

 正規表現を使えばある程度のことは出来るけども、完璧な判断をさせるには至
らないというか、例えば「必ずや」にヒットしないような検索条件を指定すると、
結果として「必ずやる」という言葉にもヒットしなくなるのでダメだということ
で。

 なので、現実的には、とりあえず「必ず」で検索してみて、その中から「必ず
しも」や「必ずや」をまた検索してやって、不要な物は手作業で削除する、みた
いなやり方をするしか無いんじゃないかと思います。

 他に何かもっといいやり方があれば誰か教えて欲しいです。

[ ]
RE:25582 grep検索No.25584
さん 08/10/28 13:37
 
ま です。

> 小生の欲するところは、(必ず)のみを浮き彫りにしたいのです

eigodoo1さんの欲するところのものは、「形態素解析」という技術を
必要とします。これはまぁエディタのお仕事の範囲ではないというか、正規表現でど
うこう出来る話ではありません(※)ので、それ専用の
ツールなりを導入されるしかないと思います。

※物凄く長い正規表現を作ったら何とかなるかもしれませんが、
  一生のお仕事になりそうです。

オープンソースの形態素解析器もChaSen(茶筌)、MeCab (和布蕪)
などあるようですので、ホントにどうしても必要ならば試してみては
いかがでしょうか。

[ ]