Corin1998 commited on
Commit
be233f4
·
verified ·
1 Parent(s): 3782ccc

Update services/chain_filters.py

Browse files
Files changed (1) hide show
  1. services/chain_filters.py +15 -11
services/chain_filters.py CHANGED
@@ -1,24 +1,28 @@
1
  from __future__ import annotations
2
  from typing import Dict, Any
 
3
 
4
- # よくあるチェーンの簡易ブラックリスト小文字・空白/記号無視でマッチ
5
  _CHAIN_KEYWORDS = {
6
- # 和製チェ
7
- "マクドナルド", "mcdonald", "モスバーガー", "mosburger", "ケンタッキー", "kentuckyfriedchicken", "kfc",
 
 
 
8
  "サイゼリヤ", "ガスト", "バーミヤン", "ジョナサン", "デニーズ", "ロイヤルホスト", "ココス", "やよい軒",
9
- "松屋", "吉野家", "すき家", "リンガーハット", "丸亀製麺", "はなまるうどん",
 
10
  "スシロー", "くら寿司", "はま寿司", "かっぱ寿司",
11
  "コメダ", "星乃珈琲", "サンマルク", "ドトール", "スターバックス", "スタバ",
12
- "ココイチ", "cocoichibanya", "coCoichibanya",
13
- # グローバル系
14
- "burgerking", "subway", "wendy", "dominos", "pizzahut", "papa john", "chipotle", "tgifriday",
15
- "hardrockcafe", "paul", "pretamanger", "starbucks", "bluebottlecoffee"
16
  }
17
 
18
  def _normalize(s: str) -> str:
19
- import re
20
  s = (s or "").lower()
21
- s = re.sub(r"[\s\-\_\.\&\(\)\'\"]+", "", s)
22
  return s
23
 
24
  def _match_chain(s: str) -> bool:
@@ -28,7 +32,7 @@ def _match_chain(s: str) -> bool:
28
  return any(k in ns for k in _CHAIN_KEYWORDS)
29
 
30
  def is_chain(name: str | None, tags: Dict[str, Any] | None = None) -> bool:
31
- """OSM/Wiki由来の name / brand / operator / network を見てチェーンらしさを判定。"""
32
  if _match_chain(name or ""):
33
  return True
34
  tags = tags or {}
 
1
  from __future__ import annotations
2
  from typing import Dict, Any
3
+ import re
4
 
5
+ # よくあるチェーン(日本語含むを拡張
6
  _CHAIN_KEYWORDS = {
7
+ # グロバル
8
+ "mcdonald", "burgerking", "subway", "wendy", "dominos", "pizzahut", "starbucks",
9
+ "bluebottlecoffee", "tullys", "paul", "pretamanger", "hardrockcafe", "kfc", "kentuckyfriedchicken",
10
+ # 国内大手(飲食)
11
+ "マクドナルド", "モスバーガー", "ケンタッキー", "フレッシュネスバーガー",
12
  "サイゼリヤ", "ガスト", "バーミヤン", "ジョナサン", "デニーズ", "ロイヤルホスト", "ココス", "やよい軒",
13
+ "松屋", "吉野家", "すき家", "日高屋", "リンガーハット", "",
14
+ "丸亀製麺", "はなまるうどん",
15
  "スシロー", "くら寿司", "はま寿司", "かっぱ寿司",
16
  "コメダ", "星乃珈琲", "サンマルク", "ドトール", "スターバックス", "スタバ",
17
+ "ココイチ", "coco壱", "co co ichibanya", "cocoichibanya",
18
+ "鳥貴族", "磯丸水産", "和民", "塚田農場", "はなの舞",
19
+ # 今回問題に挙がった例
20
+ "つばめグリル", "けいすけ", "keisuke",
21
  }
22
 
23
  def _normalize(s: str) -> str:
 
24
  s = (s or "").lower()
25
+ s = re.sub(r"[\s\-\_\.\&\(\)\'\"\u3000]+", "", s)
26
  return s
27
 
28
  def _match_chain(s: str) -> bool:
 
32
  return any(k in ns for k in _CHAIN_KEYWORDS)
33
 
34
  def is_chain(name: str | None, tags: Dict[str, Any] | None = None) -> bool:
35
+ """name/brand/operator を見てチェーン判定。"""
36
  if _match_chain(name or ""):
37
  return True
38
  tags = tags or {}