Вы можете сделать это, используя словарь в /usr/share/dict/words
(или просто загрузите список слов).
алгоритм в псевдокоде бы затем, как это:
counter = 0
make input lowercase
loop i from 0 to length of input:
if sub string from 0 to i of input is in dictionary:
grammatical_words[counter] = sub string from 0 to i
add one to counter
echo all words from grammatical_words
Обратной стороной с этим является то, что любая строка, начинающаяся с или я в принципе не в состоянии - строка, как algorithm
будет разбит на a
и затем не имеют дальнейших совпадений. Это означает, что вам нужно будет запретить определенные слова, если вы уверены, что не используете их. Кроме того, составные слова, такие как often
или desktop
, не будут иметь ожидаемого поведения. Слова, которые имеют слово в своем корне, например. «планшет», «мобильный», «популярный» и т. д. также потерпят неудачу.
С некоторой настройкой это может работать. Я бы сделал пользовательский список слов вместо использования системного словаря, если вы знаете, какие слова вы используете для ускорения работы и чтобы избежать ложных срабатываний.
Я хочу сделать функцию для этого, которая возьмет строку и выведет грамматически правильную (пробел, разделенный пробелом). – Thompson
Признание английского языка не является сильной стороной компьютеров. – geekosaur
Все имена полей Паскаль обсажены? –