Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Исключение из текста слов  [new]
ITW
Member

Откуда:
Сообщений: 52
Здравствуйте.
Тужно в тексте исключить все слова, которых нет в заданной таблице
DECLARE @text NVARCHAR(max)
SET @text = 'mama myla ramu. rama myla mamy'


DECLARE @table TABLE (keyword NVARCHAR(200))
INSERT INTO @table ( keyword )
SELECT 'mama'
UNION
SELECT 'myla'
UNION
SELECT 'rama'
UNION
SELECT 'test'


Должно получится

mama
myla
myla
rama

Заранее спасибо
25 окт 12, 12:56    [13373752]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
1. Разрезать строку на слова.
2. Выбрать только те слова из строки, которых нет в таблице @table.
25 окт 12, 12:58    [13373764]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
ITW
Member

Откуда:
Сообщений: 52
Гавриленко Сергей Алексеевич,

Не совсем подходит.
1. Текст может быть очень большим.
2. Я не правильно описал задание. Поиск может быть еще по словосочетаниям.
Например 'Account Manager'.
Исключить из текста все, кроме 'Account Manager'
25 окт 12, 13:26    [13373983]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
petre
Member

Откуда: Кривой Рог
Сообщений: 42
ITW,
"Агласите весь списык пжалста": Какие еще условия для задачи есть?
Например: 'Account Manager' и 'Account Managers' это разные словосочетания? обязательно ли слова разделяются пробелами?.

Можно создать табличку, куда будут вноситься искомые слова с указанием начала вхождения в начальную фразу, а потом из этой таблицы делать слияние.. где-то так.
25 окт 12, 15:47    [13375199]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]

Guest
вывести из таблички всё что встречается в тексте ))
25 окт 12, 15:51    [13375234]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
aWlad
Member

Откуда: Москва
Сообщений: 42
`ё,

Точнее, вывести из текста все, что есть в табличке - ведь так?? Текст = 4000 байт. Табличка будет маленькая.
Словосочетания занести в другую табличку - в желаемых "сочетаниях" - мало ли сколько "фантазий" появится...
И вторую табличку "проверить" - и так, пока "желания" не кончатся.
25 окт 12, 16:37    [13375638]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
пошйкайте тут где то Делоркодес - показывал реализацию словарика вручную - думаю что вам подойдет
25 окт 12, 16:56    [13375808]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
aWlad
Текст = 4000 байт. Табличка будет маленькая.
NVARCHAR(MAX) - это, вообще-то, около 230 символов (больше миллиарда)
25 окт 12, 17:08    [13375883]     Ответить | Цитировать Сообщить модератору
 Re: Исключение из текста слов  [new]
ITW
Member

Откуда:
Сообщений: 52
petre,

'Account Manager' и 'Account Managers' это разные словосочетания

Задача:
Опреденить были ли изнимения в тексте по определенным критериям а точнее были ли добавленны или удаленны определенные слова (словосочетания) в тексте.
Есть табличка с ключевыми словами.

Думаю сделать так: выводить в строку записи тех слов (словосочетаний) которые присудствуют в тексте, то-бишь, если "Account Manager" два раза повторяется в тексте то и в результате затроса нужно отобразить двумя записями. и сохранять его в базу ввиде строки. Это будет типа как КЕШ)
При повторном проверке текста просто проверять текст и полученный результат, если не равны - значит текст был изменен
29 окт 12, 16:57    [13392375]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить