Я пытаюсь проверить ряд слов, которые предоставляются пользователями. Я пытаюсь придумать систему подсчета очков, которая определит вероятность того, что серия слов действительно действительные слова.
Предположим, что следующий вход:
xxx yyy zzz
Первое, что я делаю, это проверить каждое слово отдельно от базы данных слов, которые у меня есть. Итак, скажем, что xxx
находилось в базе данных, поэтому мы на 100% уверены, что это действительное слово. Тогда скажем, что yyy
не существует в базе данных, но существует возможная вариация его написания (скажем yyyy
). Мы не даем yyy
100%, но, возможно, что-то ниже (допустим, 90%). Тогда zzz
просто не существует вообще в базе данных. Итак, zzz
получает оценку 0%.
Итак, у нас есть что-то вроде этого:
xxx = 100%
yyy = 90%
zzz = 0%
Предположим, что пользователи либо будут либо:
- Содержит список всех допустимых слов (скорее всего)
- Укажите список всех недопустимых слов (скорее всего)
- Содержит список комбинаций допустимых и недопустимых слов (маловероятно)
В целом, что такое хорошая система подсчета очков, чтобы определить показатель доверия, который xxx yyy zzz
представляет собой серию допустимых слов? Я не ищу ничего слишком сложного, но получение среднего значения не кажется правильным. Если некоторые слова в списке слов действительны, я думаю, что это увеличивает вероятность того, что слово, не найденное в базе данных, также является фактическим словом (это просто ограничение базы данных, в котором оно не содержит этого конкретного слова).
ПРИМЕЧАНИЕ. Вход обычно будет состоять как минимум из 2 слов (и в основном из 2 слов), но может быть 3, 4, 5 (и, возможно, даже больше в некоторых редких случаях).