потом тупо кубиком удаляем дубли по содержанию второго столбца. А первый столбец сохраняем в список.Слово;слово
СЛОВО;слово
слово;слово
string text = project.Variables["text"].Value;
var res = text
.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.AsParallel().AsOrdered()
.Select(s => s.Substring(0, 1).ToUpper() + s.Remove(0, 1).ToLower())
.Distinct();
return string.Join(Environment.NewLine, res);
IZennoList list = project.Lists["List"];
var res = list
.AsParallel().AsOrdered()
.Select(s => s.Substring(0, 1).ToUpper() + s.Remove(0, 1).ToLower())
.Distinct().ToList();
list.Clear();
list.AddRange(res);
Тогда так:Dimionix - хорошее решение, но код все начальные буквы дерает заглавными. В notepad++ есть такая опция, он понимает дубли с разным регистром.
Kare - регистр должен сохраниться, там города, имена и т.д.
string text = project.Variables["text"].Value;
List<string> tmpList = text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
for (int i = 0; i < tmpList.Count; i++) {
for (int j = i + 1; j < tmpList.Count; j++) {
if (string.Compare(tmpList[i], tmpList[j], StringComparison.InvariantCultureIgnoreCase ) == 0) {
tmpList.RemoveAt(j); j--;
}
}
}
return string.Join(Environment.NewLine, tmpList);
IZennoList list = project.Lists["List"];
lock (SyncObjects.ListSyncer) {
for (int i = 0; i < list.Count; i++) {
for (int j = i + 1; j < list.Count; j++) {
if (string.Compare(list[i], list[j], StringComparison.InvariantCultureIgnoreCase ) == 0) {
list.RemoveAt(j); j--;
}
}
}
}
Тут либо брать определённое количество символов с начала строки, либо, как вариант, привязаться к какому-нибудь поисковику и придумывать логику, либо пилить нейронку или как-то ещё, но в любом случае не будет 100%-го результата.а как можно доработать скрипт что бы он удалял такие неявные дубли
так и думал что не простое это дело, лучше использовать Коллектор купленный.Тут либо брать определённое количество символов с начала строки, либо, как вариант, привязаться к какому-нибудь поисковику и придумывать логику, либо пилить нейронку или как-то ещё, но в любом случае не будет 100%-го результата.
Если сильно захотеть, можно в космос полететь…так и думал что не простое это дело, лучше использовать Коллектор купленный.
Спасибо
Да, просто скачайте файл там по ссылке.благодарю, удивили думал КК имеет мощный какой-то алгоритм выявления подобных дублей.
значит ваш пример из зенки был взят от сюда да?
http://zennolab.com/discussion/threads/kak-mne-realizovat-stemming.22494/#post-327883
А у него и есть мощьный алгоритм для выбора ключей на продвижение.думал КК имеет мощный какой-то алгоритм выявления подобных дублей.
это да, софт мощный целый комбайн, надо было просто определиться с дублями неявными кто и как лучше справляетсяА у него и есть мощьный алгоритм для выбора ключей на продвижение.
Попробовал этот скрип, что-то не выходит избавиться от дублей. У меня переменной, ссылки, которые дублируются. "text" заменил на имя переменной... Подскажите что я делаю не так ?Для переменной
Для спискаC#:string text = project.Variables["text"].Value; var res = text .Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries) .AsParallel().AsOrdered() .Select(s => s.Substring(0, 1).ToUpper() + s.Remove(0, 1).ToLower()) .Distinct(); return string.Join(Environment.NewLine, res);
C#:IZennoList list = project.Lists["List"]; var res = list .AsParallel().AsOrdered() .Select(s => s.Substring(0, 1).ToUpper() + s.Remove(0, 1).ToLower()) .Distinct().ToList(); list.Clear(); list.AddRange(res);
Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.
Dimionix
а как можно доработать скрипт что бы он удалял такие неявные дубли
Купить
Купила
Купили
Купим
Принес
принесла
принесли
принесут
принесем
Надо оставить по 1 слову из каждого примера.
Но добавить возможность определять с регистром или без, типа как дополнительная переменная true false