- Регистрация
- 01.05.2015
- Сообщения
- 4 983
- Благодарностей
- 4 433
- Баллы
- 113
У меня есть список ключевых слов где много мусора в плане лишних городов.
Есть список этих городов. Нужно заменить все города из списка "stop" на случайные из моего списка "geo" там нужные мне города.
Вот такой код использую:
Но получается плохо. Например имеем фразу "залить полы бетонной стяжкой в квартире в твери", а получаю "залить полы бетонной стяжкой в квартире в Видноеи". Стоп-слово "твер" сработало, но замена меняет только часть слова, буква И остается.
Пробовал Regex, но тоже не получается по той же причине.
Разбивать фразу на слова, загонять в массив, искать индекс массива где находится стоп-слова и потом заменять на случайное нужное, потом опять массив склевать в строку - наверное сработает, но очень замедлит процесс (ключей же миллионы).
Есть другие предложения?
Есть список этих городов. Нужно заменить все города из списка "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, но тоже не получается по той же причине.
Разбивать фразу на слова, загонять в массив, искать индекс массива где находится стоп-слова и потом заменять на случайное нужное, потом опять массив склевать в строку - наверное сработает, но очень замедлит процесс (ключей же миллионы).
Есть другие предложения?