凉白开商标谁写的-凉白开商标审核为什么不通过

提问时间:2020-06-05 15:01
共1个精选答案
迅法网商标注册 2020-06-05 15:01
最佳答案

相关小视频

练毛笔字时,为什么竖划总是写不直或歪扭

执笔的姿势,身体的姿势,都决定竖笔的形态。 调整姿势,坚持练习,慢慢就好了。

鹅厂面试题,英语单词拼写检查算法?

又到安利Python的时间, 最终代码不超过30行(优化前),加上优化也不过40行。第一步. 构造Trie(用dict登记结点信息和维持子结点集合):-- 思路:对词典中的每个单词,逐词逐字母拓展Trie,单词完结处的结点用None标识。def make_trie(words): trie = {} for word in words: t = trie for c in word: if c not in t: t[c] = {} t = t[c] t[None] = None return trie 第二步. 容错查找(容错数为tol):-- 思路:实质上是对Trie的深度优先搜索,每一步加深时就消耗目标词的一个字母。当搜索到达某个结点时,分为不消耗容错数和消耗容错数的情形,继续搜索直到目标词为空。搜索过程中,用path记录搜索路径,该路径即为一个词典中存在的词,作为纠错的参考。-- 最终结果即为诸多搜索停止位置的结点路径的并集。def check_fuzzy(trie, word, path=&quot;&quot;, tol=1): if word == &quot;&quot;: return {path} if None in trie else set() else: p0 = set() if word[0] in trie: p0 = check_fuzzy(trie[word[0]], word[1:], path+word[0], tol) p1 = set() if tol > 0: for k in trie: if k is not None and k != word[0]: p1.update(check_fuzzy(trie[k], word[1:], path+k, tol-1)) return p0 | p1简单测试代码 ------构造Trie:words = [&quot;hello&quot;, &quot;hela&quot;, &quot;dome&quot;] t = make_trie(words) In [11]: t Out[11]: {&quot;d&quot;: {&quot;o&quot;: {&quot;m&quot;: {&quot;e&quot;: {&quot;$&quot;: {}}}}}, &quot;h&quot;: {&quot;e&quot;: {&quot;l&quot;: {&quot;a&quot;: {&quot;$&quot;: {}}, &quot;l&quot;: {&quot;o&quot;: {&quot;$&quot;: {}}}}}}} 容错查找:In [50]: check_fuzzy(t, &quot;hellu&quot;, tol=0) Out[50]: {} In [51]: check_fuzzy(t, &quot;hellu&quot;, tol=1) Out[51]: {&quot;hello&quot;} In [52]: check_fuzzy(t, &quot;healu&quot;, tol=1) Out[52]: {} In [53]: check_fuzzy(t, &quot;healu&quot;, tol=2) Out[53]: {&quot;hello&quot;} 似乎靠谱~---------------------------分--割--线--------------------------------------以上是基于Trie的approach,另外的approach可以参看@黄振童鞋推荐Peter Norvig即P神的How to Write a Spelling Corrector虽然我已有意无意模仿P神的代码风格,但每次看到P神的源码还是立马跪...话说word[1:]这种表达方式其实是有渊源的,相信有的童鞋对(cdr word)早已烂熟于心...(呵呵------------------------分-----割-----线-----二--------------------------------------回归正题.....有童鞋说可不可以增加新的容错条件,比如增删字母,我大致对v2方法作了点拓展,得到下面的v3版本。拓展的关键在于递归的终止,即每一次递归调用必须对参数进行有效缩减,要么是参数word,要么是参数tol~def check_fuzzy(trie, word, path=&quot;&quot;, tol=1): if tol < 0: return set() elif word == &quot;&quot;: results = set() if None in trie: results.add(path) # 增加词尾字母 for k in trie: if k is not None: results |= check_fuzzy(trie[k], &quot;&quot;, path+k, tol-1) return results else: results = set() # 首字母匹配 if word[0] in trie: results |= check_fuzzy(trie[word[0]], word[1:], path + word[0], tol) # 分情形继续搜索(相当于保留待探索的回溯分支) for k in trie: if k is not None and k != word[0]: # 用可能正确的字母置换首字母 results |= check_fuzzy(trie[k], word[1:], path+k, tol-1) # 插入可能正确的字母作为首字母 results |= check_fuzzy(trie[k], word, path+k, tol-1) # 跳过余词首字母 results |= check_fuzzy(trie, word[1:], path, tol-1) # 交换原词头两个字母 if len(word) > 1: results |= check_fuzzy(trie, word[1]+word[0]+word[2:], path, tol-1) return results好像还是没有过30行……注释不算(本答案的算法只在追求极致简洁的表达,概括问题的大致思路。至于实际应用的话可能需要很多Adaption和Tuning,包括基于统计和学习得到一些词语校正的bias。我猜测这些拓展都可以反映到Trie的结点构造上面,比如在结点处附加一个概率值,通过这个概率值来影响搜索倾向;也可能反映到更多的搜索分支的控制参数上面,比如增加一些更有脑洞的搜索分支。(更细节的问题这里就不深入了逃----------------------------------分-割-线-三----------------------------------------童鞋们可能会关心时间和空间复杂度的问题,因为上述这种优(cu)雅(bao)的写法会导致产生的集合对象呈指数级增加,集合的合并操作时间也指数级增加,还使得gc不堪重负。而且,我们并不希望搜索算法一下就把所有结果枚举出来(消耗的时间亦太昂贵),有可能我们只需要搜索结果的集合中前三个结果,如果不满意再搜索三个,诸如此类...那肿么办呢?................是时候祭出yield小魔杖了゚ ∀゚)ノ下述版本姑且称之为lazy,看上去和v3很像(其实它俩在语义上是几乎等同的def check_lazy(trie, word, path=&quot;&quot;, tol=1): if tol < 0: pass elif word == &quot;&quot;: if None in trie: yield path # 增加词尾字母 for k in trie: if k is not None: yield from check_lazy(trie[k], &quot;&quot;, path + k, tol - 1) else: if word[0] in trie: # 首字母匹配成功 yield from check_lazy(trie[word[0]], word[1:], path+word[0], tol) # 分情形继续搜索(相当于保留待探索的回溯分支) for k in trie: if k is not None and k != word[0]: # 用可能正确的字母置换首字母 yield from check_lazy(trie[k], word[1:], path+k, tol-1) # 插入可能正确的字母作为首字母 yield from check_lazy(trie[k], word, path+k, tol-1) # 跳过余词首字母 yield from check_lazy(trie, word[1:], path, tol-1) # 交换原词头两个字母 if len(word) > 1: yield from check_lazy(trie, word[1]+word[0]+word[2:], path, tol-1)不借助任何容器对象,我们近乎声明式地使用递归子序列拼接成了一个序列。[新手注释] yield是什么意思呢?就是程序暂停在这里了,返回给你一个结果,然后当你调用next的时候,它从暂停的位置继续走,直到有下个结果然后再暂停。要理解yield,你得先理解yield... Nonono,你得先理解iter函数和next函数,然后再深入理解for循环,具体内容童鞋们可以看官方文档。而yield from x即相当于for y in x: yield y。给刚认识yield的童鞋一个小科普,顺便回忆一下组合数C(n,m)的定义即C(n, m) = C(n-1, m-1) + C(n-1, m)如果我们把C视为根据n和m确定的集合,加号视为并集,利用下面这个generator我们可以懒惰地逐步获取所有组合元素:def combinations(seq, m): if m > len(seq): raise ValueError(&quot;Cannot choose more than sequence has.&quot;) elif m == 0: yield () elif m == len(seq): yield tuple(seq) else: for p in combinations(seq[1:], m-1): yield (seq[0],) + p yield from combinations(seq[1:], m) for combi in combinations(&quot;abcde&quot;, 2): print(combi)可以看到,generator结构精准地反映了集合运算的特征,而且蕴含了对元素进行映射的逻辑,可读性非常强。OK,代码到此为止。利用next函数,我们可以懒惰地获取查找结果。In [54]: words = [&quot;hell&quot;, &quot;hello&quot;, &quot;hela&quot;, &quot;helmut&quot;, &quot;dome&quot;] In [55]: t = make_trie(words) In [57]: c = check_lazy(t, &quot;hell&quot;) In [58]: next(c) Out[58]: &quot;hell&quot; In [59]: next(c) Out[59]: &quot;hello&quot; In [60]: next(c) Out[60]: &quot;hela&quot;话说回来,lazy的一个问题在于我们不能提前预测并剔除重复的元素。你可以采用一个小利器decorator,修饰一个generator,保证结果不重复。from functools import wraps def uniq(func): @wraps(func) def _func(*a, **kw): seen = set() it = func(*a, **kw) while 1: x = next(it) if x not in seen: yield x seen.add(x) return _func这个url打开的文件包含常用英语词汇,可以用来测试代码:In [10]: import urllib # 去除换行符 In [12]: t = make_trie(line.decode().strip() for line in f.readlines()) In [13]: f.close()----------------------分-割-线-四-----------------------------最后的最后,Python中递归是很昂贵的,但是递归的优势在于描述问题。为了追求极致性能,我们可以把递归转成迭代,把去除重复的逻辑直接代入进来,于是有了这个v4版本:from collections import deque def check_iter(trie, word, tol=1): seen = set() q = deque([(trie, word, &quot;&quot;, tol)]) while q: trie, word, path, tol = q.popleft() if word == &quot;&quot;: if None in trie: if path not in seen: seen.add(path) yield path if tol > 0: for k in trie: if k is not None: q.appendleft((trie[k], &quot;&quot;, path+k, tol-1)) else: if word[0] in trie: q.appendleft((trie[word[0]], word[1:], path+word[0], tol)) if tol > 0: for k in trie.keys(): if k is not None and k != word[0]: q.append((trie[k], word[1:], path+k, tol-1)) q.append((trie[k], word, path+k, tol-1)) q.append((trie, word[1:], path, tol-1)) if len(word) > 1: q.append((trie, word[1]+word[0]+word[2:], path, tol-1)) 可以看到,转为迭代方式后我们仍然可以最大程度保留递归风格的程序形状,但也提供了更强的灵活性(对于递归,相当于我们只能用栈来实现这个q)。基于这种迭代程序的结构,如果你有词频数据,可以用该数据维持一个最优堆q,甚至可以是根据上下文自动调整词频的动态堆,维持高频词汇在堆顶,为词语修正节省不少性能。这里就不深入了。【可选的一步】我们在对单词进行纠正的时候往往倾向于认为首字母是无误的,利用这个现象可以减轻不少搜索压力,花费的时间可以少数倍。def check_head_fixed(trie, word, tol=1): for p in check_lazy(trie[word[0]], word[1:], tol=tol): yield word[0] + p最终我们简单地benchmark一下:In [18]: list(check_head_fixed(trie, &quot;misella&quot;, tol=2)) Out[18]: [&quot;micellar&quot;, &quot;malella&quot;, &quot;mesilla&quot;, &quot;morella&quot;, &quot;mysell&quot;, &quot;micelle&quot;, &quot;milla&quot;, &quot;misally&quot;, &quot;mistell&quot;, &quot;miserly&quot;] In [19]: %timeit list(check_head_fixed(trie, &quot;misella&quot;, tol=2)) 1.52 ms ± 2.84 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)在Win10的i7上可以在两毫秒左右返回所有结果,可以说令人满意。

凉白开 的商标为什么没有被驳回

要不是在29类和32类 进行注册都是可以的,的因为没有直接显示产品的特性。就跟苹果手在手机行业可以注册。但是在水果行业肯定注册不下。

新手求助,篆刻的印稿总是写不好。。

首先,感谢您对传统艺术的关注。关于手稿,人们过去常常用毛笔写字。一般来说,它们是反向编写的,使用时不会出错。这是一个基本要求;当然,在撰写手稿,即法治时,应该在空间写作中考虑手稿。只有关注法治,才是管理印章的第一步。2.回顾镜子中的书面手稿。如果单词是正确的,您可以看到有问题,然后重复修改它,直到没有大问题为止,然后完成定稿。3.雕刻完成。在雕刻过程中要注意刀的强度。无论使用打孔刀还是切刀,都应在刀架中反映出来。雕刻后,将对其进行打印和修改,直到完成。有很多话要说。实际上,该过程中没有太多的过程,并且通常是逐步进行的。此外,您还必须阅读更多著名的大师印章。如果您阅读更多,您将可以从中受益。附上几本印刷的手稿,您可以参考这些练习。

一个标志的设计费是多少?

免费到+∞

杂乱无章的众多logo如何排列?

谢谢〜我不知道组织者徽标的目的是不是徽标墙?或报告徽标页面?给您两个建议:1.最简单的方法-整齐地使用“水平对齐+垂直对齐”,将所有徽标排列成规则的阵列。此时,您会发现某些徽标看起来很大而有些看起来很小。这是徽标的形状和视觉问题。较大的应较小,较小的应较小。扩大尺寸,直到您对视野满意为止。 2.反转白色将所有徽标对齐成阵列后,徽标本身仍然是彩色且无序的吗?然后将其颜色更改为白色(或金色/银色)),为背景添加颜色。这样,您的徽标队列将变得更加整洁。当然,这些需要您在PS或AI中完成,希望这些对您有所帮助。

