Skip to content

冷笑パターン(ったく/よせやい/あたぼうよ/てやんでい/そういうノリ)を追加 - #6

Merged
otnc merged 4 commits into
otnc:mainfrom
Harukotokoto:feat/add-reisyou-patterns
Aug 23, 2026
Merged

冷笑パターン(ったく/よせやい/あたぼうよ/てやんでい/そういうノリ)を追加#6
otnc merged 4 commits into
otnc:mainfrom
Harukotokoto:feat/add-reisyou-patterns

Conversation

@Harukotokoto

@Harukotokoto Harukotokoto commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

概要

インターネット上の冷笑構文をリサーチし、regexStrict に以下のパターンを追加しました。

  • ったく + w/笑
  • よせやい + w/笑
  • あたぼうよ + w/笑
  • てやんでい + w/笑
  • あぁ、そういうノリ…w

いずれも「冷笑戦隊」コピペや冷笑構文まとめサイトで頻出する表現で、末尾に w/ を伴う場合に限定してマッチさせているため、通常の会話表現との誤検知リスクは低いと判断しました。可能な範囲でひらがな・カタカナ・半角カナに対応しています。

変更内容

  • src/lib/regex.ts: regexStrict に新しい音・定型フレーズを追加
  • test/regex.test.ts: 追加したパターンのテストケースを追加(ひらがな/カタカナ/半角カナ/w・w表記ゆれを含む)

確認済み

  • npm run check (prettier + eslint)
  • npm run typecheck
  • npm run build
  • npm test (52件全てパス)

@otnc

otnc commented Aug 23, 2026

Copy link
Copy Markdown
Owner

ご提案ありがとうございます!内容自体はとても良いと思うのですが、ちょうどこのPRと並行して src/lib/regex.ts を手書きの正規表現1本から、src/lib/patterns.ts の「パターンをデータ(配列)として持ち、そこから正規表現を組み立てる」方式にリファクタリングしたため(#5 #7)、src/lib/regex.ts への直接追記という形のこの差分はそのままでは main に適用できなくなってしまいました 🙏

現在の構造では、src/lib/patterns.tspatterns 配列に { id, strict, source, samples } を1つ追加する形になります。samples に書いた例文は自動でテスト化されるので、個別にテストコードを書く必要はありません(CONTRIBUTING.md 参照)。モーラの異表記(ひらがな/カタカナ/半角カナ)は共通の文字クラス定数(KI, SA, ...)と stem(...) ヘルパーを組み合わせて作っています。

このPRの提案を今の形に直すとこんなイメージです(参考までに):

// 新しいモーラ定数を追加(あいうえお順の該当位置に)
const SE = "[せセセ]"; // さ行
const TE = "[てテテ]"; // た行
const BO = "(?:ぼ|ボ|ボ)"; // ば行の濁音。半角カナの濁点は基底文字+濁点の2文字になるため文字クラスではなく選択構造にしています

// patterns配列に追加
{
  id: "phrase-yoseyai",
  strict: true,
  source: stem(YO, SE, YA, I),
  samples: ["よせやいw"],
},
{
  id: "phrase-atabouyo",
  strict: true,
  source: stem(A, TA, BO, U, YO),
  samples: ["あたぼうよw"],
},
{
  id: "phrase-teyandei",
  strict: true,
  source: stem(TE, YA, N, DE, I),
  samples: ["てやんでいw"],
},

あと2点補足です:

  • ったく はすでに phrase-mattaku として存在します。ただ単体で日常会話にも頻出する語なので、誤検知リスクを考えて strict: false(relaxedモードのみ検知)にしています。strictにすべきという意見があれば理由付きでぜひ教えてください。
  • そういうノリ もすでに phrase-sonna-nori として存在しています。現状の実装は「あぁ、」のような前置きを必須にしていないため、こちらの案より広めにマッチする作りになっています。

お手数をおかけしますが、現在の main に対して rebase(またはこのブランチで作り直し)をお願いできますでしょうか。よろしくお願いします!

otnc and others added 2 commits August 23, 2026 23:11
main側でsrc/lib/regex.tsを手書き正規表現からsrc/lib/patterns.tsの
データ駆動方式にリファクタリングしたため、このPRの提案(ったく/よせやい/
あたぼうよ/てやんでい/そういうノリ)を現在の構造に合わせて書き直しました。

- ったく: phrase-mattaku として既に存在(relaxedのみ)
- そういうノリ: phrase-sonna-nori として既に存在(より広くマッチする形)
- よせやい/あたぼうよ/てやんでい: patterns配列に新規追加
  (SE/TE/BOのモーラ定数を追加し、既存のstem()ヘルパーで組み立て)

Co-authored-by: Harukoto <y.games@outlook.jp>

@otnc otnc left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@otnc
otnc merged commit 14065d7 into otnc:main Aug 23, 2026
3 checks passed
@Harukotokoto
Harukotokoto deleted the feat/add-reisyou-patterns branch August 23, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants