Как посчитать количество одинаковых слов в тексте?

investman

Client
Регистрация
27.02.2016
Сообщения
167
Благодарностей
26
Баллы
28
Как посчитать количество одинаковых слов в тексте на сайте?
Выполнили экшен DOM, а что делать дальше?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
если слово известно заранее - взять с ДОМ регуляркой, состоящей из этого слова, все совпадения в список. Получить длину списка.
 
  • Спасибо
Реакции: investman и rostonix

investman

Client
Регистрация
27.02.2016
Сообщения
167
Благодарностей
26
Баллы
28
если слово известно заранее - взять с ДОМ регуляркой, состоящей из этого слова, все совпадения в список. Получить длину списка.
Спасибо, получилось! :-)
 

rosnordic

Client
Регистрация
18.08.2016
Сообщения
143
Благодарностей
28
Баллы
28
если слово известно заранее - взять с ДОМ регуляркой, состоящей из этого слова, все совпадения в список. Получить длину списка.
А если слово неизвестно и нужно посчитать повторы всех слов и определить наиболее часто встречающиеся, причем с разными окончаниями?
Пример, сервис: https://advego.com/text/seo/



как это реализовать в zenno?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А если слово неизвестно и нужно посчитать повторы всех слов и определить наиболее часто встречающиеся, причем с разными окончаниями?
Пример, сервис: https://advego.com/text/seo/



как это реализовать в zenno?
взять взять переменную где текст страницы без тегов, перегнать весь текст нижний регистр, выпарсить все слова регуляркой в список, отсортировать список. Перебрать список увеличивая счётчик каждую итерацию сравнивая слово из прошлой строки с нынешней. Как только слова рознятся - записать если надо куда надо слово прошлое + счётчик его повторений, обнулить счётчик, сравнивать дальше
 
  • Спасибо
Реакции: rosnordic и Sergodjan

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
Ага. Значит, если в моём случае таблица в 5000 строк и номера телефонов во многих строках повторяются, я беру столбец с телефонами в список длиной 5000 строк либо учитываю, что Зенка обрабатывает таблицы мгновенно и таблицы тоже можно сортировать.
Далее не изготавливаю второй список удалением дублей, а вникаю в то, что написано выше.
И получаю, сколько раз какой номер повторился.

взять взять переменную где текст страницы без тегов, перегнать весь текст нижний регистр, выпарсить все слова регуляркой в список, отсортировать список. Перебрать список увеличивая счётчик каждую итерацию сравнивая слово из прошлой строки с нынешней. Как только слова рознятся - записать если надо куда надо слово прошлое + счётчик его повторений, обнулить счётчик, сравнивать дальше
 
Последнее редактирование:

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Код:
var words = project.Lists["Words"]; //список с словами
var wordsCount = words.GroupBy(x => x).OrderByDescending(x => x.Count());
foreach(var w in wordsCount)
{
    project.SendInfoToLog(w.Key + " - " + w.Count().ToString());
}
 
  • Спасибо
Реакции: zasranec и irving zisman

Scorpio2011

Client
Регистрация
07.02.2015
Сообщения
104
Благодарностей
19
Баллы
18
Код:
var words = project.Lists["Words"]; //список с словами
var wordsCount = words.GroupBy(x => x).OrderByDescending(x => x.Count());
foreach(var w in wordsCount)
{
    project.SendInfoToLog(w.Key + " - " + w.Count().ToString());
}
Не подскажете как вывести результат?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Не подскажете как вывести результат?
В список Res
Код:
var words = project.Lists["Words"]; //список с словами
var wordsCount = words.GroupBy(x => x).OrderByDescending(x => x.Count());
foreach(var w in wordsCount)
{
    project.Lists["Res"].Add(w.Key + " - " + w.Count().ToString());
}
 

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