Счетчик слов в тексте

19.05.10

Задачи пользователя - Разное

Обработка подсчитывает частоту и долю каждого слова в тексте. Будет полезна при изучении иностранных языков.

Скачать файлы

Наименование Файл Версия Размер
Счетчик слов
.epf 9,38Kb
65
.epf 9,38Kb 65 Скачать бесплатно

Обработка создана для помощи при изучении английского языка. Дает возможность выбрать ключевые, наиболее часто употребляемые слова из любого текста.

Соответственно помогает определить, что учить в первую очередь.

См. также

Учет домашней квартплаты

Разное Платформа 1С v8.3 Конфигурации 1cv8 Энергетика и ЖКХ Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Позволяет в одном документе собрать записи по всем коммунальным платежам и показаниям бытовых приборов. Вы не пропустите и не забудете свой коммунальный платеж. Будете точно знать ежемесячную сумму коммуналки по всем объектам собственности. Расширение предназначено для самой популярной конфигурации 1С:Бухгалтерия 8, ред. 3. Объекты расширения не имеют заимствования конфигурации. Его легко встроить в другие типовые конфигурации 1С.

1 стартмани

30.01.2024    470    2    kwn2000    2    

5

Конфигурация "Рюкзачок"

Разное Платформа 1С v8.3 Туризм и путешествия Россия Абонемент ($m)

Составление комплекта вещей в поездку, поход, для работы и т.п. Конфигурация разработана для платформы 1С:Предприятие 8.3 (конкретно учебная версия 8.3.13.1644, потому что более новые утомили меня своими сюрпризами).

1 стартмани

19.01.2024    6111    5    AnatolPopov    31    

36

Конфигурация "Казначей группы (класса/команды/...)"

Разное Взаиморасчеты Платформа 1С v8.3 Общественные и некоммерческие структуры Обучение, бизнес-тренинг, курсы Развлечения, искусство, спорт Домашние учет и финансы Управленческий учет Абонемент ($m)

Нано- (даже не микро- !) конфигурация для тех, кто выступает в роли казначея класса/группы/команды, и в чьи задачи входит сбор денег с участников за участие в каких-то мероприятиях, а потом передача собранных денег организаторам этих мероприятий.

1 стартмани

03.11.2023    669    3    q_i    0    

11

Математический тренажер через телеграмм (feat 1С)

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    1888    maksa2005    8    

22

Генератор математических примеров

Математика и алгоритмы Разное Абонемент ($m)

Маленькая программа для генерации примеров. C#

1 стартмани

28.09.2023    1284    1    FIERYLIONS    18    

7

Конструктор: ЧислоПрописью и СтрокаСЧислом

Разное Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Абонемент ($m)

Возможно я просто ленивый, а может потому что понадобилось... в общем сделал конструктор параметров. Может 1С когда-нибудь сделает что-нибудь такое в конфигуратор?

1 стартмани

15.09.2023    3051    11    vandalsvq    8    

48

Viewer 1.0 (библиотека картинок, wingding, webdings, символы по кодам)

Разное Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Иногда нужно посмотреть все картинки из библиотеки картинок или шрифты Webdings/Wingdings, вот собственно эта обработка для этого...

1 стартмани

04.09.2023    765    2    Незнайка    0    

11

Мобильное приложение "Семейное"

Разное Платформа 1С v8.3 Домашние учет и финансы Россия Управленческий учет Абонемент ($m)

Это программа, предназначенная для учета, анализа и управления личными и семейными делами.

1 стартмани

02.07.2023    1066    1    SVGProger    0    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. kosilov 275 19.05.10 12:15 Сейчас в теме
Могу порекомендовать использовать следующую функцию для разбивки текста на слова.
По моим тестам этот подход оказался более быстрым, чем использование СтрЗаменить.
Функция split(СимволыРазделители, строка, лимит = неопределено) экспорт
	
НоваяСтрока = Строка;
МассивСлов = новый Массив;
ИщемНачало = истина;
ТекСлово = "";

Для НомерСимволаСтроки=1 по СтрДлина(Строка) цикл
	ТекСимвол =  Сред(Строка,НомерСимволаСтроки,1);
 	если Найти(СимволыРазделители, ТекСимвол)=0  тогда
		ТекСлово = ТекСлово + ТекСимвол;
		ИщемНачало = ложь;
		продолжить;
	иначеесли ИщемНачало тогда
		МассивСлов.Добавить("");
		если МассивСлов.Количество()=лимит тогда
			возврат МассивСлов;
		конецесли;
		продолжить;
	иначе
		МассивСлов.Добавить(ТекСлово);
		если МассивСлов.Количество()=лимит тогда
			возврат МассивСлов;
		конецесли;
		ТекСлово = "";
		ИщемНачало = истина;
	конецесли;
