С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 1
1

Найти наибольшее количество предложений текста, в которых есть одинаковые слова

29.03.2015, 18:18. Показов 5659. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти наибольшее количество предложений текста, в которых есть одинаковые слова.
Тип текстовой переменной - String.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2015, 18:18
Ответы с готовыми решениями:

Найти количество предложений в которых есть повторяющиеся слова
здравствуйте. мне нужно выполнить задание: найти количество предложений в которых есть...

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

Найти количество предложений в которых есть повторяющиеся слова
#include "stdafx.h" #include <windows.h> #include <iostream> #include <conio.h> using...

Найти количество предложений в которых есть повторяющиеся слова не используя string
Сотни раз пытался сделать, но всё безуспешно.

6
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 6
15.10.2019, 00:20 2
Пользуясь случаем передаю привет Ольге Рябычиной

PS: Код находит предложение с наибольшим кол-вом одинаковых слов. В конце отсортированная коллекция можете вывести что вам угодно.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
private int findMax(String str) {
        byte[] bytes = str.getBytes();
        byte tocka = '.';
        byte vopr = '?';
        byte voscl = '!';
   
        Map<String, Integer> sentences = new HashMap<String, Integer>(); 
        
        int max = bytes.length;
        if (max>0) {
            int i = 0;
            byte a;
            
            while(i<max){
                String sentence = "";
                
                while(i<max){
                    a = bytes[i];
                    i = i + 1;
 
                    if(i<max){
                        if(a == tocka || a == vopr || a == voscl){ //ПРЕДЛОЖЕНИЕ.
                            //проверяем следующий символ
                            a = bytes[i];
                            i = i + 1;
                            if(i<max){
                                if(a == tocka || a == vopr || a == voscl){ //возможно это троеточие, почемубы и нет? или ???
                                    while(i<max){
                                        a = bytes[i];
                                        if(a!=tocka && a!=vopr && a!=voscl){
                                            break;
                                        }
                                        i = i + 1;
                                    }
                                }
                            }
                            break;
                        }
                    }
                    
                    byte[] dwawdawkda = { a }; 
                    
                    sentence += new String(dwawdawkda);
 
                }                
                sentences.put(sentence, 0);
                
                String[] wordsInSentence = sentence.split(" ");
                
                
                for(int j = 0; j < wordsInSentence.length; j++) {
                    wordsInSentence[j] = wordsInSentence[j].replaceAll("[^a-zA-Z]", "");
                    System.out.println(wordsInSentence[j]);
                }
                
                HashMap<String, Integer> originallyWords = new HashMap<String, Integer>(); 
                for(int j = 0; j < wordsInSentence.length; j++) {
                    if (originallyWords.containsKey(wordsInSentence[j])) {
                        Integer figure = originallyWords.get(wordsInSentence[j]);
                        originallyWords.put(wordsInSentence[j], ++figure);
                    } else {
                        originallyWords.put(wordsInSentence[j], 1);
                    }
                }
                sentences.put(
                    sentence, 
                    originallyWords.entrySet().stream()
                        .sorted(Map.Entry.<String, Integer>comparingByValue()
                        .reversed()).iterator().next().getValue()
                );
                sentence = "";
            }
        }
        
        HashMap.Entry<String, Integer> entry = sentences.entrySet().stream()
                .sorted(Map.Entry.<String, Integer>comparingByValue().reversed()).iterator().next();
        
        String key = entry.getKey();
        Integer value = entry.getValue();
        
        System.out.println(sentences);
        
        System.out.println(key);
        System.out.println(String.valueOf(value));
    
        return value;
    }
0
Эксперт PythonЭксперт Java
19509 / 11049 / 2931
Регистрация: 21.10.2017
Сообщений: 23,302
15.10.2019, 08:36 3
Цитата Сообщение от fligo15 Посмотреть сообщение
В конце отсортированная коллекция
Java
1
2
3
4
5
6
7
8
9
10
11
public List<String> foo(String source) {
        return Arrays.stream(source.split("[.!?]"))
                .map(line -> line.replaceAll("\\W+", " "))
                .sorted(Collections.reverseOrder(Comparator.comparingLong(x -> Arrays.stream(x.split(" "))
                        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
                        .values()
                        .stream()
                        .max(Comparator.comparingLong(Long::longValue))
                        .get())))
                .collect(Collectors.toList());
    }
