所有文章

自然语言处理工具包之NLTK

NLTK简介 NLTK(Natural Language Toolkit)是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开数据集、模型上提供了全面、易用的接口,涵盖了分词、词性标注(Part-Of-Sp…

器→工具, 工具软件 ·

用户调研之标准化可用性问卷

最近收到了对两个平台进行对比调研的需求,原以为做下简单的问卷设计就可以了,找了一些资料发现中间的门道还是非常的深,想要很好的掌握实属不易。可用性测试的问卷有很多中,如下图: 什么是标准化的问卷 …

产品, 术→技巧 ·

Netflix的企业文化:自由与责任

以下内容梳理自广为流传的Netflix Culture: Freedom & Responsibility,仅是摘录一些个人觉得比较有用的观点,如需了解全部,建议看原版。 价值观 真正的价值观是被员工所重视的行为和技能,是具体通过哪…

术→技巧, 管理 ·

数据可视化之词云wordcloud

Wordcloud是一个生成词云的Python包,可以以词语为基本单位更加直观和艺术的展示文本,呈现效果类似标签云。这里主要讲解下如何使用。 wordcloud使用文档 所有函数均封装在WordCloud类里: WordCloud([...]) …

深入理解Lucene默认打分算法

当谈论到查询的相关性,很重要的一件事就是对于给定的查询语句,如何计算文档得分。文档得分是一个用来描述查询语句和文档之间匹配程度的变量。如果你希望通过干预Lucene查询来改变查询结果的排序,你就需要对Lucen…

术→技巧, 研发 ·

算法的时间复杂度和空间复杂度

算法复杂度是算法性能最基本的评价标准。算法复杂度由时间复杂度和空间复杂度组成,属于计算复杂性理论中的内容。 时间复杂度 时间复杂度描述了算法的运行时间, 算法的时间复杂度是一个函数,它定量描述了该算法…

法→原理, 算法实现 ·

经典算法之分治法

分治法概念 分治法(divide-and-conquer)字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。分治有两个特…

法→原理, 算法实现 ·

经典算法之动态规划法

动态规划是一种将原问题拆解为若干子问题的求解方法,常常用于重叠子问题的和最有结构性能的问题。通过动态规划的方法,计算量则圆圆小于一般的解法。原因在于,对于重叠子问题,一般情况下会被重复计算,而动态规…

法→原理, 算法实现 ·

动态规划之背包问题

背包问题(Knapsack problem)是动态规划的经典问题。动态规划的基础是递归,和分治一样,都是假设子问题已经解决,由子问题的解组合计算得到父问题的解,类似裴波那契数列中的递推式如f(n) = f(n-1) + f(n-2)。但…

推荐算法之贝叶斯个性化排序 BPR

就像哲学有不同的流派一样,推荐系统的算法设计思路也可以分为不同的流派。排序学习恰恰就是其中的一种流派。熟悉 RecSys 等推荐系统国际会议的从业者可能会发现,自 2010 年以后的若干年内,陆续出现了许多基于排…