textrankr

TextRank implemented in Python.


Keywords
textrank, korean, networkx, konlpy
License
MIT
Install
pip install textrankr==1.1

Documentation

textrankr

Build Status Coverage Status PyPI version

Reorder sentences using TextRank algorithm.

  • Mostly designed for Korean, but not limited to.
  • Check out lexrankr, which is another awesome summarizer!
  • Not available for Python 2 anymore (if necessary, use version 0.3).

Installation

pip install textrankr

Tokenizers

Tokenizers are not included. You have to implement one by yourself.

Example:

from typing import List

class MyTokenizer:
    def __call__(self, text: str) -> List[str]:
        tokens: List[str] = text.split()
        return tokens

ν•œκ΅­μ–΄μ˜ 경우 KoNLPyλ₯Ό μ‚¬μš©ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ‹œμ²˜λŸΌ phrasesλ₯Ό μ“°κ²Œλ˜λ©΄ μ—„λ°€νžˆλŠ” ν† ν¬λ‚˜μ΄μ €κ°€ μ•„λ‹ˆμ§€λ§Œ 이게 더 쒋은 κ²°κ³Όλ₯Ό μ£ΌλŠ”κ²ƒ κ°™μŠ΅λ‹ˆλ‹€.

from typing import List
from konlpy.tag import Okt

class OktTokenizer:
    okt: Okt = Okt()

    def __call__(self, text: str) -> List[str]:
        tokens: List[str] = self.okt.phrases(text)
        return tokens

Usage

from typing import List
from textrankr import TextRank

mytokenizer: MyTokenizer = MyTokenizer()
textrank: TextRank = TextRank(mytokenizer)

k: int = 3  # num sentences in the resulting summary

summarized: str = textrank.summarize(your_text_here, k)
print(summarized)  # gives you some text

# if verbose=False, it returns a list
summaries: List[str] = textrank.summarize(your_text_here, k, verbose=False)
for summary in summaries:
    print(summary)

Test

Use docker.

docker build -t textrankr -f Dockerfile .
docker run textrankr