I was doing some ML reading and came upon tf-idf. The tf portion counts the relative frequency of a relevant word in a document, while idf measures how common or rare a word is across the corpus.
The IDF formula states that IDF = -log(nt / N), with nt being the number of documents with the word and N being the corpus. My understanding is that IDF reduces the weights of filler words, such as 'a' and 'the', to 0.
However, how does the calculation work if all the documents have a relevant keyword? For example, the keyword 'healthcare' may appear in a corpus of presidential speeches. But because the word appears in all the speeches, its idf is 0 and hence the tf-idf is 0, effectively assigning a keyword with a weight of 0.
Is there a variant of TFIDF that tackles this issue?