基于nltk的快速自动关键词提取算法的python实现

rake-nltk的Python项目详细描述


pypivpyvLicenceBuild StatusCoverage StatusThanks

rake简称快速自动关键词提取算法,是一个领域 尝试确定密钥的独立关键词提取算法 从词频分析语篇中的短语 以及它与文本中其他词的共现。

Demo

设置

使用pip

pip install rake-nltk

直接从存储库

git clone https://github.com/csurfer/rake-nltk.git
python rake-nltk/setup.py install

设置后

如果你看到一个stopwords错误,这意味着你没有语料库 stopwords从nltk下载。您可以使用下面的命令下载它。

python -c "import nltk; nltk.download('stopwords')"

基本用法

fromrake_nltkimportRaker=Rake()# Uses stopwords for english from NLTK, and all puntuation characters.r.extract_keywords_from_text(<texttoprocess>)r.get_ranked_phrases()# To get keyword phrases ranked highest to lowest.

高级用法

fromrake_nltkimportMetric,Rake# To use it with a specific language supported by nltk.r=Rake(language=<language>)# If you want to provide your own set of stop words and punctuations tor=Rake(stopwords=<listofstopwords>,punctuations=<stringofpuntuationstoignore>)# If you want to control the metric for ranking. Paper uses d(w)/f(w) as the# metric. You can use this API with the following metrics:# 1. d(w)/f(w) (Default metric) Ratio of degree of word to its frequency.# 2. d(w) Degree of word only.# 3. f(w) Frequency of word only.r=Rake(ranking_metric=Metric.DEGREE_TO_FREQUENCY_RATIO)r=Rake(ranking_metric=Metric.WORD_DEGREE)r=Rake(ranking_metric=Metric.WORD_FREQUENCY)# If you want to control the max or min words in a phrase, for it to be# considered for ranking you can initialize a Rake instance as below:r=Rake(min_length=2,max_length=4)

为什么我选择自己实施?

  • 通过阅读论文来实现算法是非常有趣的。它是 数字版的DIY工具包。
  • 在python(aneesha/RAKE)和 节点(waseem18/node-rake),但两者似乎都没有使用NLTK的能力。通过制作nltk 实现的一个组成部分,我得到灵活性和权力,以延长它在其他 创造性的方法,如果我以后觉得合适的话,不用自己去实现所有的东西。
  • 我计划在我的其他宠物项目中使用它,并希望它是 模块化和可调,这样我有完全的控制。

贡献

错误报告和功能请求

请使用issue tracker报告错误或功能请求。

发展

最欢迎拉取请求。

给开发商买杯咖啡!

如果您觉得这个实用程序有用,可以使用

Donate

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java接口中的每个方法都是抽象的,但在抽象类中,我们也只能使用抽象方法   初始化Java中声明的、未初始化的变量会发生什么情况?   java BouncyCastle openPGP将字节[]数组加密为csv文件   在Java中将类A(和所有子类)映射到类B的实例的字典   RSA公钥编码,在Java和Android中,代码相同,结果不同   java在安卓中实现数字检测语音识别   java取消选择复选框   java如何在其他配置中重用Maven配置XML片段   java有没有一种有效的方法来检查HashMap是否包含映射到相同值的键?   spring处理程序调度失败;嵌套的例外是java。lang.NoClassDefFoundError:org/apache/http/client/HttpClient   带有ehcache的java多层缓存   java如何访问chromium(或任何其他浏览器)cookie   java通过将两个集合与spring data mongodb data中的条件合并来获取计数   安卓中R.java的语法错误