github.com/DavidBelicza/TextRank/v2 (go): Package textrank is an implementation of Text Rank algorithm in Go with extendable features (automatic summarization, phrase extraction). It supports multithreading by goroutines. The package is under The MIT Licence.  If there was a program what could rank book size text's words, phrases and sentences continuously on multiple threads and it would be opened to modifing by objects, written in a simple, secure, static language and if it would be very well documented... Now, here it is.  - Find the most important phrases. - Find the most important words. - Find the most important N sentences. - Importance by phrase weights. - Importance by word occurrence. - Find the first N sentences, start from Xth sentence. - Find sentences by phrase chains ordered by position in text. - Access to the whole ranked data. - Support more languages. - Algorithm for weighting can be modified by interface implementation. - Parser can be modified by interface implementation. - Multi thread support.  Find the most important phrases:  This is the most basic and simplest usage of textrank.  All possible pre-defined finder queries:  After ranking, the graph contains a lot of valuable data. There are functions in textrank package what contains logic to retrieve those data from the graph.  After ranking, the graph contains a lot of valuable data. The GetRank function allows access to the graph and every data can be retrieved from this structure.  Adding text continuously:  It is possibe to add more text after another texts already have been added. The Ranking function can merge these multiple texts and it can recalculate the weights and all related data.  Using different algorithm to ranking text:  There are two algorithm has implemented, it is possible to write custom algorithm by Algorithm interface and use it instead of defaults.  Using multiple graphs:  Graph ID exists because it is possible run multiple independent text ranking processes.  Using different non-English languages:  Engish is used by default but it is possible to add any language. To use other languages a stop word list is required what you can find here: https://github.com/stopwords-iso  Asynchronous usage by goroutines:  It is thread safe. Independent graphs can receive texts in the same time and can be extended by more text also in the same time.
Keywords: go|golang|pagerank|phrase-extraction|sentence-classification|summarization|textrank|token