Does Scrivener 3 have a tool to allow you to check the frequencies of certain words to avoid overuse?
While I welcome the feature (that I found during the tutorial training), I donāt find it very useful because of the many words that are too common and normally showing up (like ātheā).
It would make sense to filter out those words to keep only the relevant ones. I know that thereās wouldnāt be a perfect list for everyone, but at least something to work on.
Is anyone actually using this word frequency feature, or maybe nobody really cares beyond a polite acknowledgement? Or they skim over the generic words to manually/visually spot the relevant ones?
I use it.
I actually find the inclusion of the high frequency words helpful because they give useful context to judge the other words.
Knowing that Iāve used the word āquantumā 15 times isnāt that helpful in of itself, but knowing that Iāve used it more often than Iāve used the word āsaidā is very telling!
I usually use it when I say to myself, āIāve used that word before todayā, but I canāt find it with a rudimentary squiz.
This is what I do if Iām interesting in discovering overused words, particularly adjectives, adverbs, or unusual words that would draw attention to themselves if overused. (While sorting by count)
If Iām looking for overuse of a specific wordāe.g., I know I happen to fall back on ābutā a lotāthen I sort the list by word and scroll down to it.
There is an option to exclude certain words (āOptionsā tab). I gather it is better this way than to exclude articles and prepositions by default, not to mention that people write in plenty of different languages. ![]()
Personally, I think that nothing beats a thorough read through of the draft. No tool will see the text the way a reader will see it.
ETA: I just went to check out of curiosity and found out that the two most used words in my current project are the main charactersā names. ![]()
I like to use Duplicate Word Finder to spot the overuses.
You have to copy/paste, yes, but you get the info you need.
You can set a minimum word length and a minimum redundancy count as conditions for the duplicates to be reported.
Reported word duplicates can be soloed or muted.
You may also export the redundant words list.
. . . . . . . . . . . . . . . . . . . . . .
This regex used in project search (in Scrivener) will find redundant words within a paragraph :
\b(\w{4,})\b(?=(?:\W+\w+){1,200}?\W+\b\1\b)
[I had one that wasnāt bound to paragraphs, Iāll dig it up and update. ⦠EDITā® Oh well⦠It would appear that I dreamt that. Canāt find it. Either I remember wrong, or it used to work and some system update makes it no longer work outside of the limits of a paragraph⦠(I am not happy)]
It will highlight any word that is repeated within this range (that you may modify at will) :
{1,200} [Leave the 1 untouched, set the 200 to your need.]
Minimal word length in letters : (\w{4,}) ⦠Four letters in this case.
The only āissueā with it is that regex being linear, it canāt report the last word of a string of redundancies. But, if a word is highlighted, you know there is another one following within the set range. Use Find...
With the intention of catching all words, I considered a two-pronged approach, examining the content of a document from beginning to end and then vice versa.
I setup a combined ālookaheadā and ālookbehindā RegEx. That didnāt work.
Then, I checked the variable-length lookbehind, only to find that part of the string rendered nothing.
So, it seems Qt (the framework on which Scrivener is developed) and its RegEx implementation, which is PCRE-based, has limitations related to lookbehind.
Anyway, anyone looking for an AutoHotKey version 2 shortcut for the RegEx you provided, can use the following:
::rxrw::
{
SendText(ā\b(\w{4,})\b(?=(?:\W+\w+){1,200}?\W+\b\1\b)ā)
}
Once Project Search is setup for RegEx in Scrivener, type rxrw, which will be replaced by the string and find duplicates.
Thatās nice, but my regex formula no longer looks past the boundary of a paragraph. The range {1,200} is now quite useless.
As a matter of fact, the whole is now quite useless, unless you compile to a new doc, use Find... to remove all carriage returns and linebreaks from that reference file/doc, then apply the formula to the resulting gigantic paragraph.
Perhaps it works on Mac, but it no longer does under Windows. And not just Scrivener ; it no longer works in LibreOffice just the same.
Iāve tried modifying it to ignore \n but I still canāt get it to work.
Iāve edited my previous post.
Where I said it is limited to the first paragraph, I meant āto the paragraphā
It wonāt find and report a duplicate if the duplicate is within range, but in the next paragraph.
Canāt see that in your screenshot.
Hereās mine :

![]()
![]()
I was right. Under Windows, it no longer looks past the first paragraph. And it is worse than I thought, as per the above screenshots. (Iāve edited my initial post back to āfirst paragraphā.)
The string is interrupted and wonāt kick back in:
Crap. I was wrong again. It works, but only within a paragraph. Not just the first, but not across a carriage return (linebreaks are fine afterall).
Okay, I see in mine itās a bit of a hodgepodge. It misses the first āColeā in paragraph 4 yet identifies the first ādownā in paragraph 6. ![]()
This formula would be a gem otherwise.
Thatās because āColeā is there only once in the paragraph, and ādownā is there twice.
It should be within 200 words, not limited to within a paragraph.
If it write Cole.
And then Cole again. (New paragraph)
The first āColeā should be reported. (All of them but the last, due to lookahead limitations.)
Alright. Iād find it useful to examine a whole scene, extending the number of words apart.
Sometimes, I come up with a great word, or so I think, whereas, in reality, Iāve remembered a word I used earlier or subconsciously spotted. That causes me major dilemmas and rewrites, because I donāt want an alternative in either instance.
If you duplicate the document, make that new cloned document a reference, then use Find... to remove all carriage returns or replace them with linebreaks, itāll work.
You can use that reference document to spot redundancies, then fix them in the original document.
At least thatās that.
[In your case ā®whole sceneā® youād want to remove the range ā or set it to 99999999 ā so that it keeps looking through the whole content.]
Iāll give you a cookie if you figure out how to fix it back so that it works in the original document. (Despite the carriage returns.)
Thanks for this infoā¦
Is Duplicate Word Finder an App?







