С фокусом php не искал. https://github.com/bakwc/JamSpell#python - опенсорс библиотека с интерфейсом на питоне. Есть возможность обучить свою модель - имеет смысл, если у Вас много текста определенной тематики.
Для правильного вопроса надо знать половину ответа
Без контекста бесполезно. В лучшем случае получите сам факт того, что данное слово может быть составлено из нескольких других слов. Но в большинстве случаев невозможно будет определить, а надо ли его разбивать.
Например, знаменитое по Word'у "мультиканальный"
Мне кажется, даже если есть, то работает фигово. Например слово
бакалея - бак алея (не путать с аллеей). Бой_кий, воз_лежать, жар_кий, кино_театр, ком_пас, бор_мотать.
Мне кажется, даже с использованием машинного обучения возникнут неточности.
xmoonlight, Данил, тоже нереально.
- Стоматолог пошел бор мотать. - понятно что бредовая фраза, но на больше воображения нет :-) Но такие фразы естественно встречаются, и тут даже из контекста не понятно, пошел он бормотать с кем-то, или где-то свой бор мотать. Тут надо как-то понимать точный смысл текста. Интересная конечно задача.
Владимир Проскурин при достаточно большой выборке, нейронные сети с учетом контекста, будут работать хорошо. Ваш пример окажется не под силу даже человеку :)
xmoonlight, ага :D Данил, возможно. Но человеку не надо думать, что нужно ли разделить слово. Можно конечно и боту сказать, что если сомневаешься, ничего не трогай.
А если trie дерево, в значение которого хранить структуру с возможными вариантами?
К примеру прошлись мы по дереву нашли "бормотать", смотрим к примеру мапу, может ли быть другие слова как из примера "бор мотать".
xmoonlight, представь какой кошмар будет в каких-нибудь "текстах" бухгалтерии магазина алкогольной продукции.
(я с чем-то подобным однажды сталкивался, это и правда был кошмар)