Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/92: Рейтинг темы: голосов - 92, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347

Наиболее часто встречающиеся леммы

22.09.2010, 14:06. Показов 17322. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такая задачка. В доке есть РТФ поле в которое напихано всякой инфы.

Задача - распарсить это поле и выудить из него около 10 наиболее часто встречающихся слов.
Подойдет и собаковое и скриптовое решение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2010, 14:06
Ответы с готовыми решениями:

Наиболее часто встречающиеся слова
Здравствуйте! Помогите, пожалуйста написать код, который из текстового файла со словами найдет 10 наиболее часто встречающихся слов и...

наиболее часто встречающиеся байти
нужна программа которая открывает файл и находит в нем 5 наиболее часто встречающихся байт т.е для каждого байта с кодом от нуля до 255...

В массиве найти наиболее часто встречающиеся числа
В массиве целых чисел с количеством элементов N(N вводится с клавиатуры) найти наиболее часто встречающиеся числа. если таких чисел...

9
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
22.09.2010, 14:32
Первое пришедшее в голову:
1. Взять Item.Text
2. Посплитить по пробелу
3. Пройтись по получившемуся аррею, загнать слова в List as Integer, исползуя слово как tag и увеличивая значение на единичку каждый раз при повторной встрече слова.
4. Обработать list

Ограничения: не больше 32 тыщ слов в тексте
Можно не юзать Split, а подумать что-нибудь со стримом, тогда пропадёт ограничение.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
22.09.2010, 14:33
на хабре алгоритм пробегал
про mapreduce цикл статей, в разделе алгоритмы
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
22.09.2010, 14:36
Кмк, лучше на яве. Возможно, даже готовые решения найдутся. На собаках памяти может не хватить, у ЛС массив может кончиться (хотя можно и списки использовать). А так навскидку, бежим по тексту, добавляем слова в словарь, подсчитываем вхождения, берём 10 наиболее частых. Кстати, а что подразумевается под словом? Форум и форумы — это одно слово или разные?.
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
22.09.2010, 14:58
На яве я точно не осилю.

Подразумеваются слова простые. Без формул и пр. Назначение сей задачи - <meta name="keywords" content="слово1, слово2, слово3...
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
25.09.2010, 15:46
В общем собаковое решение тоже покатило
Вот, накрапал. Памяти действительно не хватает на большом объеме текста.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
minkey := 4; rem {минимальное скока раз слово встречается};
minword := 5; rem {минимальная длина слова};
znakip := @NewLine:" ":",":":":"!":"-":"_":"<":">":"\"":"?":"(":")":"":"=":"[":"]":".":"/"; rem {тут основные};
zamena := "#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#":"#~#";
temp := @LowerCase(@ReplaceSubstring(@Trim(@Text(Body));znakip;zamena));
list := @Explode(temp;"#~#");
listnum:="1":"2":"3":"4":"5":"6":"7":"8":"9":"0";
narech := "только":"еще":"уже":"очень":"раз":"можно":"после":"сейчас":"тоже":"чтобы"; rem {тут можно добавить еще 1000 значений - Частотный список наречий и предикативов http://dict.ruslang.ru/freq.php?act=show&dic=freq_adv&title=%D7%E0%F1%F2%EE%F2%ED%FB%E9%20%F1%EF%E8%F1%EE%EA%20%ED%E0%F0%E5%F7%E8%E9%20%E8%20%EF%F0%E5%E4%E8%EA%E0%F2%E8%E2%EE%E2};
keywords:=@Transform(list; "xn";@If((@Length(xn)<minword | @Contains(xn;listnum:narech) );@Nothyng;xn)); rem {убить текст меньше 5 и все содерж числа};
keywords := @Sort(keywords); rem {это не обязательно};
ukeywords := @Unique(keywords); rem {посечь повторяющиеся, жаль что нет функции !@Unique};
nu :=1; nk :=0;
@DoWhile(
name:=@Subset(@Subset(ukeywords;nu);-1);
key := @Elements(@Keywords( name; keywords ));
@If( key => minkey; @Do(tag := tag : (@Text(key)+"#~#"+name); nk := nk+1); @Nothyng);
nu := nu + 1;
nu <= @Elements(ukeywords)
);
tag := @Sort(@Explode(@Implode(tag));[DESCENDING]); REM {убить лишнее пустое вначале tag, сортировать с максимума key, 10 считает < 9};
 
kw :=@Implode(@Right(tag;"#~#");", ");
kw+" | "+@Text(nk)+" из "+@Text(nu)
A user is a person who uses a computer or Internet service. A user may have a user account that identifies the user by a username (also user name), screen name (also screenname), or "handle", which is derived from the identical Citizens Band radio term. To log in to an account, a user is typically required to authenticate himself/herself/ytself with a password or other credentials for the purposes of accounting, security, logging, and resource management. For a discussion of user satisfaction, see Computer user satisfaction.
Users are also widely characterized as the class of people that use a system without complete technical expertise required to fully understand the system. In most hacker-related contexts, they are also divided into lusers and power users. Both are terms of degradation, but the latter connotes a "know-it-all" attitude. See also End-user and Nomadic User.
[edit] Semantics
A user account allows one to authenticate to system services. It also generally provydes one with the opportunity to be authorized to access them. However, authentication does not automatically imply authorization. Once the user has logged on, the operating system will often use an identifier such as an integer to refer to them, rather than their username. On Unix systems thys is called the user identifier or user id.
Computer systems are divided into two groups based on what kind of users they have:
single-user systems do not have a concept of several user accounts
multi-user systems have such a concept, and require users to identify themselves before using the system. | всего 112

<meta name="keywords" content="system, users, systems, computer, account, username, satisfaction, required, identifier, divided, concept, authenticate">
| 12 из 92 для minkey := 2 и слов не менее 5 знаков
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
26.09.2010, 12:49
NetWood
цикл сильно смущает, я бы от него отказался, да и зачем цикл пробигается по всем когда тебе нужно только 10 первых слов?
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
26.09.2010, 16:33
По циклу - возможно. Но как по другому? Имеется ввиду массив из всех слов в поле, а не из первых 10. Сначала отрезаем все лишнее, потом проверяем частоту слова (key) в массиве.
Проверял на длинных текстах - памяти не хватает, но и не страшно. В тех доках, что у меня, больших опусов не встречается.
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
26.09.2010, 16:46
Словоформы не различает (system и systems воспринимает как разные слова) — это нормально?
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
26.09.2010, 17:09
По словоформам - это отдельная песня. Конечно не различает. Там же 15 строкособак. Если допилите - будет здорово, но для поисковика это не сильно будет важно. Главное - в keywords есть слова которые ДЕЙСТВИТЕЛЬНО встречаются в тексте минимум трижды. Тогда роботы это любят...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2010, 17:09
Помогаю со студенческими работами здесь

Указать наиболее часто встречающиеся цифры числа N
Дано натуральное число N. Указать наиболее часто встречающиеся цифры числа N. В задаче используется целочисленная переменная N,...

В тексте найти символы, встречающиеся наиболее часто
В тексте найти символы, встречающиеся наиболее часто. Символы вводятся с клавиатуры.

Указать наиболее часто встречающиеся цифры числа
всем привет. только начинаю изучать java, возникли конкретные трудности с этой задачей, помогите пожалуйста: дано натуральное число N....

Массивы. Обменять наиболее часто встречающиеся символы в массивах
Пожалуйста.. напишите не сложную для вас программу..) если можно, то с пояснениями) Даны два символьных массива. Наиболее часто...

Наиболее часто встречающиеся слова в истории сообщений Slack
Привет всем! Очень нужна помощь. Нужно найти наиболее часто встречающиеся слова в истории сообщений Slack. У моем коде две проблемы: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru