摘要:
1. 问题描述 给你若干篇文档,找出这些文档中最相似的两篇文档? 相似性,可以用距离来衡量。而在数学上,可使用余弦来计算两个向量的距离。 $$cos(\vec a, \vec b)=\frac {\vec a \vec b}{||\vec a|| ||\vec b||}$$ 因此,用向量来表示文档, 阅读全文
摘要:
双数组Trie树,其实就是用两个一维数组来表示Trie树这种数据结构。 一个数组称为BASE,另一个数组为CHECK。转移条件如下: 对于状态s,接收字符c,转移到状态t BASE[s]+c=t CHECK[t]=BASE[s] 1. BASE数组保存结点的基地址 2. CHECK数组标识结点的前驱 阅读全文
摘要:
在 hankcs 大神开源的HanLP里面提供了很多分词算法,其中有一个维特比算法分词,于是查了一些资料发现:维特比算法用来求解隐马尔可夫模型的第二个问题:给定一个模型和某个特定的输出序列,找到最可能产生这个输出序列的状态序列 参考《数学之美 隐马尔可夫模型 章节》 于是就寻找各种隐马模型的资料,发 阅读全文
摘要:
一,问题描述 在Shakespeare文集(有很多文档Document)中,寻找哪个文档包含了单词“Brutus”和"Caesar",且不包含"Calpurnia"。这其实是一个查询操作(Boolean Queries)。 在Unix中有个工具grep,它能线性扫描一篇文档,然后找出某个单词是否在该 阅读全文
摘要:
本文介绍朴素贝叶斯算法如何对文本进行分类。比如,每个用户的购物评论就是一篇文本,识别出这篇文本属于正向评论还是负面评论 就是分类的过程,而类别就是:{正面评论,负面评论}。正面评论为Positive,用标识符'+'表示;负面评论为Negative,用标识符'-'表示。 一,分类目标 寻找文本的某些特 阅读全文
摘要:
本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例。Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度,并返回相似度结果(double类型,范围[0, 1],0表示不相似,1表示完全相同) 一,环境安装 阅读全文
摘要:
本文介绍 Stanford《From Languages to Information》课程中讲到的 单词拼写错误 纠正。背后的数学原理主要是贝叶斯公式。单词拼写错误纠正主要涉及到两个模型:一个是Nosiy Channel模型,它是贝叶斯公式中的似然函数;另一个模型是Language Model,它 阅读全文
摘要:
一,问题描述 【使用 unwind 操作符 “解包” Document 里面的Array中的每个元素,然后使用 group 分组统计,最后使用 sort 对分组结果排序】 从 images.json 文件中导入数据到MongoDB服务器 其中Document的示例如下: 现在要统计: 所有Docum 阅读全文
摘要:
本文介绍一个示例:使用 pymongo 连接 MongoDB,查询MongoDB中的 字符串 记录,并比较字符串之间的相似度。 一,Python连接MongoDB 大致步骤:创建MongoClient > 获取 DataBase >获取Collection,代码如下: 二,Python MongoD 阅读全文
摘要:
MongoDB二个主要的操作:一个是查询,另一个是统计。对于查询而言,主要是find()方法,再配合Filters组合多个查询条件。 对于统计而言,则主要是aggregate操作,比如 group、sum、avg、project、match…… aggregate可以将上述操作组织成 pipelin 阅读全文