Перейти к содержимому
RU
Играть

Форум

Флуда требуют наши сердца!


3BEPO3ABP

Рекомендованные сообщения

1 час назад, Fizzika сказал:

 

Чего виндузятники не сделают, лишь бы не использовать linux и не решать подобные задачи в пару строчек)

 

А так, если отойти от фанбойства, мне дофига нравится K&R сишный код подсчёта слов в строках, прям из их книжки.

Вот прям смотришь на него, и хочется бросить всё, открыть няшную сишку и написать какую-нибудь вундервафлю

Страшные вы люди.

let string = /*сюды вытягиваем текст любым способом*/

let set =  new Set()

for (let i of string.replace("[^W\S]","").split(" "))

set.push(i)

console.log(set.lenght)

 

И все, 5 строк кавайного JSа

Изменено пользователем WALLE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

25 минут назад, Fizzika сказал:

Чего виндузятники не сделают, лишь бы не использовать linux и не решать подобные задачи в пару строчек)

PowerShell

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 minutes ago, WALLE said:

Страшные вы люди.

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

 

А без всего этого данный код не более чем игрушка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, WALLE сказал:

И все, 5 строк кавайного JSа

В том-то и прикол был, заморочиться на batch'e и отыскать возможность. Опять же самописный код душу греет. Можем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 minutes ago, P_woland said:

PowerShell

Если честно, я не понимаю прикола этой штуки, по мне так для простой скриптоты баш будет лучше, ну а дальше уже проще переключиться на питон/го

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

document.addEventListener('keydown', function(event) {
  if (event.code == 'Enter' && event.ctrlKey ) {
    let string = window.getSelection().toString()
    let set =  new Set()
    for (let i of string.replace("[^W\S]","").split(" "))
         set.push(i)
    alert(set.lenght)
  }
});

Капец сложно)

Не очень уверен на счет того, что сразу запустится - код не отлаживал, мб косякнул с опечатками/сигнатурами, но идейно оно выглядит вот так

Изменено пользователем WALLE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 минуты назад, Fizzika сказал:

Если честно, я не понимаю прикола этой штуки

Я сам в павер шелл ни в зуб ногой. А на питоне этот скрипт выглядел бы куда более красивее и лаконичнее. Но, повторюсь, задачей было именно на cmd.exe

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 minutes ago, WALLE said:

Капец сложно)

Работает в контексте одной страницы (ну или надо ставить как расширение для броузера)

Ну и показывает не уведомление, а блокирущее окно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, WALLE сказал:

document.addEventListener('keydown', function(event) {
  if (event.code == 'Enter' && event.ctrlKey ) {
    let string = window.getSelection().toString()
    let set =  new Set()
    for (let i of string.replace("[^W\S]","").split(" "))
         set.push(i)
    alert(set.lenght)
  }
});

 

У меня выводит слова и количество их в файле. То есть задача была, как определить авторство текста. Если текст достаточно длинный и их (текстов) много для сравнения, то можно с достаточно высоким процентом вероятности утверждать, что текст написан определённым автором. Есть такой метод у литературоведов. Только раньше это делалось хрен знает как (вручную?). Теперь же есть ЭВМ.

Изменено пользователем P_woland

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, P_woland сказал:

У меня выводит слова и количество их в файле. То есть задача была, как определить авторство текста. Если текст достаточно длинный и их (текстов) много для сравнения, то можно с достаточно высоким процентом вероятности утверждать, что текст написан определённым автором. Есть такой метод у литературоведов. Только раньше это делалось хрен знает как (вручную?). Теперь же есть ЭВМ.

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

 

После этой всей переписки сомнения в авторстве были крайне редки. Хотя был случай когда Некрасов прикалывался, накатав "Три страны света" совместно с Панаевой, что-то там приписал Григорович и еще ряд авторов, и потом многие сидели разбирали, кто ж какую главу писал, сравнивая стили с остальным творчеством авторов. Точного утверждения они кстати и не добились.

В своё время Некрасова критика заметно песочила за это коллективное писательство, называя это даже то издевательством, то вообще надругательством над литературой.

 

А Ильфы-Петровы появились значительно позже. До этого так совместно что-то писать было не принято.

 

Метод же проверки авторства по тексту - пригоден разве лишь для сбора косвенных улик для уголовного дела, когда некто что-то экстремистское усиленно пишет. Но там всё значительно проще - подобные писаки литературными способностями не обладают и их словарный запас крайне ограничен, их вычислить очень легко. Хотя и в этом нет особого смысла, анонимности в сети нет, это выдумка. ВСЕ подключаются через провайдеров, а не волшебным образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, Pasha838 сказал:

Некрасов прикалывался

Однажды, в студеную зимнюю пору,

Я из лесу вышел; был сильный мороз.

Гляжу, поднимается медленно в гору

Лошадка, везущая хворосту воз.©

Себя не узнаёшь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

12 часа назад, P_woland сказал:

У меня выводит слова и количество их в файле. То есть задача была, как определить авторство текста. Если текст достаточно длинный и их (текстов) много для сравнения, то можно с достаточно высоким процентом вероятности утверждать, что текст написан определённым автором. Есть такой метод у литературоведов. Только раньше это делалось хрен знает как (вручную?). Теперь же есть ЭВМ.

Все еще JS
17 строчек, из которых большая часть - шаблонная, выдранная с документации

document.addEventListener('keydown', function(event) {
  if (event.code == 'Enter' && event.ctrlKey ) {
    let string = window.getSelection().toString().toLowerCase()
    let set =  new Set();
    let map = new Map();
    for (let i of string.split(/\s/))
     {
        let srt = i.replace(/[^а-я|\s]/g, "");
        map.set(srt, string.replace(/[^а-я|\s]/g, "").split(/\s/).reduce((acc, curr)=>{
            if (curr === srt)    
                acc++;
               return acc;
            }, 0))
	 }
    console.log(map);
  }
});

Опциолнально - можно выводить а алерт, для этого нужно еще несколько строк добавить (JSON.stringify не дружит с Map без бабеля), но порядок читаемости и сложности кода сопоставим

 

 

Изменено пользователем WALLE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 минут назад, WALLE сказал:

Все еще JS
17 строчек

Так я не спорю о том, что на JS либо Python3 это выглядит значительно лаконичнее, но, повторюсь, задача была попробовать сделать сие через интерпретатор команд.

И да, я бы немного расчленил твой код. Слишком уж громоздко выглядит. Лучше на пару-тройку строк длиннее, но удобочитаемее, чем всё в одну кучу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 часов назад, P_woland сказал:

Опять вылез со своей лептой. Иди, тебе сказано, козла дои или змею души, литературовед ты наш непризнанный. В каждой бочке затычка.

Паша достояние ТО, он и жнец, и швец, и в ТО игрец. Седни отработал Ореховщину за ради пары строчек на форуме - ужос, Содом и Гоморра в хламе творится, видать последний раз решился я на это.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 часа назад, Fizzika сказал:

Работает в контексте одной страницы (ну или надо ставить как расширение для броузера)

Ну и показывает не уведомление, а блокирущее окно

Так
А в твоем представлении alert это не уведомление?) Можно блок с результирующим текстом выводить на экран, это не сложнее
То, что он работает на одной страничке - это само собой. Обернуть это в расширение или встроить в свой сайт - вольный выбор читателя)

З.Ы. - на этом форукме как то стремно работают уведомления о цитатах

50 минут назад, P_woland сказал:

 

И да, я бы немного расчленил твой код. Слишком уж громоздко выглядит. Лучше на пару-тройку строк длиннее, но удобочитаемее, чем всё в одну кучу.

Думал в эту сторону, паравозик у string не очень нравится
Но логичнее оно не станет, да и в редакторе смотрелось норм

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

15 минут назад, WALLE сказал:

Думал в эту сторону, паравозик у string не очень нравится

"Паровозик", как раз, норм, а вот

map.set(srt, string.replace(/[^а-я|\s]/g, "").split(/\s/).reduce((acc, curr)=>{
            if (curr === srt)    
                acc++;
               return acc;
            }, 0))

по мне, не очень выглядит.

Ладно, всё это на любителя.

Изменено пользователем P_woland

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 minutes ago, WALLE said:

А в твоем представлении alert это не уведомление?)

Это блокирующее модальное окно) При этом уведомление на любой ОС это маленькое всплывающее окошко, которое не берёт на себя фокус.

 

13 minutes ago, WALLE said:

Можно блок с результирующим текстом выводить на экран, это не сложнее

И потом убирать его через n секунд) Плюс стилизовать его как-то надо. Плюс написать юзерскрипт))

 

Короче, слишком много проблем из-за программы на уровне hello-world) Которая работать ещё будет только в браузере

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Fizzika сказал:

 Которая работать ещё будет только в браузере

А вот тут вот вспоминается старый холивар с товарищем про веб и десктоп разработку.

Введу в курс - когда только начинал прогать, увлекся в основном десктопом и С#, в то время как товарищ, который меня в это все втянул тяготел в вебу. 

Основным аргументом было "сейчас большая часть вещей делается в браузере - и игрушки, и таблички/доки (по типу ворд?онлайн), и общение (клиентные месс5джеры типа аськи - полумертвые)"

И в принципе - сейчас я с ним согласен. В большинстве случаев, когда мне нужно посчитать слова, я загоняю текст на текст.ру и радуюсь жизни.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 hours ago, P_woland said:

У меня выводит слова и количество их в файле

 awk -F '[.!?,[[:space:]]]*' '{for(i=1;i<=NF;i++) a[tolower($i)]++} END {for(k in a) print k,a[k]}' ./file.txt

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Товарищи программеры! Может забабахаете свою темку? Ну нельзя так насиловать йуный уставший моск, тем паче зашуганный ковидкой.

Пы.Сы. А у Тихановской усики пробиваются:P.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, Fizzika сказал:

 awk -F '[.!?,[[:space:]]]*' '{for(i=1;i<=NF;i++) a[tolower($i)]++} END {for(k in a) print k,a[k]}' ./file.txt

 

Эльфские руны)

Изменено пользователем WALLE
  • Хаха 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

53 минуты назад, Guard_of_world сказал:

Бонд умер, Вейдер умер. Что ещё 2020 год учудит?

Вова?

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×
×
  • Создать...