../golang/pkg/mod/github.com/wmentor/[email protected]/processor.go:72:9: undefined: tokens.Process

установил библиотеку

попробовал запустить пример

package main

import (
  "fmt"
  "strings"

  "github.com/wmentor/lemmas"
)

func main() {

  txt := "Создать экспертную систему."

  processor := lemmas.New()

  processor.AddText(strings.NewReader(txt))

  processor.FetchResult(func(keyphrase string, weight float64) {
    fmt.Println(keyphrase, weight)
  })
}

выдаёт ошибку

../golang/pkg/mod/github.com/wmentor/[email protected]/processor.go:72:9: undefined: tokens.Process

у кого было подобное? Как лечить данную ошибку?


Ответы (1 шт):

Автор решения: Pak Uula

Причина в том, что в инструкции написано go get -u github.com/wmentor/lemmas. Ключик -u означает скачать самую свежую версию зависимостей. В случае с lemmas это приводит к тому, что вместо github.com/wmentor/tokens v1.0.4 скачивается github.com/wmentor/tokens v1.0.7 где, как ни странно, отсутствует функция tokens.Process (хотя по распространённому мнению изенение третьей циферки версии не должно привносить breaking changes).

Вот как выглядят зависимости в go.mod после go get -u:

require (
    github.com/wmentor/html v1.0.3 // indirect
    github.com/wmentor/lemmas v0.0.6 // indirect
    github.com/wmentor/tbuf v1.0.2 // indirect
    github.com/wmentor/tokens v1.0.7 // indirect
    golang.org/x/net v0.20.0 // indirect
    golang.org/x/text v0.14.0 // indirect
)

а вот так после go get:

require (
    github.com/wmentor/html v1.0.1 // indirect
    github.com/wmentor/lemmas v0.0.6 // indirect
    github.com/wmentor/tokens v1.0.4 // indirect
    golang.org/x/net v0.0.0-20200301022130-244492dfa37a // indirect
    golang.org/x/text v0.3.2 // indirect
)

Нужно устанавливать командой go get github.com/wmentor/lemmas, без -u. Тогда lemmas будет версии 1.0.4 и всё успешно скомпилируется.

→ Ссылка