Как взять рандомное количество слов из текста?

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Есть текст, как пример

Код:
А она послушает, вздохнет, встанет и скажет: Ну, спасибо, Ершов... да и в халупу. А ято иной раз всю ночь не сплю аж зубами скриплю. Барину Морозову, когда моя двоюродная сестра приглянулась, так послал, значит, за ей заводскую пекарку: танцевать, мол, приходи. Она и действительно русскую плясала загляденье. А как пришла, другие пошли танцы... Только утром вернулась простоволосая. Он вот, выходит, с Женей дерзновение имел, а я на ту барышню не мог и глаз поднять... Дерзать было нужно, сказал Андрей Андреевич. А вы понимаете, чем это тогда, при царском режиме, пахло Даром бы не спустили. Видал я, как корнет Мандр один раз при поручике Морозове вахмистерскую дочку обидел. На дуэли дрались. У них это просто. Белая кость Сделай я что силком над барышней, меня бы под расстрел подвели, а и то так изничтожили бы. На войне суд короткий. Ну, и теперь угробить могут. Я к тому и веду. Так вот, думал я, надо все переменить, чтобы все похорошему. Чтобы любовь стала вольная между всеми, равенство, братство и свобода во всем. И подошла к нам революция.     Андрей Андреевич с Ершовым спустились к железной дороге. Длинные пакгаузы были ярко освещены луною. Перед ними, в старой засохшей грязи завязли тяжелые тракторы. Несмотря на вечернее время, десятка три людей под присмотром вооруженных красноармейцев откапывали их. По неумелым движениям было видно, что эти люди совсем не привыкли к таким работам. Красноармеец презрительно толкнул в шею старика в длинном сюртуке и закричал: Как роешь, сопляк Ишь, лопату как держишь Красноармеец вырвал лопату из рук старика и стал ловкими и сильными движениями скапывать тракторную цепь. Ты вот как.. Буржуй ленивый Ершов мельком взглянул в лицо старика и отвернулся. Когда прошли мимо вокзала и стали подниматься к тюрьме, он заговорил опять: Свобода... равенство... братство... Вот оно наше равенство и свобода.. Вы знаете, кого он сейчас по загривкуто двинул Я его признал... Профессор здешний. Одни там, значит, по бульвару гуляют, в саду семечки лузгают, а другие ночью на работе. Это Гольдфарб им устроил. Ну, ладно. Так я, значит, мою речь дальше поведу. Пожалуйста, сказал Андрей Андреевич. Ночь была теплая, тихая и с Донского разлива тянуло ласковой свежестью. Дорога шла в гору, и по мере того, как они поднимались над станцией, разлив казался все ближе и ближе, нежною дрожью серебрясь под луной.
Надо брать каждый раз рандомное число слов, желательно чтобы они шли по порядку.
Например:
Надо взять 5 слов, берем
- сопляк Ишь, лопату как держишь
- толкнул в шею старика в
- Красноармеец вырвал лопату из рук

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

Возможно такое?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Есть текст, как пример

Код:
А она послушает, вздохнет, встанет и скажет: Ну, спасибо, Ершов... да и в халупу. А ято иной раз всю ночь не сплю аж зубами скриплю. Барину Морозову, когда моя двоюродная сестра приглянулась, так послал, значит, за ей заводскую пекарку: танцевать, мол, приходи. Она и действительно русскую плясала загляденье. А как пришла, другие пошли танцы... Только утром вернулась простоволосая. Он вот, выходит, с Женей дерзновение имел, а я на ту барышню не мог и глаз поднять... Дерзать было нужно, сказал Андрей Андреевич. А вы понимаете, чем это тогда, при царском режиме, пахло Даром бы не спустили. Видал я, как корнет Мандр один раз при поручике Морозове вахмистерскую дочку обидел. На дуэли дрались. У них это просто. Белая кость Сделай я что силком над барышней, меня бы под расстрел подвели, а и то так изничтожили бы. На войне суд короткий. Ну, и теперь угробить могут. Я к тому и веду. Так вот, думал я, надо все переменить, чтобы все похорошему. Чтобы любовь стала вольная между всеми, равенство, братство и свобода во всем. И подошла к нам революция.     Андрей Андреевич с Ершовым спустились к железной дороге. Длинные пакгаузы были ярко освещены луною. Перед ними, в старой засохшей грязи завязли тяжелые тракторы. Несмотря на вечернее время, десятка три людей под присмотром вооруженных красноармейцев откапывали их. По неумелым движениям было видно, что эти люди совсем не привыкли к таким работам. Красноармеец презрительно толкнул в шею старика в длинном сюртуке и закричал: Как роешь, сопляк Ишь, лопату как держишь Красноармеец вырвал лопату из рук старика и стал ловкими и сильными движениями скапывать тракторную цепь. Ты вот как.. Буржуй ленивый Ершов мельком взглянул в лицо старика и отвернулся. Когда прошли мимо вокзала и стали подниматься к тюрьме, он заговорил опять: Свобода... равенство... братство... Вот оно наше равенство и свобода.. Вы знаете, кого он сейчас по загривкуто двинул Я его признал... Профессор здешний. Одни там, значит, по бульвару гуляют, в саду семечки лузгают, а другие ночью на работе. Это Гольдфарб им устроил. Ну, ладно. Так я, значит, мою речь дальше поведу. Пожалуйста, сказал Андрей Андреевич. Ночь была теплая, тихая и с Донского разлива тянуло ласковой свежестью. Дорога шла в гору, и по мере того, как они поднимались над станцией, разлив казался все ближе и ближе, нежною дрожью серебрясь под луной.
Надо брать каждый раз рандомное число слов, желательно чтобы они шли по порядку.
Например:
Надо взять 5 слов, берем
- сопляк Ишь, лопату как держишь
- толкнул в шею старика в
- Красноармеец вырвал лопату из рук

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

