Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/120: Рейтинг темы: голосов - 120, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 9

Практика «Парсер предложений» после обновления

12.10.2018, 16:08. Показов 24961. Ответов 9

Студворк — интернет-сервис помощи студентам
Помогите выполнить практику

Я начал прописывать переменные массивов, пытался писать исключения, ибо считали некоторые конструкции как отдельное предложение. Прога компилируется, но говорит что не все исключения прописаны. Насколько понимаю, он требует закрывающий слэш, но его как отдельный знак поставить невозможно, ПОМОГИТЯ

C#
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
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace TextAnalysis
{
    static class SentencesParserTask
    {
        public static List<List<string>> ParseSentences(string text)
        {
            var stopWords =new string[]{"Mr.","Mrs."};
            var sentencesList = new List<List<string>>();
            var punctuation = new char[] { '.', '!', '?', ';', ':', '(', ')' };
            var sentences = text
                .Split(punctuation).Except(stopWords)
                .Select(a => a.Split(' ',',','"',)
                .Where(b => b.Any(c=> char.IsLetter(c)&&char.IsLower(b[0])
                || c=='`'&& char.IsLetter(c) && char.IsLower(b[0])))
                .Select(b => b).ToList())
                .Where(z=> z.Count!=0).Select(z=>z).ToList();
 
 
            return sentences;
        }
    }
}
Вложения
Тип файла: zip TextAnalysis.csproj.zip (378.0 Кб, 6 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2018, 16:08
Ответы с готовыми решениями:

Практика «Парсер предложений» на ulearn
В этом задании нужно реализовать метод в классе SentencesParserTask. Метод должен делать следующее: Разделять текст на предложения, а...

Парсер предложений (
Всем привет! Прохожу курс uLearn есть задание текст: В этом задании нужно реализовать метод в классе SentencesParserTask. Метод...

После перезагрузки, затребованной Центром обновления для начала установки обновления, установка не начинается
Центр обновления Windows все время требует перезагрузки для установки обновления. Перезагружаюсь, но ничего не устанавливается, не...

9
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
12.10.2018, 16:21
Цитата Сообщение от CyberIdiot Посмотреть сообщение
он требует закрывающий слэш, но его как отдельный знак поставить невозможно
Удвой его
0
1 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 9
12.10.2018, 16:22  [ТС]
я удваивал, но ничего не вышло
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,901
Записей в блоге: 1
12.10.2018, 16:33
CyberIdiot, значит опииши точнее в чем именно проблема.
0
1 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 9
12.10.2018, 16:41  [ТС]
в общем, я продолжил копаться и, как я понял, мне надо либо перечислить все возможные знаки, но как это мне сделать в скобках сплита, я догадаться не могу

C#
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
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace TextAnalysis
{
    static class SentencesParserTask
    {
        public static List<List<string>> ParseSentences(string text)
        {
            var stopWords =new string[]{"Mr.","Mrs."};
            var sentencesList = new List<List<string>>();
            var punctuation = new char[] { '.', '!', '?', ';', ':', '(', ')' };
            var sentences = text
                .Split(punctuation).Except(stopWords)
                .Select(a => a.Split(' ',',','"','\t','\r','\n','^','%','#','$','+','=','-')
                .Where(b => b.Any(c=> char.IsLetter(c)&&char.IsLower(b[0])
                || c=='`'&& char.IsLetter(c) && char.IsLower(b[0])))
                .Select(b => b).ToList())
                .Where(z=> z.Count!=0).Select(z=>z).ToList();
 
 
            return sentences;
        }
    }
}
Миниатюры
Практика «Парсер предложений» после обновления  
1
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
12.10.2018, 17:02
было бы намного быстрее и продуктивнее если бы вы задание то скинули, без задания неясно что от Вас хотят
0
1 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 9
12.10.2018, 17:04  [ТС]
Все задание:
В этом задании нужно реализовать метод в классе SentencesParserTask. Метод должен делать следующее:

Разделять текст на предложения, а предложения на слова.

a. Считайте, что слова состоят только из букв (используйте метод char.IsLetter) или символа апострофа ' и отделены друг от друга любыми другими символами.

b. Предложения состоят из слов и отделены друг от друга одним из следующих символов .!?;)

Приводить символы каждого слова в нижний регистр.

Пропускать предложения, в которых не оказалось слов.

Метод должен возвращать список предложений, где каждое предложение — это список из одного или более слов в нижнем регистре.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
12.10.2018, 17:13
CyberIdiot, в соседней теме такое решали буквально день два назад, надеюсь сами найдете
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
12.10.2018, 17:25
Лучший ответ Сообщение было отмечено CyberIdiot как решение

Решение

CyberIdiot, поиском конечно не пользовались

ссылка на сообщение с ответом:
Добавление элементов в коллекцию List

единственное надо подправить там разделители предложений на все что по заданию у Вас
1
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 1
31.03.2020, 21:02
Вот такое получилось у меня решение,опираясь на код CyberIdiot . Ulearn принял,Всё красиво
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TextAnalysis
{
   static class SentencesParserTask
    {
        public static List<List<string>> ParseSentences(string text)
        {
            var listSentences = new List<List<string>>(); // Возвращаемый список
            if (text == null) return null; //проверка на наличие текста
            text = text.ToLower();
            var sentences = text.Split(".:;?!()".ToCharArray(),//парсеный на предложения текст
                StringSplitOptions.RemoveEmptyEntries);
            foreach(var sent in sentences)
            {
                var listWords = new List<string>(); // Список для слов
                var builder = new StringBuilder();
                foreach (var ch in sent)
                {
                    if (char.IsLetter(ch) || ch == '\'')
                        builder.Append(ch);
                    else
                        AddNotEmptyWord(builder, listWords);
                }
                AddNotEmptyWord(builder, listWords);
                if (listWords.Count > 0)
                    listSentences.Add(listWords);
            }
            return listSentences;
        }
 
        public static void AddNotEmptyWord(StringBuilder builder,List<string> listWords)
        {
            if (builder.Length > 0)
            {
                listWords.Add(builder.ToString());
                builder.Clear();
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2020, 21:02
Помогаю со студенческими работами здесь

Центр обновления требует перезагрузку для начала установки обновления, но после неё ничего не устанавливается
Центр обновления Windows все время требует перезагрузки для установки обновления. Перезагружаюсь, но ничего не устанавливается, не...

Что делать после книги Праты? Практика || Теория
Привет. Думаю у каждого здесь обывателя был идентичный вопрос. Вот прочитал я книгу, дальше что? Теории вагон, практики процентов 5. Есть...

После обновления драйвера на видеокарту экран после запуска винды выключается
У меня Windows 7,ноутбук Asus N61J! Видеокарта:AMD Radeon Mobility HD 5730! Решил обновить драйвер,так как некоторые игры начали его...

После обновления драйверов Nvidia GTX 630 после загрузки чёрный экран
Вообщем расскажу по порядку: Я вообще люблю обновлять весь софт. Особенно драйвера. И вот каждый день ищу обновления. Вообщем настал...

После разворачивания списка страница обновляется. Нужно остаться на предыдущей позиции после обновления
Есть сайт http://landpda.ru/ На нём установлены 2 кнопки. Нажатие на любую вызывает отдельный DIV с информацией, в процессе страница...


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

Или воспользуйтесь поиском по форуму:
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