From c6cc0108ca7738023b45e0eeac0fa2390532dd93 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Fri, 25 Oct 2024 00:47:47 +0200 Subject: Added vendor lock on deps --- .../DavidBelicza/TextRank/v2/convert/builder.go | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go (limited to 'vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go') diff --git a/vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go b/vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go new file mode 100644 index 0000000..db94cfc --- /dev/null +++ b/vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go @@ -0,0 +1,43 @@ +package convert + +import ( + "github.com/DavidBelicza/TextRank/v2/parse" + "github.com/DavidBelicza/TextRank/v2/rank" +) + +// TextToRank function converts a ParsedSentence object to Rank object, it is +// the preparing process to later text ranking. +func TextToRank(sentence parse.ParsedSentence, lang Language, ranks *rank.Rank) { + sentenceId := addSentence(ranks, sentence) + addWord(ranks, sentence.GetWords(), lang, sentenceId) +} + +func addWord(ranks *rank.Rank, words []string, lang Language, sentenceID int) { + prevWordID := -1 + var curWordID int + + for _, word := range words { + if !lang.IsStopWord(word) { + if found, rootWord := lang.FindRootWord(word); found { + word = rootWord + } + + if !ranks.IsWordExist(word) { + curWordID = ranks.AddNewWord(word, prevWordID, sentenceID) + } else { + curWordID = ranks.UpdateWord(word, prevWordID, sentenceID) + } + + ranks.Relation.AddRelation(curWordID, prevWordID, sentenceID) + ranks.UpdateRightConnection(prevWordID, curWordID) + + prevWordID = curWordID + } + } +} + +func addSentence(ranks *rank.Rank, sentence parse.ParsedSentence) int { + ranks.SentenceMap[len(ranks.SentenceMap)] = sentence.GetOriginal() + + return len(ranks.SentenceMap) - 1 +} -- cgit v1.2.3