1
66 / 43 / 24
Регистрация: 18.08.2019
Сообщений: 129
15.10.2019, 12:40 4
iSmokeJC, что-то не выстрелило, или я неправильно прикрутил

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
 
public class WordFreqCnt {
 
    public static void main(String[] args) {
        
        String str = "Быстропе развитие услуг добровольного медицинского "
                   + "страхования услуг дало толчок для улучшения и совершенствования "
                   + "предоставляемых медицинских услуг. Начиная с 2008 года "
                   + "группа проект по созданию сети медицинских центров по всей "
                   + "территории России, под названием «Альфа-Центр Здоровья».";
        List<String> lst = foo(str);
        System.out.println(lst.toString());
        
    }
    
    public static List<String> foo(String source) {
        return Arrays.stream(source.split("[.!?]"))
                .map(line -> line.replaceAll("\\W+", " "))
                .sorted(Collections.reverseOrder(Comparator.comparingLong(x -> Arrays.stream(x.split(" "))
                        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
                        .values()
                        .stream()
                        .max(Comparator.comparingLong(Long::longValue))
                        .get())))
                .collect(Collectors.toList());
    }
    
}


Результат
Кликните здесь для просмотра всего текста
Код
Exception in thread "main" java.util.NoSuchElementException: No value present
	at java.util.Optional.get(Optional.java:135)
	at test.WordFreqCnt.lambda$foo$1(WordFreqCnt.java:32)
	at java.util.Comparator.lambda$comparingLong$6043328a$1(Comparator.java:511)
	at java.util.Collections$ReverseComparator2.compare(Collections.java:5178)
	at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
	at java.util.TimSort.sort(TimSort.java:220)
	at java.util.Arrays.sort(Arrays.java:1512)
	at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:348)
	at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at test.WordFreqCnt.foo(WordFreqCnt.java:33)
	at test.WordFreqCnt.main(WordFreqCnt.java:19)
C:\Users\16738113\AppData\Local\NetBeans\Cache\10.0\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\16738113\AppData\Local\NetBeans\Cache\10.0\executor-snippets\run.xml:94: Java returned: 1
BUILD FAILED (total time: 2 seconds)


Добавлено через 37 минут
Что-то я в формулировке запутался.
В теме рядом https://www.cyberforum.ru/java... 25265.html ищем предложения, в которых есть повторяющиеся слова.
Здесь же, предположительно, нужно распределение слов по предложениям и вывести предложение, имеющее максимальное пересечение по словам с другими предложениями?
0
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
15.10.2019, 13:25 5
davson, в таком виде: "Найти наибольшее количество предложений текста, в которых есть одинаковые слова". Условие сформулировано неоднозначно.
На мой взгляд прошаренной блондинки есть два варианта понимания:
1. Найти количество предложений текста, внутри которых встречаются одинаковые слова. Это как в той теме
2. Найти наибольшее количество предложений текста, содержащих как минимум одно общее слово.
0
4866 / 2664 / 914
Регистрация: 29.11.2010
Сообщений: 5,747
15.10.2019, 17:07 6
Цитата Сообщение от davson Посмотреть сообщение
.map(line -> line.replaceAll("\\W+", " "))
Уберите эту строку.

Добавлено через 24 секунды
Ну и вместо .get() стоит написать .orElse(0L)
1
66 / 43 / 24
Регистрация: 18.08.2019
Сообщений: 129
15.10.2019, 17:46 7
lemegeton, заработало.
На выходе list с предложениями.
Добавил пару предложений в строку - снова NoSuchElementException.
Буду вечером ковырять.
0
15.10.2019, 17:46
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2019, 17:46
Помогаю со студенческими работами здесь

Найти все слова, в которых есть две подряд идущие одинаковые буквы
Дан массив из слов Z(m). Найти все слова, в которых есть две подряд идущие одинаковые буквы.

Дан массив из слов Z(m). Найти все слова, в которых есть две подряд идущие одинаковые буквы
Уважаемые программисты :) Я уверена,что вы мне поможете)Пожалуйста! Задание: Дан массив из слов...

Найти слова, в которых заданный символ встречается наибольшее количество раз
Доброе время суток еще раз :) Нужна помощь в написании программы на Асемблере. Буду благодарен за...

String. Найти в тексте слова, в которых содержится наибольшее количество гласных букв
Помогите решить задачу. Пользователем вводится предложение затем выводит слово в котором...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru