Удаление стоп-слов

  • Автор темы Автор темы soprano
  • Дата начала Дата начала

soprano

Client
Регистрация
25.08.2011
Сообщения
1 033
Реакции
1 265
Баллы
113
Нужно удалить из текста слова по маске - предлоги.
C#:
Развернуть Свернуть Копировать
            string tag = "В студёную зимнюю пору я из лесу ехал около реки";
            string[] substr = { " без ", " для ", " на ", " в ", " около ", " перед ", " с ", " и ", " из ", " за ", " близ ", " вместо ", " вне ", " до ", " во ", " из-за ", " из-под ", " изо ", " к ", " ко ", " кроме ", " между ", " над ", " о ", " об ", " от ", " по ", " под ", " при ", " про ", " ради ", " со ", " сквозь ", " среди ", " у ", " через ", " Без ", " Для ", " На ", " В ", " Около ", " Перед ", " С ", " И ", " Из ", " За ", " Близ ", " Вместо ", " Вне ", " До ", " Во ", " Из-за ", " Из-под ", " Изо ", " К ", " Ко ", " Кроме ", " Между ", " Над ", " О ", " Об ", " От ", " По ", " Под ", " При ", " Про ", " Ради ", " Со ", " Сквозь ", " Среди ", " У ", " Через " };
            foreach (string x in substr)
            {
                tag.Replace(x, "");
            }
Этот код вообще не работает. Кто-нибудь подскажет ошибку?
 
Этот код вообще не работает. Кто-нибудь подскажет ошибку?
Ответ уже есть выше, добавлю немного пояснения.
Во первых нужно учитывать регистр символов иначе не все значения будут заменены. (нужно привести всю строку в нижний регистр .ToLower() и учитывать количество пробелов (лучше всего один пробел после, а не по обоим сторонам иначе слова слипнутся после замены).
Во вторых в процессе замены, новое значение никуда не помещается, т.е. замена по факту происходит, но ее просто не видно, так как она не сохраняется никуда..
 
  • Спасибо
Реакции: soprano

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)