Wikipedia:編集フィルター/一覧/曖昧さ回避の括弧の付け方違反(の疑い)
このページは、編集フィルターの提案の過去の提案を保存している過去ログページです。編集しないでください。新たな提案や仕様変更議論は、Wikipedia:編集フィルター/提案へ、フィルターに関する誤作動はWikipedia:編集フィルター/誤作動へ報告してください。 |
曖昧さ回避の括弧の付け方違反(の疑い)の過去ログ
曖昧さ回避の括弧の付け方違反(の疑い)
編集目的 | WP:CSD#リダイレクト2-5が適用されるような、曖昧さ回避の括弧の付け方に反している記事の作成への警告とタグ付け |
---|---|
理由 | 日頃から、よくWP:CSD#リダイレクト2-5で即時削除に出される記事がありますが、そのほぼすべては、付け方の方法を知らない人による誤りであり、その誤りの防止と、誤りが発生した場合の検知を簡単にすることが必要です。警告で「そうだったのか」となって修正されれば良いですし、そうでない場合(強行した場合)には、合法的な作成との分離が、その記事名の意味などを考慮しないと難しいため、対処操作はあくまでタグ付けのみです。 |
発動条件 | 「標準名前空間でのページの新規作成」または「移動先が標準名前空間であるページ移動」で、記事名が次の条件に合致する場合 1. 「ほげほげ(あああ)」という形の記事名で全角括弧を使っている場合 2. または「ほげほげ(ああああ)」という形の記事名で、半角括弧を使っているが、直前に半角スペースがない場合。 |
コード | 作成済み。下のリンク参照。 |
対処操作 | 警告文を表示 |
警告文 | MediaWiki:Abusefilter-warning-曖昧さ回避括弧の付け方違反(の疑い) |
フィルター | 編集フィルター#6(変更履歴・一致記録) |
-- 青子守歌(会話/履歴) 2010年9月18日 (土) 10:08 (UTC)
- コメント これも発動条件が少し難しいところですが、ページ名が全角括弧でくくったもので終わっているもの、あるいは半角括弧でくくってはいるが、その前に半角スペースがないものなどが考えられます。正規表現でいうと、
(.+)$
と、\(.+\)$
だが( |_)\(.+\)$
でない、でしょうか。フィルターの意味を分かりやすくするために、この2つの条件は分離してフィルターを別々に作成し、名前を「末尾が全角括弧の記事の作成」と「末尾の半角括弧の前に半角スペースがない記事の作成」としておき、警告やタグで「曖昧さ回避の括弧を作ろうとしてませんか?」と確認&「違反しているかもしれない」タグを付ける、という方法でもよいかもしれません。が、とりあえず両方ともを1つのフィルターでorで結ぶ方で提案します。--青子守歌(会話/履歴) 2010年9月18日 (土) 10:08 (UTC) - 賛成 最初は少々戸惑うであろう「括弧のつけ方」についてのミスが減るでしょう。試験的に走らせてどういうものがヒットするか見て、問題なければ運用に移ると良いと思います。--Was a bee 2010年9月21日 (火) 11:45 (UTC)
コードは以下のようにしようと思います。
/* 新規作成の記事で */ article_articleid == 0 & article_namespace == 0 /** 末尾の括弧に全角括弧を含んでいるか */ & ( ((article_text like "*(*)") | (article_text like "*(*)") | (article_text like "*(*)")) /** 末尾が半角括弧だが、その前に半角スペースがない場合 */ | ((article_text like "*(*)") & !(article_text like "* (*)")) )
当初は、2行目の条件を(!(article_text like "*(*)") & (article_text regex "((|\)).+()|\))$"))
にすることも考えましたが、どうやら正規表現を使うより、素直に3条件並べて短絡させたほうが負荷は低いようです。
この条件で少し一括試験をしてみると、どうやら日に数件程度は発動するようです。
警告文に関しては、実はこの機能、既に一部(具体的には、半角スペースがない場合)に対して、mediawiki:common.jsに組み込まれていて、例えばこんな(例)を作成しようとすると、冒頭に警告が出ます(と言ってもあまり目立ちませんが)。 なので、この警告と同じようなものになると思います。
タグ名に関しては、そのまま「曖昧さ回避の括弧の付け方違反(の疑い)」で良いと思いますが、他に良いタグ名があれば提案してください。--青子守歌(会話/履歴) 2010年9月21日 (火) 12:48 (UTC)
- 賛成 というわけで、仕様もある程度固まって、作れそうなので、提案者票を入れておきます。--青子守歌(会話/履歴) 2010年9月21日 (火) 12:48 (UTC)
- ちょっとトリッキーですが、動作速度に配慮するとすると二行目の前に「『記事名の末尾が「)」(全角括弧閉じ)または「)」(半角括弧閉じ)』と一行足してみるのはどうでしょうか。コードで言えば
(article_text regex "()|\))$"))
となるのでしょうか?--Was a bee 2010年9月21日 (火) 14:13 (UTC)- うーん・・・。短絡処理のために条件を1つ追加するのと、どっちが処理が軽減されるのかはよく分かりませんが、多分、あまり変わらないか、条件数はあまり多くない方が早いのではないかな・・・と思ったりします。処理負荷に関しては、話題に持ち出した本人が言うのも何ですが、werdnaさんから「気にしたほうがいいけど、あんまり気にしすぎる必要はないよ」とも言われてるので、あまりこだわらなくても良いのかなとも思ってます。--青子守歌(会話/履歴) 2010年9月21日 (火) 14:26 (UTC)
- 速度のためだけのコードは分かりにくさを産んでしまうので、僕もあまり積極的ではないですね。ただ将来的にフィルターが100とかになってきたとき、もしそれぞれのフィルターで1ミリ秒の違いがあると全体で0.1秒の違いになってしまうので、体感的に「あれ、遅くね」と分かるレベルになってくるな、という想定がややあります。上で出した案は新着記事の9割ぐらい?が括弧なしであることから、全体的な速度の向上としていいだろうという趣旨です。現状ですと、新着記事についてORで結ばれた article_text like 四つを評価してからでないと処理が終了しないですが、手前に一行入れとけば、ほとんどの場合そこで処理が終わるので、全体的には早いはず、というものです。ただこれは正規表現一回(
(article_text regex "()|\))$"))
)と article_text like 四つ ((article_text like "*(*)") | (article_text like "*(*)") | (article_text like "*(*)")) | ((article_text like "*(*)")
)で、どれぐらい違いがあるか(そもそもどっちが早いのか)という問題ですが。もしテストして現状のフィルターの実行時間が結構かかる場合は(5ミリ秒とか)、一度一行追加してみてのテストをお願いしたいです。--Was a bee 2010年9月21日 (火) 15:03 (UTC)
- 速度のためだけのコードは分かりにくさを産んでしまうので、僕もあまり積極的ではないですね。ただ将来的にフィルターが100とかになってきたとき、もしそれぞれのフィルターで1ミリ秒の違いがあると全体で0.1秒の違いになってしまうので、体感的に「あれ、遅くね」と分かるレベルになってくるな、という想定がややあります。上で出した案は新着記事の9割ぐらい?が括弧なしであることから、全体的な速度の向上としていいだろうという趣旨です。現状ですと、新着記事についてORで結ばれた article_text like 四つを評価してからでないと処理が終了しないですが、手前に一行入れとけば、ほとんどの場合そこで処理が終わるので、全体的には早いはず、というものです。ただこれは正規表現一回(
- うーん・・・。短絡処理のために条件を1つ追加するのと、どっちが処理が軽減されるのかはよく分かりませんが、多分、あまり変わらないか、条件数はあまり多くない方が早いのではないかな・・・と思ったりします。処理負荷に関しては、話題に持ち出した本人が言うのも何ですが、werdnaさんから「気にしたほうがいいけど、あんまり気にしすぎる必要はないよ」とも言われてるので、あまりこだわらなくても良いのかなとも思ってます。--青子守歌(会話/履歴) 2010年9月21日 (火) 14:26 (UTC)
- ちょっとトリッキーですが、動作速度に配慮するとすると二行目の前に「『記事名の末尾が「)」(全角括弧閉じ)または「)」(半角括弧閉じ)』と一行足してみるのはどうでしょうか。コードで言えば
- 賛成 です。まずテストして動かしてみないと細かい所も分かりません。提案されましたコードに賛成します。--Was a bee 2010年9月21日 (火) 15:03 (UTC)
- 賛成 フィルター試作には賛成です。ただ、作って運用してみたうえで、mediawiki:common.jsで処理するのとどちらが効率的か、考慮するよう希望します。--miya 2010年9月24日 (金) 12:57 (UTC)
- コメント あと20時間ぐらいで1週間が経過するので、作成して試験期間に入ってみたいと思いますが、1つだけ。(common.)jsによるスクリプトでは、タグ付けをすることは出来ません(APIは用意されていないよう)。効率性に関しては、ブラウザのjs処理能力によるかと思います。--青子守歌(会話/履歴) 2010年9月24日 (金) 17:22 (UTC)
報告 先ほど編集フィルター#6(変更履歴・一致記録)として作成しました。ただ、上記のコードでは誤作動が起こる可能性があったため、&action="edit"を追加しました。--Vigorous action (Talk/History) 2010年9月25日 (土) 15:44 (UTC)
- ありがとうございます。フィルター#6の第38版(差分)で少し修正を加えましたが、特に問題はないようです(さっそく1件が一致してましたが、正常に取れていたようです)。--青子守歌(会話/履歴) 2010年9月25日 (土) 17:32 (UTC)
報告 フィルター#6の第45版(差分)にて、「新規作成」のみではなく、「ページの移動先」も対象に加えました。発動条件の修正のため、試験期間はリセットして今から168時間としたいと思います。--青子守歌(会話/履歴) 2010年9月27日 (月) 02:24 (UTC)
- コメント先日作成時に引っ掛かり、警告が出ました。おかげで無駄な移動処理をせずに済みました。良いフィルターだと思います。ありがとうございました。--Himetv 2010年9月27日 (月) 21:25 (UTC)
報告 フィルター#6の第62版(差分)で、警告と対処操作の付与を行ないました。詳細は、フィルターをご覧ください。--青子守歌(会話/履歴) 2010年10月4日 (月) 02:46 (UTC)