Code Monkey home page Code Monkey logo

textrank's Introduction

TextRank

TextRank算法提取关键词与自动摘要的Java实现

注意

TextRank已经集成到HanLP中,本项目不再维护。

TextRankKeyword提取关键词

  • 调用方法
public static void main(String[] args)
{
    String content = "程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在**。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。";
    System.out.println(new TextRankKeyword().getKeyword("", content));
}
  • 算法详解 TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。 详见《TextRank算法提取关键词的Java实现》
  • 关于分词 分词不是TextRank关注的重点,项目中的警告是分词库发出,不影响功能。

TextRankSummary自动摘要

  • 调用方法
 public static void main(String[] args)
 {
    String document = "算法可大致分为基本算法、数据结构的算法、数论算法、计算几何的算法、图的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法、厄米变形模型、随机森林算法。\n" +
                "算法可以宽泛的分为三类,\n" +
                "一,有限的确定性算法,这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。\n" +
                "二,有限的非确定算法,这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。\n" +
                "三,无限的算法,是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。";
    System.out.println(TextRankSummary.getTopSentenceList(document, 3));
 }
  • 算法详解 通过句子的相关程度(BM25相关度)决定票的权重,迭代投票得出最终权重。 详见[《TextRank算法自动摘要的Java实现》][2]

TODO

  • 自然语言处理任重道远,本项目只是对TextRank的一份简明实现,效果和性能请自行评估。

  • 我写了[一系列入门笔记][3],欢迎NLP领域的朋友[前来交流、指导我的学习][3]。

  • 事实上,我正在开发一个完备的汉语处理包,目前能够提供分词、词性标注、命名实体识别、关键字提取、短语提取、自动摘要、自动推荐等功能,未来可能开源并逐步实现依存关系、句法树等功能,敬请期待。

    [2]: http://www.hankcs.com/nlp/textrank-algorithm-java-implementation-of-automatic-abstract.html [3]: http://www.hankcs.com/category/nlp/

textrank's People

Contributors

hankcs avatar

Stargazers

chenguangjian avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.