Чистка фраз стоп-словами

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 340
Баллы
113
У меня есть список ключевых слов где много мусора в плане лишних городов.
Есть список этих городов. Нужно заменить все города из списка "stop" на случайные из моего списка "geo" там нужные мне города.
Вот такой код использую:
PHP:
var keys = project.Lists["keywords"];
var stop = project.Lists["stop"];
var geo = project.Lists["geo"];
var newgeo = project.Lists["new_geo"];
Random rnd = new Random();
string str = "";
for (int i = 0; i < keys.Count; i++) {
    str = keys[i];
    for (int j = 0; j < stop.Count; j++) {
        if (str.Contains(" " + stop[j])) {
            int r = rnd.Next(geo.Count);
            newgeo.Add(str.Replace(stop[j], geo[r]) + " | "+ str);
        }   
}   
}
Но получается плохо. Например имеем фразу "залить полы бетонной стяжкой в квартире в твери", а получаю "залить полы бетонной стяжкой в квартире в Видноеи". Стоп-слово "твер" сработало, но замена меняет только часть слова, буква И остается.
Пробовал Regex, но тоже не получается по той же причине.
Разбивать фразу на слова, загонять в массив, искать индекс массива где находится стоп-слова и потом заменять на случайное нужное, потом опять массив склевать в строку - наверное сработает, но очень замедлит процесс (ключей же миллионы).
Есть другие предложения?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
делай через регекс, добавляй в паттерн \w*
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 340
Баллы
113
делай через регекс, добавляй в паттерн \w*
Не подскажешь чуть побольше?)
PHP:
Regex.Replace(str, @"" +stop[j]+ "\w*", geo[r], RegexOptions.IgnoreCase)
Вот так или другими подобными способами ругается.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 340
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
  • Спасибо
Реакции: Astraport

orka13

Client
Регистрация
07.05.2015
Сообщения
2 167
Благодарностей
2 168
Баллы
113
  • Спасибо
Реакции: Hannes, Nord и doc

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