Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Разделение слитной строки на слова на PHP
Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010
Помог: 0 раз(а)
Здравствуйте, задача реализовать разделение строки на слова если такие встречаются в базе слов http://pasted[dot]co/c1666a6b ~125K слов которые могут встречаться в слитной строке..
К примеру есть строка $str = "thumbgreenappleactiveassignmentweeklymetaphor";
после обработки должно получиться:
Было: thumbgreenappleactiveassignmentw eeklymetaphor.
Стало: thumb green apple active assignment weekly metaphor.
----- Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
DeepVarvar
Отправлено: 02 Сентября, 2015 - 20:15:50
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
bt_corp пишет:
разделение строки на слова если такие встречаются в базе слов
А у andrewkard хрень какая-то, т.к. в результате будет только то, что нашлось в банке, т.е. в строке удалит все чего нет в банке.
А еще по ссылке http://pasted[dot]co/c1666a6b есть одно-, двух-, и.т.д -буквенные слова.
Значит, на прмере слова "metaphor" оно может при неверном алгоритме разэксплодить его на "a", "or", "me" например.
Так что задача только на первый взгляд простовата ))
Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010
Помог: 0 раз(а)
DeepVarvar пишет:
bt_corp пишет:
разделение строки на слова если такие встречаются в базе слов
А у andrewkard хрень какая-то, т.к. в результате будет только то, что нашлось в банке, т.е. в строке удалит все чего нет в банке.
А еще по ссылке http://pasted[dot]co/c1666a6b есть одно-, двух-, и.т.д -буквенные слова.
Значит, на прмере слова "metaphor" оно может при неверном алгоритме разэксплодить его на "a", "or", "me" например.
Так что задача только на первый взгляд простовата ))
Да полностью задачу не решили, нужно чтобы разбивались только слитные слова что есть в массиве а другие слова оставались на своих местах в строке. Может как-то регуляркой делать.. Все это нужно для исправления слитных поисковых фраз.
----- Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
DeepVarvar
Отправлено: 02 Сентября, 2015 - 22:40:36
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
andrewkard пишет:
Предложите Ваше решение
Я бы вообще на сях проехался, ибо там намного проще "сдвигать" строку "вправо" через realloc+memmove, да и работать будет в десятки (если не сотни) раз быстрее.
Правда, если будут многобайтные кодировки, то придется поковыряться.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.