把酒话桑麻

故人具鸡黍,邀我至田家。绿树村边合,青山郭外斜。

开筵面场圃,把酒话桑麻。待到重阳日,还来就菊花。

快一周的雾霾,一场淅淅沥沥的雨跟他say goodbye。这种状态很好啊,远处的霓虹灯隐约若现,近处的水洼点点滴滴,空气里的味道我说不清是雾霾跟雨水的化学反应还是真的是什么泥土的芳香,至少我没有深深的吸上一口,感叹一句“沾衣欲湿杏花雨,吹面不寒杨柳风”,我绝逼在每年的春天,每个春天下雨的日子都会感叹这一句。

把酒话桑麻,其实看到恩泽又能在北航陪我两年,我真想多赔上几杯,但一杯下肚,已经意气霓生了。我没有那么多好朋友,没那么多跟我交心的朋友,我从来不忌惮跟人吐心扉,只是心如气球,见不得刺。感谢那些信任过我的人…

待到重阳日,还来就菊花。

2-24-c-algorithm

帖一些C语言的代码吧,一些基础的,较为简单的代码,没事的时候可以复习一下, 一直说这学期还是刷JudgeOnline 还是没做到啊,等节奏定下来就开始,一共三千多道题,真心爽。。。

还是先搞点简单的吧。

快排,核心思想就是每次找到一个元素的合适位置,同时保证前面的元素都小于他,后面的元素都大于他。

#include <stdio.h>


int findSeat(int l[],int low,int high)
{
    int prvotkey=l[low];
    int temp;
    temp=l[low];
    while (low<high)
    {
        while (low<high&&l[high]>=prvotkey)
            --high;
        l[low]=l[high];
        while (low<high&&l[low]<=prvotkey)
            ++low;
        l[high]=l[low];
    }
    l[low]=temp;
    return low;
}
void qsort(int l[],int low,int high)
{
    int prvotloc;
    if(low<high)
    {
        prvotloc=findSeat(l,low,high);    //将第一次排序的结果作为枢轴
        qsort(l,low,prvotloc-1); //递归调用排序 由low 到prvotloc-1
        qsort(l,prvotloc+1,high); //递归调用排序 由 prvotloc+1到 high
    }
}

void quicksort(int l[],int n)
{
    qsort(l,1,n); //第一个作为枢轴 ,从第一个排到第n个
}
void main()
{
  int a[200],n,i;
  printf("n=");
  scanf("%d",&n);
  for (i=1;i<=n;i++)
    scanf("%d",&a[i]);
  quicksort(a,n);
  printf("right number:");
  for(i=1;i<=n;i++)
    printf("%d ",a[i]);
  printf("\n");
}

排序大概就一个快排吧,冒泡、选择就算了。接下来是些字符串处理的吧。

在NLP中常见的一些算法 TF-IDF

IT-IDF

首先说一下TF-IDF,我想按照不同的算法来描述其在不同场景下的应用,有可能会发现其中的相通之处。TF-IDF在wiki上的解释是一种用于资讯检索与文本挖掘的常用加权技术,在吴军的《数学之美》中的叙述是TF-IDF是目前通用的关键词重要性的度量。根据吴军老师的定义TF-IDF最最基础的一个应用就是在广泛领域内的关键词提取,不管是新闻还是专利,不管是网页还是摘要。作为通用的关键词重要性的度量方法,TF-IDF真的是简单高效。当然,在关键词提取的应用中除了TF-IDF的得分(依据的假设见TF-IDF),还可以考虑词语第一次出现的位置(依据的假设是在一篇文章中出现的越早越重要),标题的权重(假设是标题常常会出现关键词)等,但我在之前的试验中发现其他的一些衡量标准可以作为补充和改进,但TF-IDF的重要性不容忽视。

讲完了TF-IDF最简单的应用,这里会提到一个很有用的topic model的工具gensim,python语言,google出品,其中重要的几个模型就是TF-IDF,LSI(LSA),LDA和word2vec。当我第一次接触gensim,我不是很能理解作者Radim为什么要在topic model中加入这么简单的东西。在我不断的使用过程中自己感受是这样的,在我们处理一份语料(语料(corpus)由多篇文章(doc)组成)的时候,VSM(vector space model)是必不可少的,把一篇文章用向量表示,其中每个维度是所包含词的频率,简单来时VSM就是这个。去停用词和低频词是降维的首要选择,但这种做法不能避免的问题是停用词是有限的,有可能有疏漏,其次语料的来源相对单一,比如都来自于影视领域等等,那么有可能想演员、电影这些词的尽管不是停用词但本身在各个文章中都有出现,意义不大。这个时候TF-IDF就发挥了他的作用,将TF-IDF的得分填充doc和word的向量,得到的矩阵要更加合理。

是不是TF-IDF更多的应用是不是就是在gensim的一个模型呢?在把文章转换为向量之后,尤其是较为合理的向量之后,可以使用这些向量来完成,篇章的相似度计算,聚类,当然句子级的向量,就可以做摘要。说白了还是TF-IDF完成了对词语重要性的打分。而且在实验过程中,经过TF-IDF打分之后再进行了相似度计算、聚类的效果要好于直接的词频得分。

the first blood

这是写在github上的第一篇了,是不是要文艺一把,比如北京的天气已经阴霾的有些日子了;高宇昊大学弟已经从宿舍撤了;宿舍昨天停了电,我机制的买了6m的插线板,完成了“东电西输”;还有我床头放在民主的细节万历十五年一个:很高兴见到你从你的全世界路过,但愿这个学期都可以读完。→_→,继续开始伪文青的装逼之路。

可以预见的是这个博客应该会鲜有人来吧,不过也好,在社交网络(知乎、微博、空间)大(zhuang)述(B)己(mai)见(meng)时间一长就累了。也许在这儿能说些心里话,顺便贴贴代码,算是技术贴了。

差不多第一篇就这样吧~晚安北京