微信取消 iOS 打赏功能一二三

事件原委:

4月19日下午,微信官方通过其公众号发布了一片公告,其核心内容为“iOS版微信公众平台赞赏功能将从4月19日下午17:00开始被关闭,安卓等其他版本微信赞赏功能不受影响。”微信表示仍然可以通过二维码转账的方式对公众号表示支持,但次日凌晨微信又发布官方通知,宣布紧急对昨天(19日)下午上线的 iOS 版微信公众平台文章个人转账功能进行关闭,意味着二维码转账也不能用了。

根据微信团队的说法,做出这次改动的原因主要在于苹果公司一方。声明中写道:“2016年6月13日,苹果更新了3.1.1条款,更严格要求App 不得包含指引客户使用非 IAP 机制进行购买的按钮、外部链接或其他行动号召用语。”腾讯方面与苹果公司长期沟通未果,最终只能够在 iOS 系统上取消了打赏功能。

苹果方面已经针对此事做出回应,表示微信可以选择提供App内购买让用户赞赏他们喜爱的公众号运营者,微信只需正确使用App内购买体系进行开发即可。并强调“如同我们提供这一选择给所有的开发者一样”。

App Store 审核指南 ( https://developer.apple.com/app-store/review/guidelines/cn/#in-app-purchase )

3.1.1 App 内购买:

  • 如果您想要在 app 内解锁特性或功能(解锁方式有:订阅、游戏内货币、游戏关卡、优质内容的访问权限或解锁完整版等),则必须使用 App 内购买。App 不得包含指引客户使用非 IAP 机制进行购买的按钮、外部链接或其他行动号召用语。
  • 通过 IAP 购买的所有点数和游戏货币必须在 app 内使用且不得过期,并且您应确保为所有可恢复的“App 内购买”设计一套恢复机制。
  • 请务必指定正确的可购买类型,否则您的 app 将被拒绝。
  • App 不得直接或间接地将 IAP 内容、功能或消耗品赠予他人。
  • 通过 Mac App Store 分发的 app 可托管基于非 App Store 机制的插件或扩展功能。

后续事件:腾讯某高管在其公号上发布文章《腾讯高管:为了更自由的用微信,我打算重新买部安卓手机》评论此事,表示自己打算重新买部安卓手机,“虽然可能性不大,但我希望未来苹果公司的股价和在华销量能够告诉它,这种逼迫 App 应用与安卓平台产生功能性差异化的平台政策,是得不偿失的。”

列表式评论:

一、关于公众号:

  • 开设公众号需要提交身份证明付费审核,文章内容在微信管理下,『不适』内容随时可能被删除。
  • 公众号的文章数据完全储存在微信服务器上,微信制定了一系列规则限定公众号的行为。
  • 外链(跳转其它网站)必须有企业资质,个人开号只能链接到微信内其它文章,完全出不了微信。
  • 基于此,苹果认为公众号文章就是微信的功能之一,微信认为是独立个人行为。
  • 微信认为『打赏』是用户间转帐,而苹果觉得这是购买应用内功能。
  • 双方争议在于『公众号文章』是否属于应用本身部分功能。
  • 双方争议还在于打赏功能是否有『解锁』行为。
  • 公众号文章算不算,你自己判断。
  • 你自己判断也不算,苹果说了算。

二、关于 App Store:

  • App Store 内,免费获得,也被定义为一种购买行为,只是价格为零。
  • App Store 内,不改变任何 App 功能甚至连界面都不变的 IAP (应用内购买,简称内购)是存在的。
  • 比如 Doodle God 就有 Thanks to developers 的内购,即打赏。
  • 可以认为,事前付费事后付费,付不付费,都不是定义内购的必要条件。
  • 可以认为苹果觉得没有跳出 APP 范围的非实物付费都属于内购,而微信严格规范下的公众号文章属于此类。
  • 各直播平台 iOS 版的打赏功能确实是用内购充值平台代币的,当然你也可以通过网站或安卓版 APP 充。
  • iOS 充值获得的代币大约就是网页/安卓版的 70%,差额就是 App Store 分成。
  • 苹果的审核标准并不一致,确实有大量开发者抱怨。
  • 2016 年 6 月的标准,到现在才开始怼,苹果在打自己脸。

三、关于事件

  • 微信并没有否认苹果『一视同仁』的声明,而是抛了个暧昧的高官『个人』文章作为回应。
  • 微信沟通大半年并非为达成一致意见,而是想要特权。
  • 商业合作的事,不能叫要特权,应该叫利益分配。
  • 如果按苹果要求开发,至少公众号运营者能拿到 iOS 用户打赏的 70%。
  • 现在微信不干了,公众号运营者的这部分收益降为零。
  • 从这个角度来说,吃相难看的是微信,为跟苹果要特权牺牲作者群利益。
  • 高管 个人 对对方公司股价和销量的言辞,直如街市泼妇。
  • 个人 两字我用了加粗,表强调,显然他不能代表公司立场。
  • 显然 两字也应该用加粗的,我忘了。
  • 即使如此,事件影响到的只有公众号运营者的一部分收益。
  • 所以这事本来就是公说公有理,婆说婆有理。
  • 吃你的瓜。

四、升华主题

  • 微信不会下架 iOS,也不会再有 3Q 大战二选一,都是成年人。
  • iOS 版和安卓版的功能已经有很多区别,以后会更多,这次事件未来回头看,只会是过程中的寻常一节。
  • 当然炒一炒还是可以成为热点的。
  • App Store 优点之一就是严格审核,统一规范带来的体系信赖。
  • 苹果限制多,不全是对用户有利的限制。
  • 安卓更自由,也未必是对用户有利的自由。
  • 苹果只占手机市场份额 20%,App Store 同样只占软件市场 20%,谈不上垄断。
  • 利润份额和利润率不是垄断的指标,但是商业谈判时的优势。
  • 在商言商,本不须谈及道义。然而腾讯某高管似乎忘了自己是怎么对付淘宝、网易云音乐、快的、虾米等的。
  • 同是争取利益,苹果偏执的『一视同仁』,在托辞选择上比微信还是好一些。

五、实用建议

  • 手机号目前依然是别人找你的最好方法。
  • 电话比文字直接,快速,准确,有时也更温暖。
  • 文字比电话含蓄、有存档、有时会误解,会错过时机。
  • 你的相对价值决定了是你担心找不到别人,还是别人担心找不到你。
  • 最有经济能力换手机的人,也最不用担心上不了微信别人找不到他,当然也最不需换手机。
  • 屁股决定脑袋的某高管除外,当然,其实他也不用担心。
  • 强行假设一个对立困境并为之争吵,即使在脑残粉中也是最愚蠢的行为之一。
  • 有人换手机难,有人换 APP 难,苹果害怕失去用户,微信也害怕失去用户。
  • 你是用户,你怕啥。用到不想用,换哪一个都行。

盗号开挂被封责任是谁的?

最近一段时间守望外挂封号频率变快,吃瓜群众们顺带就发现了另一乐趣:『看演员』。即是围观被封号的人员是如何花样百出地去论坛控诉他们是『被误封』的。我也去了。可不是嘛,挺开心的。

绝大部分的申冤理由最后都集中到了『被盗号开挂』上,毕竟这大概确实属于最能彻底撇清责任的理由。帐号被盗并非拥有者意愿,而被盗期间主人对帐号失去了控制权,造成的影响也应当与主人无关,既然两个环节都并非号主意愿,那么号主自然不应当承受处罚。我觉得这个申诉理由确实有点意思,就记一笔理一下这里的逻辑好了。

 

『帐号被盗开挂被封』,仔细想想这八个字背后的逻辑其实挺复杂的。为了说明问题逻辑,不妨先来看一下另一个例子:

你买了一辆汽车,一切手续完备资格有效,各种费用包括保险费交通费全部交清——这完完全全是你的东西,别人找不到一丝茬。然后你某天下车没有关好门,一个无业混混一拉车把,门就开了。他坐进去打算开一把过瘾,然后就撞死了个老太太,要赔 30 万。

你忘了关车门,混混偷了你的车撞死了人。好嘛,这事怎么了结?

一般来说,首先是分配责任。混混偷车还撞死人当然是主责,但你确实也忘了关门,次要责任肯定得担一些。至于比例多少基本就是法官定度了,就假设是二八开吧。于是理论上你承担 6 万,混混承担 24 万。在结案以后,汽车会还给你。至于洗车费做法事香火钱,那得你自己出。

这个例子可以有诸般变化,比如你能证明你没有疏忽,已经尽到了保管责任,有监控录像证明你确实停在车库并且锁了门,混混是自己撬门开的。那你很幸运的不用承担责任,理论上还可以找混混要求赔偿修车钱。又比如混混还未成年,你停车的地方又是学校附近,可以预见到这里未成年人多。那你忘关车门甚至可能成为主责。再比如混混出车祸一块死了。那你就安心赔上 30 万给老太太家属,说不定还得另赔 30 万给混混家属。

但就算是一堆废铁了,车还是会还给你。如果你还要,记得付拖车费。

 

所以照这么说,帐号=车,应该还你罗?

这里的最大区别,其实恰恰就在于帐号不等于车。

你对某辆车拥有『所有权』,意味着对这车拥有一切处置、支配的权力,改了拆了砸了埋了卖了,都行。除非法律明确禁止,比如做成汽车炸弹。但退一万步说,法律也只是禁止你危害公共安全,并不禁止你对汽车进行改装,哪怕是改造成炸弹。

实物商品的复制需要和原型等量多的材料,还需要同等的加工和运输,凝聚了诸多人类劳动,因而我们可以将每一辆车看作独立物品,并单独分配所有权。但软件不同,软件存在一个实物没有的特点,『零成本复制』。无论是代码也好,小说也好,本质上都只是一段特定的排列顺序。软件作者,小说也好,所做的工作本质是排出这段序列而已。排列是困难的,排出来了,接触到的人想要照着再排一次,却毫不费力。

为了对抗这种情况,人们发明了版权。一旦某个序列排好,作者就可以宣称对这样一段序列有所有权。全世界任何一个地方,只要出现相同的序列,作者就拥有所有权,这就是版权的本质。实物的『复制』有成本,所以所有权可以分配到物。序列的复制无成本,则所有权索性不可分割,全部属于创造者。

而客人购买的,是『接触、阅读或者使用这段序列』的权利。说人话,就是买了软件的使用权,或者书本的阅读权。对于书籍而言,作者把『一段排列好的文字』通过卖实体 / 电子书的渠道,展现在你面前。展现的期限通常都是永久的,但也存在『租书』这种有时限的情况。软件同理,你购买的是限时或者永久使用这段代码的权利。

因为所有权永远是作者的,所以『复制』作为对原型的一种处置,自然也只有作者拥有这一权利。这样就从法理上,确定了未经作者许可的『复制』(也就是盗版)是侵犯作者权力的。同时,尽管在绝大多数情况下使用时长是永久的,但购买使用权本身更像是一种『租赁』。你花钱在某网吧办了『牛逼会员』,终身免费上网,也终归只是一种特殊的包时上网,并非就拥有网吧了。

 

回到守望这事上。你花 198/328 购买的,首先并不是软件的『所有权』。如果你对守望有了『所有权』,则暴雪网易反过来需要向你交纳使用费了,这显然不成立。没有所有权,就排除了『任意处置』的权利。顾客购买的并非所有权,则如何使用,需要根据买卖双方的约定执行。

你把钱交给暴雪,暴雪允许你复制它的客户端,连上它架的服务器,获得愉悦。所以你购买的是『使用名为守望的这段代码获得娱乐』的权利。时长名义上是『永久』,实际上是暴雪公司的寿命。服务器本质上也只是另一段代码,客户端和服务端代码一起,才能整个正常运行起来。

讲到这里,就涉及到核心问题了:盗号开挂该不该封?

暴雪拥有守望的『所有权』,并分割出了很多份不同的『使用权』,一个客人通常会购买一份使用权,但真想要购买多份也可以(小号)。每一份使用权都在顾客和暴雪达成约定后获得,约定内容包括:

  • 支付一定的金钱(就是花钱买)。
  • 为客人准备一份使用权,并准备相应的服务资源。(例如每卖出一千份多开一组服务器)。
  • 约定这份使用权的帐号密码,包括密保等,通常由客人自行完成(注册帐号)。
  • 若干条使用权的限制(也就是用户协议),通常包括不可共享、反编译等,当然也包括不可开挂。

在这一逻辑下,帐号密码只是链接暴雪和玩家的一个环节。它本身并不是出售的使用权的一部分,而仅仅是用来和玩家约定,谁可以使用这份『使用权』而已。也就是说:

  • 对于玩家,主观感觉可能是:花了 198 / 328,买了一个游戏的使用权,只有我能用,别人用不算。
  • 对于暴雪,客观的逻辑则是:某一份特定的『使用权』已经售出。自己准备好了相应的服务资源,并和客人约定了使用这份资源的口令。当然,口令可以由双方约定得很复杂(安全令/异地IP限制),并且暴雪也建议约定得足够复杂(绑安全令送 WOW 宠物)。但用户依然可以约定得很简单。

对于暴雪而言,确认身份的唯一方法就是口令,只有拥有口令才能获得『使用权』,只要拥有口令就能拥有『使用权』。而惩罚也是针对『使用权』在行使过程中的不当行为作出的,根据情节轻重,会暂停提供使用权,几天到永久不等。也就是说,对于暴雪而言,只是针对每一份『使用权』的不当行为,削减该份『使用权』的时长罢了。

由于事先约定了口令,自然拥有该口令的连接,必须可以访问该份『使用权』。盗号者当然犯了冒用他人身份的罪,然而之所以说“冒用”,正是因为只有当事人才知道是假的,而对于善意的第三方而言,这个身份是正确有效的。

一个有效『使用权』做出了不当行为,于是削减该份『使用权』的时间。

一个有效『使用权』开了外挂,于是削减该份『使用权』所有剩余时间(即封禁)。

由冒用身份而对事主造成的损失,由冒用身份的人负责。假若在核对口令检查身份时服务方有疏忽,则服务方也有责任。也就是说,如果你不但可以证明是有人盗用你的帐号开的挂,并且还能证明暴雪在验证帐号密码上有疏忽(比如明明开了将军令没却没验证 / 错误的用户名密码也可以登录),那么确实有理由解封。但假若在验证帐号密码上没有疏忽,则你的损失应当向冒用身份的人去追索,而与服务方无关。

 

以上只是逻辑上而言的,但在现实中其实还有更强大的约束存在——购买时的事前约定,也就是用户协议。当用户协议与法律不冲突时,该协议无论从人伦视角来看多么过份,依然是受法律保护的有效协议。因为这是最顶层的“事前约定”。至于怎么看用户协议,就不用多说了。

 

3 逗还是 4 逗?

为方便位数较长的数字,我们经常会加上一些逗号或者故意在若干位数之间加大间隙以方便阅读。比如:

8326cffc1e178a82fd70f340f303738da877e886

100万亿元津巴布韦币

这里的 100 万亿尽管没有直接加逗号『,』,但在每三位数字之间加大了间隙,所以如果学过英语,就可以比较方便地数出  Thousand, Million, Billion, Trillion 四级单位,所以这张钱是 One hundred trillion dollars。

但这是使用英语度量衡的国家,他们的语言以千为一级,所以以 3 位一级标比较方便,而中文是以 4 位一级的,这意味着在数数量级单位时,我们的思维变成了『千,百万,十亿,万亿』,于是得到『一百万亿』这个表达。

在汉语语系下,这个划分并不方便。直观的显然应该是 4 位一级,也就是『万,亿,万亿,兆,…… 』下去。比如:

三位一级:100,000,000,000,000

四位一级:100,0000,0000,0000

看起来显然是 4 位一级更直观。

接下来又到了是民族还是世界的争论,我认为在这种鸡毛蒜皮的『3 逗还是 4 逗』问题上,以下的见解是可以达成一致的:

  1. 这个标记本来就是辅助阅读用的小改进。除了它应当承担的用途外, 不承担别的用途。
  2. 无论 3 逗还是 4 逗,即使不熟悉的人,阅读起来也并不会造成障碍。本来这就是个辅助阅读的事情,辅助不了就当它不存在。
  3. 对于相应语言体系下的人,只有熟悉的分法才有较好的辅助作用。

所以我的结论是,如果作者和可以预知到的读者群体,都更熟悉 4 逗的话,那么相应的文字应该以 4 逗优先。反之 3 逗优先。假如某种文化是 5 位一个数量级的话,他们的出版物显然应该以 5 逗优先。如果作者与读者群的习惯不一致并且可以预期这种不一致的话,我觉得应该以读者优先。如果不可预知,那就是看作者个人习惯了。

于是,在我的博客和我可能的译作(英译中)的相关文字里,我都会尽量以 4 位为大数划分数量级。而若写的是英文博客的话,则会以 3 位划分。

说白了这就是个习惯问题,中文环境中并不需要强求以 3 位划分为准,4 位更习惯就用 4 位吧。

据我所知日语也是 4 位一级单位的,那么想必中国周边受中华文化影响的应该都是 4 位,大概。

 

Excel 自动打印表格份数/序号

#Update:

改进了。现在的样式如下:

0

第一步,先做一张报销单:

从自动化的角度来说,尽量采用公式帮助计算、限定单元格可输入的内容、以及设置单元格格式。在这张单据里,编号单元格为 K1

公式:

对于报销单而言,使用 =SUM() 和 =VLOOKUP() 通常就足够了,至多再加个 =SUMIF()、=COUNTIF() 就足以做出挺复杂的报销单了。

单元格格式:

选定单元格后 『右键→设置单元格格式』。标准的可以选择第三类货币格式,复杂的可以自行定义格式,使用#代表一个数位,使用0代表『当这个数位是最高位但为0时依然显示』。

step1-2

限定填充序列:

选定单元格后菜单栏选择『 数据→数据验证→数据验证』。允许序列,来源直接写入需要的内容,用英文逗号分隔。

step1-3

第二步,添加 Excel 的开发工具菜单:

依次点击菜单上的 『文件→选项→(跳出 Excel 选项窗口)→自定义功能区→☑开发工具』打钩。

step2

第三步,设置打印宏:

点击菜单上的 『开发工具→Visual Basic』,打开 VBA 面板,左侧双击 『ThisWorkbook』,把以下代码粘贴到出现的窗口内,然后关闭窗口

注意 K1 为这篇文章中的编号位置,其它表单需要相应调整。

step3

第四步,添加宏按钮:

点击『开发工具→插入→按钮(窗体按钮)』。

step4

然后用鼠标在 Excel 空白处拖出一个方块,当松开鼠标时,会自动跳出『指定宏』窗口,选择窗口内的『ThisWorkbook.PrintWithNumber』,然后确定。

step4-2

右键点击该按钮,选择『编辑文字』,修改为『打印报销单』。

step4-3

第五步,设置打印区域:

这一步是为了防止把按钮本身也打印出来。

全选需要打印的区域,选择菜单 『页面布局→打印区域→设置打印区域』。

step5

第六步,另存为 xlsm:

由于使用了 vba,必须把文件存为 xlsm 格式。(启用宏的 Excel 格式)

完工。


今天接到一个小任务,寥寥一记。

在 Excel 中,常见的一种需求是打印带份数号码的各种表单,例如报销单、外出单等。通常财务都会提供模板给员工自行填写,再由财务按入帐顺序统一写上序号。但当某人一次性要写几十份,或者说类似的需求,需要一次性打印 N 份时,有没有办法让打印的表格上自动带上序号?

解决办法需要依赖 Excel 中的宏程序,在 Excel 中按 Alt+F11 可以直接打开宏编辑器。或需要先通过『视图』→『宏』→『录制宏』,再经由编辑宏的办法来打开。

核心宏程序如下,一目了然:

E1 为需要填序号的单元格。程序先定义一个变量用来作为页码,然后不断用它替换指定单元格中的值,每替换一次就打印一张。这一方法硬要说有什么缺点的话,大概也就是打印任务数比较多,可能在几千份时会占用不少内存。

更完整的模板还需要在界面上做个按钮和两个输入框,以便让完全没有宏能力的财务也能定义起始和结束页码并打印。但今天这需求仅仅是帮助打印而不是做个新模版,所以这任务也就完成了不再搞复杂了。

样例下载 模板-日常费用报销表

死对你也许是一种震慑,但未必对所有人都是

开宗明义:

一、死亡对你也许是一种震慑,但对别人不一定是。

二、贩卖人口在目前的量刑下已是重罪。

三、法律适罪量刑,并不是保护罪犯,而是在保护受害者不遭受更严重的伤害。

四,贩卖儿童的特殊之处,在于『孩子还活着』这点上,人贩和儿童父母的利益一致。这很别扭,但正是最能承载『找回孩子』这一希望的。如果一律死刑,那么孩子几乎是不可能找回了。

 


 

突然之间被鼓吹『拐卖儿童一律死刑』的给刷屏了。

在我的朋友圈里,要求拐卖儿童一律死刑的,一半是有孩子的,另一半是没孩子的。怎么说呢,有孩子的,多少可以理解爱子之情。没孩子还这样的,呵呵。善良得久了,脑子里只剩水和面了。

『今亡亦死,举大义亦死,等死,死国可乎?』

『民不畏死,奈何以死惧之?』

归根结底,在于你们安生日子过久了,就以为死刑是种多么大的震慑,但事实上未必。死对你也许是一种震慑,但未必对所有人都是。为什么叫『亡命之徒』,正是因为那些人并不把死亡当成是件无限巨大的震慑,而只不过是利益天平上可以衡量的一种损失而已。而法律,也并不像你想像的那样,是人人遵守违者天罚的无上神圣规则。其实在我看来,法律恰恰是与这些突破底限的罪犯之间的讨价还价而已。

『如果你做出怎样的行为,就可能会面对怎样的惩罚,』,这是法律的前半句,而更关键的是后关句,『如果你不做出怎样的行为,就不会有怎样的惩罚。

这才是法律的制定和执行中,更为根本和重要的一环,如果说前半句是在震慑犯罪者,那么后半句则是在拯救受害者。

如果抢劫就是死刑,那么确实不会再有单纯的抢劫了,只是必然会有大量的受害人死亡。因为受害人活着,只会对抢劫犯不利。如果强奸一律判处死刑了,那么所有的强奸都会变成奸杀。如果贪污受贿一律死刑,那么所有的官吏一但开口,就会迅速巨贪并转移财产。如果驾车撞人一律死刑,那么一定会造成大量的撞人拖曳血肉模糊。如果盗版一律死刑,……哦,这时大概又会是同一帮人跳出来说,凭啥死刑。

适罪量刑,是为了让罪犯每施加更多的伤害,就需要承担更重的刑罚,这样,当罪犯无论达到或者不达到目的时,都会出于利益考虑,不向受害者施加更重的伤害。

且问,如果你的孩子正在人贩手上,警察正在追捕,并且很有希望抓住了。你是希望犯人逃跑无望束手就擒呢,还是挺而走险杀了孩子自己再轻身跑路呢?正常来说,你都希望无论犯人怎样都行,自己的孩子能平安归来吧。然而你支持的却是『一律死刑』,你觉得犯人会乖乖交人?还是会友善地扔下孩子自己跑路?

你未免太过自以为是了吧。

再说一遍,适度量刑,是在保护受害者不遭受更严重的伤害。

再说两遍,适度量刑,是在保护受害者不遭受更严重的伤害。

再说三遍,适度量刑,是在保护受害者不遭受更严重的伤害。

那么,你为什么在拐卖,甚至是购买儿童上,就支持『一律死刑』了呢?除了伪善和杀人欲,我没看见别的。

我真心觉得,之前无论转发多么脑残的东西,雾霾也好,炸鸡也罢,顶多是为那些认真工作的人平添一些麻烦,或者伤害一下他们的感情,虽然难受,但不至于伤筋动骨。

但这次,你们这帮脑残,真的是想杀人啊。

一,在转发这个观点时,你是否查阅过现行法律体系下的量刑尺度?是否已经存在死刑的可能性。事实上据我所知,拐卖妇女儿童情节严重的是确实可以处以死刑的。注意,是情节严重。

二,你鼓吹过一律死刑,是否考虑过可能会造成的其它后果,比如犯人为了逃避罪责,直接把小孩弄死再逃跑的情况?

三,你如何确定以死刑震慑,就会让拐卖的犯罪率下降。如何确保不因为刑罚上升,导致贩卖小孩的价格升高,有更多的人挺而走险?同时因为一律死刑的存在,而造成受害人更严重的伤害。

这些事情,无法预测,也没法实验。

从更广阔的情况来看,『一律死刑』是有类似的现实映证的。在我国,运输、贩卖海洛因等强成瘾性毒品,超过 50 克,一律死刑。然后,你再自己去查查辑毒人员为此付出的巨大代价,他们的家人为此付出的代价。但区别在于,毒品的受害人是间接受害人,并不在犯罪过程中出现,不会有毒贩『残忍杀害抛弃自己手上的毒品』,无论打击贩毒多严重,都不会造成毒品受害者更大的伤害。但贩卖儿童却真的可能存在更严重的恶行,因为儿童是在人贩手中的。

事实上贩卖儿童最特殊的恰恰是,孩子活着才有利润,死了就什么都没了。在『孩子活着』这点上,人贩和孩子父母是利益一致的。这很别扭,但恰恰是这点,是最大的希望,也是我最反感『一律死刑』并叱之如此的原因。死刑只会割断最后的希望,把孩子的性命完全吊在人贩本已无几的同情心上,并让遇拐父母位陷于万劫不复之地。

我们应该做的,是改善儿童找回的渠道,建立更好的防拐防丢体系,改进儿童领养的现状,甚至邪恶地说,还可以『创造供给』,从那些虐待亲生子女的父母身边剥夺他们的抚养权,然后交给那些想抚养孩子的父母。

这才是正道。

而当法律失去了『更重的犯罪,会有更严重的惩罚』的惩罚能力,如何阻止犯罪者的罪行升级?指望死刑解决一切问题么?指望死刑阻止犯罪么?横竖是死,发什么善心?

死刑只会让人贩开出更高的价格,只会引来更多的亡命之徒拐带儿童,只会造成被拐卖的儿童非卖即死的惨况。

还是那句话,本来他们就是把自己的性命当作成本,价格更高只能让他们更疯狂。

 


 

观点:

一,只有死刑才能遏制贩卖儿童。

这条不解释了,社会运行自有规律,每个人都会选择最自己最有利的办法,键盘侠们也是,吹牛显正义,道德占高地,也不过是对自己的形象最有利罢了,哪管他人死活。

第二,你不是被贩卖儿童的家长,根本无法体会那种痛苦。

请问转发者们,你们是贩卖儿童的家长吗?我不想在这点上讨论。更可怕的是,还有真的孩子父亲评论说,『因为我不知道我孩子是生是死,如果被拐,相比于我无尽的搜索与痛苦,我宁可他死了』。

第三,失去孩子对家长来说比杀了他们还痛苦,所以一定要判死刑。

我不想在痛苦的程度上作辩解,这并无意义。

重点在于,以这种理由判断贩卖者应该施加何种刑法无疑是将孩子当作父母的一种私人财产,这种私人财产的剥夺对父母产生的伤害程度的大小决定了刑法的轻重。

这是荒诞的逻辑,因为父母对孩子是有监护权,但不是谁完全属于谁、谁是谁的私人财产的关系。人贩贩卖孩子,应以对孩子造成的伤害为主要量刑依据,这是我的看法。不然,孩子父母的痛苦,无疑也会造成父母的亲朋的痛苦,那么这份痛苦也要向罪犯赎回吗?

如果讨论的是精神伤害的罪名,通常也只关注直接伤害的那部分,而『通过对亲密关系或者试图建立的亲密关系进行打击从而伤害到某一方的感情』这种情况是难以处理的,孩子青春期跟父母闹别扭,是不是也让父母心如刀割,是不是也应该把孩子抓起来毙了?追求女神,女神爱理不理,是不是也应该把女神抓起来毙了。我明天就去找二马,他们不理我就让国家把他们毙了。

当然这是一个过于敏感话题,从政治正确性上说,如果父母不在这件事情上『比死还痛苦』的话,就不足以说明他们对于孩子的爱。然而就我个人看来,这种爱与仇恨无异了。这种态度甚至反映出某种现状,太将情感和希望寄托在孩子身上了,这种爱并不包含无私、尊重和理解,往往只是一种对家庭中所有人的负担。

 

最后,还是祝愿天下太平,祝愿务实理性的人,做事能不受傻逼的干扰,祝愿自以为好心,实际办坏事的人,始终办不成事,即使这恐怕很难。

关于好奇、兴趣与爱好

我总是觉得,『好奇』是你愿意去花时间寻找免费信息,仔细阅读,去了解它的真实内容;『兴趣』是西式糕点培训班。你愿意支付可以承担的费用,获得免费信息无法给予的进一步提升;『爱好』是一夜无眠后泛着倦意淡淡的笑容。你愿意牺牲生活中的其它东西,但仍乐在其中。

 

你想知道美味的饭菜是怎么做的,你会挑选自己喜欢的若干个菜,去网上搜索免费食谱。你会拿纸笔把菜谱整理成购物清单,并找邻居老太太打听农贸市场的位置,去市场精挑细选,但忘了讨价还价于是被坑了一大波。然后你回来又去超市买了锅碗瓢盆油盐酱醋,回家看着一堆材料兴致勃勃照着菜谱做到了最后。

可能焦了,可能没熟,可能你最后还是点了外卖,或者是忍着说服自己『这也挺好吃的』强咽下去。你可能更有兴致迫不及想明天再做一遍,或者意味索然从此打算仰仗外卖终身。

但你最初的从未尝试,到最后完成了整个过程。你至少了解了真相,自己体会了过程和结果。

这是好奇。

 

你听过几次免费的钢琴课,看过免费的视频教程,你知道四分音节,你刚学了五线谱。尽管不熟练,但至少能在 88 键上找到那个音符的位置。你找了很多材料读,也有不少迷惑得不到解答,于是你愿意去参加一个培训班,你需要找老师解答一些疑惑,你需要专业的人帮你听听,确认你的水平,告诉你下一步的学习方向。

你可能能进一步提升,也有可能仍然迷茫。但是至少你知道真相,知道横亘在面前的困难,但仍然,或者抱着随缘的心态去学习提升,或者跃跃欲试想更升一步。

你愿意接受重复练习享受水平的提升,你愿意为此花费时间与金钱。

这是兴趣。

 

你喜欢轮滑,无论是短途、长程、花式、极限,你都愿意试一试。你越过了最初的好奇与兴趣的阶段,你已投入了很多,把水平提升到了一个周围人群中很高的层次。你必须参加专门的爱好者组织,才能找到与你水平相当的人。你越过了迷茫期,找到了学习与提升的路径。这路无限地长,但你知道是正确的路,只取决于你能走多久。

或者幸运地在学业中找到方向,或者是从好奇中发掘出宝藏,总之你找到了一样你觉得值得投入,甚至可以不计回报地投入的事物。你愿意牺牲生活中的其它东西,不止是金钱与时间,仅仅是为了保证你在这样事物上能有令自己满意的投入。能让你享受的是练习与提高的过程,而能让你兴奋不已的是你有创造的能力。

唯一能限制你继续提升的,也许真的只有天赋的上限。即使如此,你也并不视之为不幸,而是当作努力的目标。

这是爱好。

 

所以在我看来,很多人的生活中,其实连好奇都没有,更别提兴趣与爱好。

等我有空了,来做个“就选它吧”网站

目录性质的软件推荐目录。网站目标是:“一个门类,只推一个软件,不给你选择”。

纯手工编辑,美工弄好看一点,弄个邮箱然后装高冷只收不回。如果数量多了,数据库还是得要一份的。

怎么推荐呢?

当你需要一个软件实现某个功能时,我只推荐一项。

比如 OCR 识别,就选 ABBYY 了,不需要考虑其它的;

图像处理,就选 Photoshop 了,我不管你是怎么弄到 Photoshop,反正我就推荐它了。大而全,功能都能实现,其它都是小意思;

自拍就美图秀秀了;

邮件,嘛,Outlook 和 Foxmail 都挺好的,但如果只推荐一项,我就推荐 Foxmail 了;

家谱软件,我看的最好的就是 Mac 下的 FamilyTree,再找找 Windows 下有什么好软件;

架博客,就用 WordPress 吧,功能较全,架设方便,甚至也有 VPS+Wordpress+域名 的打包解决方案。什么 Ghost、PivotX、Jekyll 都让 Geek 们自己折腾去;

等等。

可以理解作软件推荐版的好 123。

选择原则大概就是功能较全,或者效果最好。以不选择为前提,给出的就更倾向于较多功能的东西。效果好,指核心功能简单易用,上手顺利。

原因有二:

一、作为一个强迫症患者,我在需要软件解决一个问题时,往往会搜索该需求下的所有软件全部都试一遍,然后挑出我认为最舒适的一个软件,并为自己精妙的选择骄傲不已。后来发现,为了体验每一个软件,消耗掉的时间往往比实际使用软件能节约下来的时间更多。

比如我尝试过至少十来款记账软件,或者是主打简洁,或者是主打同步,但用来用去实足半年,真正的记帐这事却每次换 app 都重来一遍。最后买了个随手记,就不再去关心别的软件了,管它有多少功能,反正我就按天记个帐就行。

作为一个产品经理,去尝试很多软件,可以说是职业素养的一部分。但作为一个普通人,生活还是应当节省时间去做爱做的事情的。

二、实际工作中经常扮演救火兵的角色,有时也需要去解决并不擅长的问题,使用甚至没有听说过的软件的。这种时候有一个合适的推荐就很重要了。

所以这是一个“推己及人”的个人项目,虽然我一直说产品经理不是正常人,产品经理的自身需要往往不是正常需求。但在这个项目上,还是可以尝试一下普通人的角度看待问题的。

所以你看,再怎么着,这也是一份主观的选单,反映的倒不一定是我的个人口味,而更像是通过一份软件的表单,反过来表达我在产品经理这个身份上的选择直觉。

先记一笔,寒假大概就有时间去设计了。

谈谈保险

昨天下午,某银行信用卡给我打了半小时电话,推销他们的一项保险业务。一如所有的推销电话一样,最后都只能强行挂机,没办法礼貌地互相结束通话,唉,可怜那业务员。(ノへ ̄、)

这个业务很简单,每月交差不多 140来块钱,直接从信用卡上扣,全年 12 期,总长 5 年,可提前结束。价格据说是根据我的年龄、职业等测算出来的,每个人还不一样。小年青们会便宜一点,老头子们更贵一点。然后收益是什么呢,在业务员啰啰嗦嗦不断夸耀优点的情况下,我总结出来以下几项:

  1. 如果是疾病性住院,则只要住院,无视原因无理由赔付每天 ¥200,提供医院帐单复印件、身份证复印件、信用卡复印件即可。有 500 天上限。
  2. 如果是外伤性住院,则只要住院,无视原因无理由赔付每天 ¥400,提供医院帐单复印件、身份证复印件、信用卡复印件即可。有 500 天上限。
  3. 如果一年无赔付,则反还 25%。
  4. 小病小灾,不住院不算保险范围。

其实就是个无理由住院额外险,无论是天上掉流星砸到脚,或者被加班逼到内出血,反正只要躺医院了,就按价赔偿。……不知道自残算不算。( ̄△ ̄;)

然后我拒了。在电话录音说您是否确认现在通过语音确认开通时及时地拒了。

嗯,这个业务本身其实还可以,如果是我玩轮滑狂热的年代我还真就说不定买了,只不过在现在的境况下,核算了一下成本,基于我的逻辑,最后还是回绝掉了。

首先,其实要知道,保险其实永远是越买越亏的。从逻辑上说,保险是以集合众人的付出,给一些人的损失兜底。如果保险运营不需要成本,理论上对于一个人来说,整体的付出大约等于各种损失乘以机率以后的期望值。但实际上,考虑到保险还要支付销售提成、运营成本、赔付审核、股东分红、物业建设等等,对于一个保险客户而言,单纯考虑支出和损失期望,是肯定不合算的。只有考虑到对损失赋以一个额外的权重,也就是考虑到 “损失超出了你的承受能力” 的情况时,购买保险才是一个合算的行为。

换句通俗的话说,就是我明知道不出意外或者出点小意外都是亏的,出大意外,从概率乘以损失来说我还是亏的,但因为我实在承受不起大损失,万一呢?所以还是买点保险用小损失代替吧。比如汽车保险,其实出事的机率,乘以出事要赔的钱,整体而言还是比汽车保费低,但因为真要出点什么事几十万的钱还是会对个人造成极大的甚至是不能承受的打击,那就还是买吧。

我们举另外一个极端的例子。大家在生活中经常会丢失钢磞儿,几毛一块的,积累下来也有不少,比如每年少则十块,多则一百。现在我推出一项保险,“钢磞丢失险”,每月交五块钱,只要丢钢磞就给你等额赔付。假如不考虑实际执行难度,就假设一点不麻烦,说赔就赔,也没有骗保,你会买么?

如果你说,不买,丢了就丢了吧,说不定丢的还没保险费多,只丢钢磞再多也丢不成穷光蛋的。相信大家都完全能理解这种想法。

事实上,大部分人从保险得到的赔付都是不及保费支出的。也就是说,丢的确实不及保费多的。你每月可能丢一个,可能丢五个,可能丢十个,但参保了就相当于稳定丢五个了。全年一统计,你最多的一个月丢了 8 个,有两个月没丢,大多丢三四个,你就发现自己明显赔了。明年就不必参保了。

但假如我们加一个额外限制,『在丢到某一数量以后,这个巨大损失个人承担不了』。比如开开国国王规定如果国民某个月丢硬币损失超过 10 块要杀头。那显然这份保险就变成了买命钱了,五块?太便宜了。

再举一个极端例子。如果你的全部收入全部交了保险,不管你当前交了多少,付给你的保费永远是固定值。过一两年你肯定就会发现亏大了,还不如自己存钱合算。你觉得呢?

也就是说,保险主要针对的是你自己不能承受的重大损失,对于一些承受无压力的小损失,完全可以考虑自行承担,并不一定需要保险,当然也不是不可以考虑,还是看你的承受能力和损失厌恶度。

所以土豪们是不需要常规保险的。是嘛,汽车三方险最多也就到一百万,对于豪车还是杯水车薪,基本都靠土豪自己兜。

其次,这个险号称最长可达 500 天,20 万上限。其实吧……那是住院啊,谁能住院 500 天啊。就算 5 年 500 天,那也是每年住院三个多月啊……这种情况下,医疗保险、扩展医疗保险,甚至是亲朋好友都比这个保险靠谱。当然,两险是不冲突可以同时用的,但归根结底,这个保险反而更像是一种锦上添花而不是真正可以兜底保障的险种。在收益上其实比不上按比例赔付的常规保险类。

那么如何核算支付与收益呢?很简单,每月不是扣 140 来块钱么?全年 1700 块,每年需要住 5-8 天院才能收回保费。这就是一个比较合适的可比较尺度了,就算出了轻伤车祸,在北京这种常规情况下也很难住够五天院,大多都会让你回家休养。而如果重伤到需要超过 8 天,无差别的每天 200-400 也是杯水车薪,我需要更强的保险覆盖。

只有像我学生时代那样,经常没事出个小伤,进医院擦个药打个板,医生也好说话,总能腾出闲天住院的那种状态,才比较合算。而这个保险又是要审核职业、收入等等因素的,想找他们的 “优质客户”,估计在我学生年代就是劣质客户吧。如果我是他们的“优质客户”,那么他们基本就不是我的“优质保险”。

在保险收益预估时,不能以最高保障额度计算,而是应该以个人实际和保险本身赔付方式决定的“常规”意外预期计算。保险公司算得比你精得多,但只要你从“可收回保费所需要的意外程度”进行反向计算,就比较容易得到可感知可衡量的收益标准了。

再次,当然还有心理上的因素,人们对小概率事件的估计总是偏离常规的,我也是。唯一常见例外的也就是车险了,人们还是很认可驾车意外的概率的。

人们对幸运的小概率总是高估,要不然也没有人大把大把地买彩票了。——你可以认为买小额是图个别的心理幸福感之类的,可幸福感不也是心理因素么?

而对厄运的小概率却偏向于低估,就好比真的计算车祸概率,或大或小几十人里也能摊上一个,相当于一个班级、一个小公司、一个小团体中间总能遇上一项,但每个人都不认为是自己。我也是。作为理性青年,在作必要决策时会考虑到这种情况,而在改善性决策时,这种心理就又会占上风了。就好比我如果需要自费购买人生意外、大病医疗院,和需要自费购买这种改善性医疗险,在决策时的“意外概率”是不一样的……

最后,我非常讨厌这种持续性延后性的扣款,利用的又是人们的遗忘心理和小额支付决策时的心理偏差。个人喜恶,冷暖自知。

,在这里还有一个奇葩的部分,就是反还 25%。一开始我也被绕进去了。要注意这个反还只有在你不产生保费的情况下会出现,被推销员包装成了“实际保费仅 110几元”。

别傻了,如果不出意外没有保险赔偿,多少钱都是白付给保险公司的,保险成本还是应该按出事的计算。换句话说,这个只有银行在核算净收入时有影响,对你核算出意外时的成本与收益是完全没有任何关系的。因为这项条款只有在“不出意外”的情况下才生效,而“不出意外”你拿不到赔付,多少钱都是白送给银行。

而且反过来想想,如果真出了事要住一两天院,你如果去索保,虽然能拿到 ¥200-400,却失去了返还部分近 ¥400 块。这反而会导致你即使真的入院,在两天以内的也不会去找银行赔付,银行照样是净赚。这还真不如直接把保费降一点好呢。这跟车险动态调整保费还不一样,车险意外发生的概率和个人的驾车行为安全意识有很大相关性,而对于住院而言,个人可控制的因素则少很多。另一方面,车险是下一年费用变化,也不涉及历史费用的返还,并且各公司还通用。两者的差距巨大,从这个策略中我更多地看见的是恶劣的算计,而不是对客户的善意。

其实话说回来,如果真的到了个人不能承受的意外,通常一个家庭也就完了。目前看见的保险制度,绝大部分也都有个吝啬的上限,或者有严苛的赔付标准。做得到锦上添花,却做不到雪中送炭。只有市场化的车险好点,医疗保险也只能说呵呵。农业险,包括农业期货,以我外行的角度看来似乎也不错。只是不知道农民兄弟们,身在此间多有经验,是会说哈哈,还是呵呵。

今天刚看了知乎一篇文章,里面是从业人员吐槽人民没有保险意识。

我呸。

少几个推销,少几份算计,少几段夸张措辞,多来点真货。

Adobe 研发中心退出中国

Adobe 公司宣布研发部门撤离中国,仅保留销售部门。不过这篇写的不是新闻评论。新闻只是个引子,想写的……可以认为是评论的评论吧。

老有人以 Adobe 各系东西卖得太贵为借口,总说如果能减个零或者减两个零就好了。

……别傻了,好像卖几十块他们就真会买似的。

定价策略这东西,很复杂,但也很简单。简单在于,最后的收益无非是售价乘以销量减掉成本,让收益最大化就行了。而复杂则在于,定价到底在多大程度上会影响销量,进而影响到最大收益,则是要靠商业智慧与决断的。Adobe 的全系列产品不是免费(Flash、Adobe Reader、Creative Suite 2),就是死贵,看起来似乎不合理,但实际上这个定价差不多已经是最优的策略了。

我们通常说的薄利多销,其实并不一定正确 。这句话有一个先验的假设,就是薄利会引发销量的成倍增加。这在传统实物生产中,在某些场景下可能是正确的。在这个成语产生的年代,大部分商品都是小规模作坊式生产的生活必须品。这使得第一对顾客而言,生活必需品是一定需要经常购买的,自然会在过得去的情况下选择更便宜的。第二是对具体的某个商家而言,市场是近乎无穷大的,更便宜意味着有更多顾客会选择他家的商品,只要产量跟得上,他总能卖出去。第三是,更大的产量意味着基于规模效应,单件成本也更低,依然可以腾出足够的利润空间。

也就是在个人作坊向产业规模化集约化发生的过程中,某个商家通过降低售价,一方面扩展自己的市场范围,一方面惠福顾客。这确实是经济学意义上,也是生活意义上的社会改善。……除了那些被竞争挤倒破产的其它商家以外。

但这几点在 Adobe 身上都不存在。

首先,其实对大部分人而言,Adobe 系列软件都称不上是必须品级别的软件,它的市场并没有大家想像的那么大,相反,是个很小的市场。

并不是因为你在家用了盗版 Photoshop,你就也能被计算为市场份额之一。比如假如苹果手机也能盗版,五块一个,那么大街上肯定差不多也是人人都拿着肾6+,可你能就此认为苹果的市场是 99.99% 么?

不是的,因为定价在那里,苹果的市场就是 3 成左右,这是他利润最大化的定价方式。再降,它的市场就算扩大,也比较有限,还不如降价造成已占市场收入减少的损益大。Adobe 软件实际上是“生产力软件”,简单地说,是拿来做生产的工具之一。影楼、设计所、出版业,这些才是 Adobe 家软件瞄准的市场。对于这些市场的用户而言,几乎是固定而没有选择的。反过来就是说,Adobe 的市场真没有大家想像的那么大,那些鼓吹如果便宜就买的,最后只有两种选择,用盗版,或者不用。他们是不会成为 Adobe 家正版用户的。对真正的市场用户来说,Adobe 家的软件真不贵,几千块钱,还没一个相机镜头贵,没一次书籍制版费贵,没一次比稿的路费贵,真心不贵的。

其次,它已经是市场上的王者了,占据了几乎所有的中高端出版软件市场,实际上并不存在可以被挤倒的“其它商家”以让他成倍地扩大市场份额。

有句话是说,所有你觉得 Photoshop 不好用的功能,都是因为你不会用。——这句话依然阐述的是同一个事实:大部分人并不需要 Photoshop 这样级别的软件,没一点臂力,牛刀使起来还不如指甲刀。而另一个事实则是,在针对的市场里 Adobe 则是毫无疑问的王者,他已经把能拿到的市场差不多都拿到了。

最后,软件成本几乎完全是固定成本,少量边际成本也主要出在营销费用、光盘、下载带宽这类上面。也就是说,单纯的销量带不来规模化导致的成本节约。软件的特殊就在于,它的利润完全就等于销量乘以单份售价,那么在市场容量固定,市场份额近乎百分百的情况下,降低售价只能导致更多的损失。你以为¥5000降到¥50,销量就能提升 100 倍?真要降到 ¥50,那帮人依然会抱怨说别的软件都是免费了,为什么 Adobe 要收费,然后依然用着他们的免费盗版。WPS 就是个活生生的例子,坚持到最后也只能靠免费广告流氓手段来推动。

额外一点,如果 Adobe 真在中国降价,你打算让别的国家市场如何推动?Adobe 是序列号授权,并不是云服务,几乎很难以国别定出悬殊的价格差。如果真这样,最后结果只会导致其它国家的用户通过互联网购买最便宜国家的序列号。只会导致 Adobe 的损失更大。现在它退出一个赚不到钱的国家,顶多通过不出对应的语言版本就可以解决(其实也解决不了,因为新加坡用的也是简体中文)。他也想推过云服务,估计也是想做差别定价(比如暴雪就给中国大陆单独架服务器单独定价,其它国家通过信用卡等方式差别定价),但显然正版用户们并不太接受。

无奈。

软件盗版已经是个老生长谈的话题了,而且观点已经趋向一致,即如果没有那么严重的盗版,中国的软件环境和互联网环境也不至于像现在这么恶劣。盗版伤害的不光是大型软件厂家,更是直接导致中国软件梯度被抹杀,没有了中小企业的生存空间。在这种情况下,依然有那么多人把 Adobe 给出的 “收益不及预期” 的原因,归罪到 Adobe 定价太贵上面,有时候真觉得刁民两字,用得不假。

 

题外话:即使 WPS 目前已经如此,我依然尊敬珠海 WPS 小组,稻壳儿是我在软件相关费用中第三大的一项,仅次于山口山和 App Store。

 

COS 交易酱的简易分词算法

http://cosjiaoyi.com 是个针对 cosplay 交易信息的搜索引擎,目前基本完成了对新浪微博特定信息的采集和入库,以及基于拼接 mysql 查询语句的搜索功能。

接下来还有很多要做的事情,包括扩展采集来源、改善垃圾信息过滤、优化前端等工作。不过今天先来讲一下打算做的自制分词算法。

对于动漫这一特定领域,很多常规的分词算法没有多大意义了。因为动漫圈存在大量的仅仅因为“好玩”而产生的各种昵称、诡称、简称。比如 “身陷” 指的是衣服的尺码,包括身高、三围等数据;比如 “穹妹” 指的是动画《缘之空》中的女主角兼主角他妹;比如 “面交” 当然是指当面交易的简称;比如 “炮萝” “秀萝” “叽萝” “咩萝” “丐萝” 都是网游剑网三里的职业人物角色的简称,哦,剑三又别称 “基三”,等等等等……还有一大现象是中英文数字合并成为一个词汇,比如 “PO主”。另外,又因为拼音输入法的原因,会出现“身限”=“身陷” 等现象。由于本来这些词汇也就是圈子生造词,也难以适用词汇纠错的方法。

wordsegment

普通分词算法结果

对于业务场景而言,这里面的很多词汇都是没有多大意义的。而“黑猫”、“弹丸”、“小天使”之类的词能成为高频词,也仅仅是因为它们更接近于“普通词汇”,可以被常规的分词算法认出来。而剑三当中的 “X萝” 系列,甚至剑三这个词汇本身,都因为被分词算法切分,而没有进入这个图表中。

当然,技术上来说,只要有合理的分词词库,辅以相应的参数调整,还是可以做出一套适用于动漫分词的,但考虑到分词算法往往有几百个核心词汇、几千个附加词汇,每个词汇还都有词性标注,想想就算了……

在之前没考虑过这个问题,一是因为没有实际的业务数据积累,其实也没有考虑到这个问题,经过一段时间的推广和数据积累,现在可以研究了。二是因为对于 mySQL 的 like %…% 语法,尽管效率不高,但在目前的场景下,也没有遭受到多少压力。三是因为,呃,忙,呃,之前没时间做,呃,之后其实也不一定有时间做……

那简易分词打算怎么做呢?

现阶段的核心目的,还是在尽可能减少时间的前提下,能正确理解用户输入的“穹妹旗袍” 是指 “穹妹”+“旗袍”,这两个词汇不一定需要放在一起,只要在同一条微博中出现即可。

  1. 只考虑对 QueryRequest 的 wordstring 进行处理,而不考虑入库数据。内部查询在没有遇到性能问题前,依然使用 like %…%。目的仅仅是为了正确理解用户输入的查询,不至于因为用户输入“剑三的炮萝” 因为无法整串匹配到而搜不到结果,这种情况下应当可以正确处理为“剑三”+“炮萝”
  2. 只分析已经记录在服务器的 SearchQuery 表,不考虑对正文文本的分析。
  3. 和普通分词一样,还是基于词汇表,以及替代词汇表。先考虑分词,再考虑戳憋字。
  4. 基于业务,其实有大量的词汇是不需要的,比如“小天使”、“帮扩”等。对于用户而言,进入到本网站,场景就是搜索需要的东西,因而都是以具像物名词为主。没人会在搜索框里填 “小天使”、“随便” 这类词汇。甚至 “二手” 这个词都基本不会出现。

所以简易规则如下,可以覆盖 99% 的实际需求,计算量很小。

  1. 先对 querystring 根据 devide-word-list 进行切分,devide-word-list 包括 “ ”(半角空格)、“ ”(全角空格)、“的”,可能还会添加。但注意,没有“和”。因为在动漫中,“和”字会经常作为成词字或者人物姓名字出现,不能定义为分隔符。“日和” “和服” 等。由于并不是真的基于语义的分词,所以无法判断是成词字还是分隔字,根据历史搜索统计,只有 4% 的“和”是分隔词,交给用户自己调整没有问题。由于 devide-word-list 的数据量非常少,添加也很谨慎,所以可以直接写进代码里。
  2. 对结果的 querystring[] 根据 known-word-list,切分为 已知词块 未知词块 的数组。known-word-list 的生成办法下述。
  3. 对于未知词块,根据词块长度,反复循环,进行简单切分,直到最细:
    • 词块中有英文串的,当英文串字母小于等于两个时,视为一个汉字,不切分。
    • 当英文串大于两个汉字的,视为一个词,对其前后切分,分为三段。
    • 当有数字现出时,视为一个词,对其前后切分,分为三段。
    • 对大于等于四字的词块,直接按两个字一词进行切分。(注意之前把1/2 个英文字母视作一个汉字,这里和中文等同视之)。
  4. 将结果的 querystring[] 数组,按每词之间 and 关系,对数据库进行查询。

比如:求黑子的篮球的火神大我红毛 私信po我。

  1. 变为 [求黑子,篮球,火神大我红毛,私信po我] (“的”和“空格”为分隔词)
  2. 变为 [求,黑子,篮球,火神大我红,毛,私信po我](“求”和“毛”为定义的已知词。
  3. 变为 [求,黑子,篮球,火神,大我,红,毛,私信,po我](“po”视为一个汉字)
  4. 实际 Search Request 即 求+黑子+篮球+火神+大我+红+毛+私信+po我

当然,通常没有这么长的需求,更多的是如下的:

剑三定国炮萝160包邮

  1. 还是 [剑三定国炮萝160包邮],因为没有分隔。
  2. [剑三,定国炮萝160,包邮],剑三和包邮应该会加作已知词。
  3. [剑三,定国炮萝,160,包邮],160 是数字单独成词。
  4. [剑三,定国,炮萝,160,包邮],“定国炮萝” 四字切分为两字两字。这就是最后的搜索请求词组了。

当然,在这种规则下,“雪露女武神”,会变成 “雪露”、“女武”、“神”,但又有什么关系呢,如果一个词汇真的必须是三字词,我使用两字“女武”+一字“神”,依然可以搜到库中的正确结果,这就足够了。

接下来说说怎么做已知词汇表。

  1. 人工整理,优先满足历史搜索词汇表。
  2. 暴力分词法:
    1. 直接把采集数据的正文部分全部提取。
    2. 把空格串、数字串、大于两字的英文串、符号串、链接地址、转发标志、“的” 等都视为分隔符替换掉,形成最初的文本块。
    3. 暴力地把所有文本块全部循环切分成两字一组,然后统计相同词汇并排序。注意是循环切分,比如“小天使”块应当切分成“小天”和“天使” 两部分。
    4. 再暴力地把所有文本块全部切分成三字一组,然后统计相同词汇并排序。
    5. 人工筛选排序最前的 1000 组词汇,足够了。

这个当然也有缺点,但在具体的场景下也已经够用了。动漫词汇尽管创意繁多,但基于交流之用,最常用的词汇还是排名比较靠前的。再通过人工筛选过滤掉通用但无用的词汇,就可以获得有效的 know-word-list 了。这种暴力切分法并不是我第一个用,http://www.guokr.com/blog/76814/ 这篇文章就讲到了用暴力切分法去切分古文词汇。其实还是挺实用的,毕竟我这里最后有个人工筛选过程。

====================下面是严肃的分割线=====================

其实中文分语无非两个部分:

  1. 句子匹配已登录词时,多种匹配方式如何选取最优?
  2. 未登录词如何鉴别词性?这中间又细分为如何通过大量文本收录未登录词,转为已登录词;以及在某段文本中确切出现的未登录词,如何进行处理两种情况。

而以上方案,按分词原则来看,其实都有些反其道而行:

  • 故意适当缩小已登录词,相对扩大未登录词范围。——这个是由业务实际情况经取舍后决定的。确实业务中只需要登录掉大部分 “专属通用词” 即可达到需要的效果。
  • 未登录词一律视为双字词。——这个是实际统计结果后决定的。
  • 把输入的正确性,以及由此导致的结果的正确性,责任全部交给用户自己去解决。——也是业务实际,以及以上两项得到的。

这些简化的前提,最重要的一点在于,Cos 交易酱并不需要真的去处理分词以后的结果,只需要确保分词结果能正确地,范围合适地在库中搜索到用户需要的数据即可。