-
Notifications
You must be signed in to change notification settings - Fork 5
XinSong/Variant_Detect
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
1.背景 我国《商标法》第七章第五十二条规定:未经商标注册人的许可,在同一种商品或类似商品上使用与其注册商标相同的商标的行为,属于侵犯注册商标专用权。 目前风控系统内已经已有的商标检测模块,能够检测出创意内包含的商标,从而拒绝该创意。部分广告主为了规避商标检测模块,采用了同注册商标字音/字形相近的字词来伪装成目标商标,这违反了我国《商标法》第七章第五十二条,不仅使得公司承担了法律上的风险,而且低劣的广告创意有损公司形象。 为了解决上述问题,有必要对物料库内的已有的和未来的创意进行排查,下线包含商标变体的违规创意。 2. 名词解释 商标原体: 指的是商标变体所模拟/伪装的目标商标。 商标变体: 指得是广告主为了规避商标检测模块,采用具有相似字音/字形的字词来模拟/伪装目标商标原体,所形成的变体商标。 3. 变体类型 通过对商标变体数据进行调研发现,主要分为字面颠倒变体、插入型变体、形似字变体、音字混合变体、同音字变体、声母变体、谐音变体和怪异字变体(也可称之为繁体字变体),一共8种类型变体。 变体类型|变体举例 ———————————————————————— 自序颠倒变体|天涯明月刀 VS 天涯刀月明 ———————————————————————— 插入型变体|刀塔传奇 VS 刀塔之传奇 ———————————————————————— 音字混合变体|酷我音乐 VS 酷wo音乐 ———————————————————————— 同音字变体|捕鱼达人 VS 捕渔达人 ———————————————————————— 声母变体|大天使之剑 VS 大T使之剑 ———————————————————————— 韵母(谐音)变体|太极熊猫 VS 太极熊喵 ———————————————————————— 形似字变体|秦时明月 VS 泰时明月 ———————————————————————— 怪异字变体|神途 VS 訷途 ———————————————————————— 4. 设计思路 从以上调研发现,大的方面上,变体主要有三种类型:字词顺序颠倒、字音相似、字形相似。本质上,在给定商标原体库的情形下,通过对创意进行切词、注音和词汇拼接,将创意转换为一个很长的word list,对该word list内的每个词,找到可能的商标原体,然后计算与该原体的距离,距离在某一范围内(在实际程序中,表现为字元数/字音/字形满足一定的规则),即视为该词为商标变体。 5. 各子模块设计 5.1 注音模块pinyin 5.1.1 功能描述 给定字符串进行注音,采用指定分隔符分隔注音。 注意,对于字符串中的非汉字字符,会原样返回。 5.1.2 对外接口 get(s, delimiter=’’, encoding=’gbk’): 为=返回给定字符串s对应的拼音 get_consonant(s, delimiter=’ ’, encoding=’gbk’): 取出给定字符串拼音的声母 get_vowel(s, delimiter=’ ’, encoding=’gbk’): 取出给定字符串的韵母 5.1.3 异常处理 有可能会抛出解码异常。 5.1.4 示例 import pinyin pinyin.get(“我是中国人”) //return “woshizhongguoren” pinyin.get_consonant(“我是中国人”) // return “w s z g r” pinyin.get_vowel(“我是中国人”) //return “o i ong o en” 5.2 笔画模块stroke 5.2.1 功能描述 给定一个汉字串,返回该字符串的笔画编码。 5.2.2 对外接口 get(s, delimiter="", encoding='gbk'): 返回给定字符串s对应的笔画 get_dist(charsA, charsB) : 返回两个字符串charsA和charsB对应的笔画序列的距离,这个距离在[0,1]之间,0表示两个字笔画完全相同,1表示完全不同。 5.2.3 异常处理 有可能会抛出解码异常。 5.2.4 示例 import stroke stroke.get('我') // Return 'phshzpn' stroke.get_dist(“微言", "微信") //Return 0.1 stroke.get_dist("微亻言", "微信") //Return 0 5.3 变体识别模块variant 5.3.1 功能模块 变体识别主体模块,传入给定的商标文件,返回一个特定的变体判别器对象;像变体判别器传入创意,返回(变体类型,商标原体,商标变体)的三元组。 5.3.2 模块依赖 依赖pinyin、stroke、util三个子模块。 5.3.3 对外接口 class VariantDetector(object): def __init__(self, brand_file):传入指定的商标文件,每行为一个商标 def detect(self, original_idea): 变体识别主干算法,传入创意,返回(变体类型,商标原体,商标变体)的三元组 5.3.3 示例 import conf import variant detector = variant.VariantDetector(conf.YOUXI_BRAND_PATH) variant_type, original_brand, variant_brand = detector.detect(“太极熊喵是一款经典动作手游”)
About
商标变体识别
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published