The old has_similar_post() used WordPress search ('s' parameter) which
matches ANY word in the query. On a niche peptide blog, every topic
shares vocabulary like "BPC-157", "peptide", "dosage" — so all 125
ideas were false-positive deduped against existing posts, producing
zero viable article ideas.
New approach: extract meaningful keywords (strip stopwords), compare
against each existing post title, and only dedup when ≥60% of the
topic's keywords overlap with a single title. Also caches the title
list per pipeline run to avoid repeated queries.
Added summary logging so we can see exactly how many ideas pass
through each filter stage.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
8.6 KiB
Executable File
8.6 KiB
Executable File