summaryrefslogtreecommitdiff
path: root/vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-master.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go')
-rw-r--r--vendor/github.com/DavidBelicza/TextRank/v2/convert/builder.go43
1 files changed, 43 insertions, 0 deletions
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
+}