基于图的关键词抽取(HITS算法和PageRank算法)

项目研究背景:

  在关键词抽取研究中,最常用的一种方法就是通过计算一篇文档中词语的TF-IDF值(term frequency-inverse document frequency),并对它们进行排序选取TopK个作为关键词,这是一种无监督的方法。另外一种方法是通过有监督的方法,通过训练学习一个分类器,将关键词抽取问题转化为对每个词语的二分类问题,从而选择出合适的关键词。
  无监督和有监督各有各的优势和缺点:无监督学习,不需要人工标注,训练集合的过程,因此更加方便和快捷;然而监督学习的方法,在进行了机器学习后,分类器更具有判断多种信息对关键词影响的能力,效果更优。但在信息爆炸的网络时代,人工标注训练集是非常耗时耗力的事情,更何况网络文档的主题常常随着时间变化剧烈,为了使分类器随时能够适应网络就必须随时进行训练和标注,显然这是不现实的。因此关键词抽取的研究主要还是集中在无监督的方法。
  在信息检索领域,HITS算法和PageRank算法是搜索引擎中两个最基础和最重要的算法。其基本思想都是首先利用网页之间的链接关系构建网页的网络图,通过相邻节点之间的网页的重要性,计算出某个网页的重要性。
  受PageRank的启发,提出了一种基于图的排序算法TextRank,通过将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系,然后利用PageRank计算网络图中词的重要性,选取重要性TopK个词作为关键词。同理也可将最初用于网页排序的HITS算法用来抽取关键词。

python实用装饰器代码

  python装饰器是一种可以用来对函数进行装饰的面向对象的方法。
  当想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去。我们便可以写成一个装饰器,哪些函数需要哪些修饰功能就可以直接在函数前套用装饰器。

HMM+Vetebi算法实现词性标注 python实现

  隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。
  在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。

基于规则的分词算法(MM RMM算法)及python代码实现

一、理论描述

  中文分词指的是将一个汉字序列切分成一个一个单独的词。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。其中,基于字符串匹配的分词方法是按照一定的策略将待分析的汉字串与机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,基于字符串匹配的分词方法可以分为正向最大匹配算法(Maximum Matching,下面简称MM)和逆向最大匹配算法(Reverse Maximum Matching,下面简称RMM)。
  本分词系统只是一个简单的演示程序,简单地根据语料库的信息,利用“正向最大匹配”、“逆向最大匹配算法”将一小段文字进行分词。

简易方法解决ubuntu下解压文件乱码

在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。
可以使用终端zip文件进行解压并指定解压的编码
unzip -O GBK xxx.zip
解压后的文件的路径为当前终端所在的路径

一趟聚类(One-pass Cluster)及python实现

一趟聚类简介

一趟聚类算法是由蒋盛益教授提出的无监督聚类算法,该算法具有高效,简单的特点。数据集只需要遍历一遍即可完成聚类。算法对超球状分布的数据有良好的识别,对凸型数据分布识别较差。 一趟聚类可以在大规模数据,或者二次聚类中,或者聚类与其他算法结合的情况下,发挥其高效,简单的特点;