Распознать недостающее пространство - PullRequest
5 голосов
/ 27 февраля 2009

Как я могу узнать, когда пользователь пропустил пробел при вводе поискового запроса? Например, если пользователь вводит «usbcable», я хочу найти «USB-кабель». Я делаю поиск по REGEX в MySQL, чтобы найти полные слова.

У меня есть таблица с каждым термином, используемым в поиске, поэтому я знаю, что «usb» и «cable» являются допустимыми терминами. Есть ли способ построить предложение WHERE, которое даст мне все строки, где термин соответствует части строки?

Примерно так:

SELECT st.term 
FROM SearchTerms st
WHERE 'usbcable' LIKE '%' + st.term + '%'

Или другие идеи?

Ответы [ 2 ]

5 голосов
/ 27 февраля 2009

Сегментация текста является частью Обработка естественного языка , и это то, что вы ищете в этом конкретном примере. Он используется в поисковых системах и средствах проверки правописания, поэтому вам может повезти с примером исходного кода, который рассматривает средства проверки правописания с открытым исходным кодом и поисковые системы.

Проверка орфографии может быть правильной парадигмой для рассмотрения в любом случае, так как сначала вы должны знать, является ли это законным словом или нет, прежде чем пытаться разобрать его.

-Adam

0 голосов
/ 07 марта 2009

Написал в комментариях, но я подумал, что важно привести в ответ:

Этот запрос не работает? - Саймон Бьюкен

Далее:

Ну, я должен был проверить это, прежде чем я вывешенный. Этот запрос не работает, но с CONCAT это делает, вот так: ГДЕ 'usbcable' LIKE Concat ('%', st.term, '%'). Я думаю, что это самое простое, и наиболее актуально (специфично для моего сайт), путь. - arnie0674

Конечно, намного проще, чем сегментирование текста для этого приложения ...

-Adam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...