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

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

12.10.2018, 16:08. Показов 14622. Ответов 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;
        }
    }
}
0
Вложения
Тип файла: zip TextAnalysis.csproj.zip (378.0 Кб, 1 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2018, 16:08
Ответы с готовыми решениями:

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

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

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

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

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

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
Миниатюры
Практика «Парсер предложений» после обновления  
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
12.10.2018, 17:02 6
было бы намного быстрее и продуктивнее если бы вы задание то скинули, без задания неясно что от Вас хотят
0
1 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 9
12.10.2018, 17:04  [ТС] 7
Все задание:
В этом задании нужно реализовать метод в классе SentencesParserTask. Метод должен делать следующее:

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

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

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

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

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

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

Решение

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

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

единственное надо подправить там разделители предложений на все что по заданию у Вас
1
0 / 0 / 0
Регистрация: 31.03.2020
Сообщений: 1
31.03.2020, 21:02 10
Вот такое получилось у меня решение,опираясь на код 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2020, 21:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

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

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

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

После обновления Win8 до Win10 wi-fi, работает меньше часа, и после пишет, что нет подключения
Доброй день форумчане Обновил Win8 до Win10, начались проблемы с подключением к wi-fi, работает...

Практика после освоения основ языка: как научиться писать проекты с GUI?
Здравствуйте. Я уже год изучаю С++ на решении олимпиадных задач. Это такие задачи такого типа:...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.