Возможно такое?
если стандартными кубиками, то:

- текст берем в список с разделителем в виде {-String.Space-}
- подсчитываем кол-во строк в этом списке (учитываем это кол-во, чтобы не выйти за пределы)
- генерируем рандомную границу подсписка От
- генерируем границу подспика До (просто прибавляем 5 к От, если нужно кол-во слов 5)
- берем подсписок с указанием От и До..
- объединяем подсписок в переменную (восстанавливаем строку из 5 слов)

но если исходная текстовка достаточно объемная, то наверное ресурсозатратен будет такой вариант..
 
  • Спасибо
Реакции: doc

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
возможно. знаки препинания важны?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
если стандартными кубиками, то:

- текст берем в список с разделителем в виде {-String.Space-}
- подсчитываем кол-во строк в этом списке
- генерируем границу подсписка от
- генерируем границу подспика до (просто прибавляем 5, если нужно кол-вл слов 5)
- берем подсписок с указанием от и до..
- объединяем подсписок в переменную (восстанавливаем строку из 5 слов)

но если текстовка достаточно объемная, то наверное ресурсозатратен будет такой вариант..
спс, не подумал об этом.

возможно. знаки препинания важны?
нет, не особо, но если знаки будут, будет лучше наверно. потестим
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Код:
var wordsCount = 5;
var text = "А она послушает, вздохнет, встанет и скажет: Ну, спасибо, Ершов... да и в халупу. А ято иной раз всю ночь не сплю аж зубами скриплю. Барину Морозову, когда моя двоюродная сестра приглянулась, так послал, значит, за ей заводскую пекарку: танцевать, мол, приходи. Она и действительно русскую плясала загляденье. А как пришла, другие пошли танцы... Только утром вернулась простоволосая. Он вот, выходит, с Женей дерзновение имел, а я на ту барышню не мог и глаз поднять... Дерзать было нужно, сказал Андрей Андреевич. А вы понимаете, чем это тогда, при царском режиме, пахло Даром бы не спустили. Видал я, как корнет Мандр один раз при поручике Морозове вахмистерскую дочку обидел. На дуэли дрались. У них это просто. Белая кость Сделай я что силком над барышней, меня бы под расстрел подвели, а и то так изничтожили бы. На войне суд короткий. Ну, и теперь угробить могут. Я к тому и веду. Так вот, думал я, надо все переменить, чтобы все похорошему. Чтобы любовь стала вольная между всеми, равенство, братство и свобода во всем. И подошла к нам революция.     Андрей Андреевич с Ершовым спустились к железной дороге. Длинные пакгаузы были ярко освещены луною. Перед ними, в старой засохшей грязи завязли тяжелые тракторы. Несмотря на вечернее время, десятка три людей под присмотром вооруженных красноармейцев откапывали их. По неумелым движениям было видно, что эти люди совсем не привыкли к таким работам. Красноармеец презрительно толкнул в шею старика в длинном сюртуке и закричал: Как роешь, сопляк Ишь, лопату как держишь Красноармеец вырвал лопату из рук старика и стал ловкими и сильными движениями скапывать тракторную цепь. Ты вот как.. Буржуй ленивый Ершов мельком взглянул в лицо старика и отвернулся. Когда прошли мимо вокзала и стали подниматься к тюрьме, он заговорил опять: Свобода... равенство... братство... Вот оно наше равенство и свобода.. Вы знаете, кого он сейчас по загривкуто двинул Я его признал... Профессор здешний. Одни там, значит, по бульвару гуляют, в саду семечки лузгают, а другие ночью на работе. Это Гольдфарб им устроил. Ну, ладно. Так я, значит, мою речь дальше поведу. Пожалуйста, сказал Андрей Андреевич. Ночь была теплая, тихая и с Донского разлива тянуло ласковой свежестью. Дорога шла в гору, и по мере того, как они поднимались над станцией, разлив казался все ближе и ближе, нежною дрожью серебрясь под луной.";
var split = text.Split(' ').ToList();
var rnd = new Random().Next(split.Count - wordsCount);
var output = string.Join(" ", split.GetRange(rnd, wordsCount));
return output;
Разбиваем через пробел.
Берем рандомное число, в пределах кол-во слов - кол-во слов в выходной фразе.
Берем диапазон элементов равный кол-ву слов в выходной фразе начиная с радомного элемента и склеиваем через пробел.
 
  • Спасибо
Реакции: Artamosa

Artamosa

Client
Регистрация
31.01.2016
Сообщения
59
Благодарностей
4
Баллы
8
Суперский вариант решения.
Спасибо!

Подскажите, а как на C# из большого текста выбирать предложения определённой длины. Например, от X до Y слов.
И возможно ли например на том же C# выбирать такие предложения, которые содержат ключевое словосочетание?

Заранее огромное спасибо!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)