凉白开可以注册32类商标吗

该商标应无法注册。许多人已经注册了,但是还没有注册。

白开水可以注册商标吗

你好!我国的商标法未规定不受5261号注册服务商管辖的2113种商品。作为商品的饮用水可以标记4102个商标。但是,我国的1653年《商标法》作为注册商标有相关的禁止性规定。《商标法》第十条下列标志不得用作商标:(1)与国旗名称,国旗,国旗,国歌,军旗,军徽,军歌,奖章相同或相似,中华人民共和国等,与中央国家机关相同名称,标志,该地点特定位置的名称或标志性建筑物的名称和图形相同; (2)与外国的名称,国旗,国徽,军旗等相同或相似,除非得到该国政府的批准(3)与政府间国际组织的名称,旗帜,标志等相同或相似,但经该组织批准或不易误导公众的除外; (4)与表示控制和保证的官方标志和检查标记相同或类似的,但授权者除外; (5)与“红十字会”和“红新月会”的名称和标志相同或相似; (六)种族歧视; (7)欺骗,很容易使公众误解商品的质量和其他特征或产地; (八)危害社会主义道德风尚或其他不利影响的。县级以上县级行政区划的地名或者公众已知的外国地名,不得用作商标。但是,地名具有其他含义或者是集体商标或证明商标的一部分;使用地名的注册商标继续有效。第十一条下列标志不得注册为商标:(一)仅具有本产品的通用名称,图形和型号; (2)仅直接说明产品的质量,主要原料,功能,用途,重量,数量等特性(3)其他人缺乏特色。如果前款所列标志通过使用已获得鲜明的特征并且易于识别,则可以将其注册为商标。如果您可以提供更详细的信息,则可以提供更准确的法律建议。