Зависит от того, насколько сложным вы хотите / должны быть, и хотите ли вы постоянно уменьшать вес, примененный к конкретному слову.
Самым простым было бы, возможно, применить относительно высокий вес (скажем, 1000) к первому слову, и тогда каждое последующее слово имеет вес на единицу меньше веса предыдущего слова; таким образом, второе слово имеет вес 999, третье слово имеет вес 998 и т. д. Это имеет «недостаток», заключающийся в том, что сумма весов не увеличивается после отметки 1000 слов - вам придется выбрать Сами ли это плохо для вашей конкретной ситуации. Но это может не совсем то, что вам нужно.
Если вы не хотите линейного сокращения, это может быть что-то простое, например, первое слово имеет вес X, второе слово имеет вес, равный Y% от X, третье слово имеет вес, равный Y% от Y% от X и т. Д. Разница между первым и вторым словом будет больше, чем разница между вторым и третьим словом, и к тому времени, как вы достигнете 500-го слова, разница будет очень большой меньше. Это также не сложно реализовать, так как это не сложная формула.
Или, если вам действительно нужно, вы можете использовать более сложную математическую функцию для расчета веса - попробуйте прибегнуть к «экспоненциальному затуханию» и посмотрите, будет ли это вам полезно.