конеццикла;
если Не ИщемНачало тогда
	МассивСлов.Добавить(ТекСлово);
конецесли;
возврат МассивСлов;
конецфункции
Показать

YVolohov; +1 Ответить
2. YVolohov 721 19.05.10 12:32 Сейчас в теме
(1) Спасибо. Постараюсь сегодня же протестировать.
3. YVolohov 721 19.05.10 13:13 Сейчас в теме
(1) Протестировал. Функция показала хороший результат, но только для небольших строк. Для больших строк СтрЗаменить() все таки работает значительно быстрее.
4. kosilov 275 19.05.10 23:37 Сейчас в теме
(3) Странно, у меня как раз наоборот получалось. При больших текстах СтрЗаменить начинала тормозить. Может специфика реализации.
А если обрабатывать большие тексты блоками?
Т.е. в функцию разбивки передавать блок плюс остаток от предыдущего блока (если он был), функция разбивки будет возвращать массив (его лучше не возвращать а просто по ссылке с ним работать) + плюс начало слова, если последние символы не разделители.
Думаю так быстрее получиться.
5. kosilov 275 20.05.10 00:06 Сейчас в теме
(3) Я емею в виду так попробовать:
Процедура ПосчитатьСлова2()
	ДлинаБлока = 20; // Здесь надо искать оптимальное значение    
	НоваяСтрока = ЭлементыФормы.Текст.ПолучитьТекст(); 
	СимволыРазделители = ",.?!:;() " + Символ(34);
	// Создаем таблицу значений
	Слова = Новый ТаблицаЗначений;
	Слова.Колонки.Добавить("Слово");
	Слова.Колонки.Добавить("Частота");
	Слова.Колонки.Добавить("Доля");
	
	 
	ИщемНачало = истина; 
	ТекСлово = ""; 
	НачПозиция = 1;
	ДлинаСтроки = СтрДлина(НоваяСтрока);
	
	Пока  НачПозиция<=ДлинаСтроки цикл
		СтрокаОбработки = Сред(НоваяСтрока, НачПозиция, ДлинаБлока);
		    СтрДлина = СтрДлина(СтрокаОбработки);
		Для НомерСимволаСтроки=1 по СтрДлина цикл 
			ТекСимвол =  Сред(СтрокаОбработки,НомерСимволаСтроки,1); 
			если Найти(СимволыРазделители, ТекСимвол)=0  тогда 
				ТекСлово = ТекСлово + ТекСимвол; 
				ИщемНачало = ложь; 
				продолжить; 
			иначеесли ИщемНачало тогда 
				//МассивСлов.Добавить(""); 
				 
				продолжить; 
			иначе 
						НовСтрока = Слова.Добавить();
						НовСтрока.Слово = НРег(ТекСлово);
						НовСтрока.Частота = 1;
						НовСтрока.Доля = 0;
  				ТекСлово = ""; 
				ИщемНачало = истина; 
			конецесли; 
		конеццикла; 
		 
		НачПозиция = НачПозиция + ДлинаБлока;
	КонецЦикла;
	если Не ИщемНачало тогда 
		НовСтрока = Слова.Добавить();
		НовСтрока.Слово = НРег(ТекСлово);
		НовСтрока.Частота = 1;
		НовСтрока.Доля = 0;
 
	конецесли;
	Слова.Свернуть("Слово","Частота,Доля");
	Слова.Сортировать("Частота Убыв, Слово Возр");
	КоличествоСлов           = Слова.Итог("Частота");
	КоличествоУникальныхСлов = Слова.Количество();
	
	// Рассчет доли каждого слова в процентах
	Для Каждого СтрокаТаблицы Из Слова Цикл
		СтрокаТаблицы.Доля = Формат(СтрокаТаблицы.Частота/КоличествоСлов * 100, "ЧЦ=10; ЧДЦ=2");
	КонецЦикла;
	
	// Выводим результат
	ПечатьРезультата(Слова);
	ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.Анализ;

КонецПроцедуры
Показать

6. alexk-is 6533 20.05.10 00:10 Сейчас в теме
Работу блоками при обработке больших текстов можно посмотреть здесь http://www.infostart.ru/public/19856/
7. ildarovich 7850 10.10.11 22:52 Сейчас в теме
В публикации Порождающий запрос в качестве примера решена задача разбивки текста на слова и определения частоты слов непосредственно в запросе.
Оставьте свое сообщение