代码改变世界

随笔档案-2013年07月

文本挖掘之文本表示

2013-07-25 16:56 by 夜与周公, 10783 阅读, 收藏,
摘要: 当我们尝试使用统计机器学习方法解决文本的有关问题时,第一个需要的解决的问题是,如果在计算机中表示出一个文本样本。一种经典而且被广泛运用的文本表示方法,即向量空间模型(VSM),俗称“词袋模型”。 我们首先看一下向量空间模型如何表示一个文本: 空间向量模型需要一个“字典”:文本的样本集中特征词集合,这个字典可以在样本集中产生,也可以从外部导入,上图中的字典是[baseball, specs, graphics,..., space, quicktime, computer]。 有了字典后便可以表示出某个文本。先定义一个与字典长度相同的向量,向量中的每个位置对应字典中的相应位置的单词,比... 阅读全文

寻找序列中满足条件的元素

2013-07-16 22:11 by 夜与周公, 665 阅读, 收藏,
摘要: 一、基础篇 在>这本书中,给出了这样的一个问题:快速找出一个数组中的两个元素,让这两个元素之和等于一个给定的值,假设数组中至少存在一对这样的元素。 对于这个问题有两种解决思路: 思路一:首先想到的解法是穷举法,即判断序列中任意的两个元素之和是否等于给定的数值。算法的时间复杂度O(N2),显然这种蛮力解法不是我们想要的,需要继续寻找更高效的解法。 思路二:假设预定的两个元素的和等于SUM,对于某个原始array[i],实际上就是要判断SUM- array[i]是否在数组中。如果元素是无序的,算法的复杂度仍然是O(N2),没有任何改进。但如果先进行排序,算法的复杂度是O(NlogN),... 阅读全文

寻找最大(小)的K个数

2013-07-02 20:37 by 夜与周公, 1121 阅读, 收藏,
摘要: >一书中提到了寻找最大的K个数的问题,问题可以简单描述为:在长度为N的数组中,寻找第K(K#include #include using namespace std;int _tmain(int argc,_TCHAR* argv[]){ int myints[] = {10, 20, 30, 5, 15}; vector v(myints, myints+5); make_heap (v.begin(),v.end()); //构建堆 cout #include #include #include using namespace std;const int... 阅读全文