I am intrigued with the idea of Zettelkasten but unsatisfied with the current implementations. It seems to me that a machine learning and NLP approach could be productive by helpfully identifying “important” keywords on which to links could be created, with learning to help narrow the selection of keywords over time.

My problem is that it’s been 30 years since AI classes in grad school and things have moved on. I’m sure I could become an nlp expert with study but I don’t wanna. So I’m looking for guidance: what are the right terms to describe identifying keywords in context, ideally with some semantic content; how would I apply ML with my training to improve the keyword identification.

I’d love references, ideas, and packages references. Python is preferred, but not strongly; I write most common (and many uncommon, SNOBOL and COBOL anyone?) languages so language isn’t all that much of an issue.


1 Answer 1


I am sure there are complex methods to extract keywords, but the standard one which should serve as a strong baseline is the RAKE graph algorithm https://pypi.org/project/rake-nltk/. It should work reasonably well in most text domains.

  • $\begingroup$ See, that's the thing — I'm not looking for complex methods, I'm just so far out of touch that it's hard to even make a useful google search. This not only looks like it might work, it gives me a hook for "things like" searches. $\endgroup$ Commented Jul 1, 2020 at 12:39
  • 1
    $\begingroup$ Then RAKE should be good choice. Also, a recent package is YAKE github.com/LIAAD/yake, which claims to be a better version of RAKE might also be of help to you. It is also easy to set up and use. $\endgroup$ Commented Jul 1, 2020 at 15:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .