SkillAgentSearch skills...

Lexrank.js

LexRank in JavaScript - a building block for automatic text summarization / テキスト自動要約

Install / Use

/learn @iinm/Lexrank.js
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

lexrank.js

LexRank computes centrality score of sentences.

Demo application (sentence extraction)

Demo application runs on client-side JavaScript. Input text is not sent to the server.

  • <a href="http://iinm.github.io/lexrank.js/" target="_blank">Japanese / 日本語</a>
  • <a href="http://iinm.github.io/lexrank.js/index_en.html" target="_blank">English / 英語</a>

Usage

Define sentence splitter and word segmenter.

// example (Japanese)

var sent_splitter_ja = function(text) {
  return text.replace(/([。.?!]+)/g, '$1|').split('|');
};

// http://chasen.org/~taku/software/TinySegmenter/
var _segmenter = new TinySegmenter();

var word_segmenter_ja = function(sent) {
  return _segmenter.segment(sent)
           .map(function(w) { return w.trim(); })
           .filter(not_stopword); // remove stopwords (Recommended)
};

Apply LexRank.

// example (http://ja.wikipedia.org/wiki/JavaScript)

var text = 'JavaScript(ジャヴァスクリプト)とは、プログラミング言語のひとつである。Javaと名前が似ているが、...';
var sentences = sent_splitter_ja(text);

var result = lexrank(sentences, {word_segmenter: word_segmenter_ja});

console.log('# (score, index)  sentence');
result.forEach(function(meta) { // sorted by score
  console.log('(' + meta.score + ', ' + meta.idx + ')  ' + sentences[meta.idx]);
});

// output
// # (score, index)  sentence
// (0.10937976019163632, 9)  広義の意味でこれをJavaScriptと呼ぶ場合、主要なブラウザが実装しているスクリプト言語はマイクロソフトやGoogle, Appleの実装も含めてJavaScriptである。
// (0.10054498012337935, 5)  このスクリプト言語はEcmaインターナショナルでECMAScript (ECMA-262) として標準化されており、多くのWebブラウザー等はこの標準化されたECMAScriptを実装している。
// (0.09666948892194924, 4)  JavaScriptという言葉は狭義にはMozillaが仕様を策定し実装しているスクリプト言語を指す。
// ...

Default Parameters

var result = lexrank(
  sentences,
  {
    word_segmenter: (required),
    continuous: false  // apply continuous LexRank, see reference
    idf: {},  // used when compute cos similarity
    threshold: 0.1,  // cos similarity, used when 'continuous' is false.
    sort_by_score: true,  // sort result by score
    pagerank_params: {
      alpha: 0.85,
      tol: 1.0e-6,
      max_iter: 100
    }
  }
);

References

LexRank, section 3.1-3.3

Related Skills

View on GitHub
GitHub Stars23
CategoryDevelopment
Updated2y ago
Forks3

Languages

JavaScript

Security Score

75/100

Audited on Nov 2, 2023

No findings