Код должен проходить валидацию JSCS.
Просматривая ваши душевные отзывы (кстати, большое спасибо за них), мы не могли не пройти мимо одного:
В общем, под конец семестра ваша бабуленька заколебала! С сервантом она вообще норм так зашла, с котятками ещё ничего, а вот с макетом и (обоже, она пробралась и в скрипты!) Котлом алхимика -- ужс. Переборщили :( Далее -- котики. Если честно, никогда не была фанатом котов. Но после такого их обилия.. В общем, коты -- огонь тема :)
И нам захотелось понять действительно ли котиков и бабуленек было так много.
Предлагаем вам помочь нам и написать небольшой модуль, который проанализирует тексты задач к первому семестру, соберёт статистику встречаемости слов, выведет топ и тем самым подтвердит или опровергнет наблюдение автора отзыва.
Необходимо экспортировать из модуля метод top(n), который возвращает топ n слов в формате:
котик 42
бабуленька 19
пиратка 8
Важно, чтобы статистика считалась с учётом однокоренных: «бабушка» и «бабуленька» – одно слово, «кот» и «котик» – тоже. В статистике не надо учитывать предлоги, союзы и знаки препинания.
Второй метод, который необходимо экспортировать – count(word), который возвращает число повторений данного слова:
const counter = require('./counter.js');
counter.count('котик');
// 42
counter.top(2);
// котик 42
// бабуленька 19
Для того, чтобы получить тексты задач, рекомендуем воспользоваться Github API: https://developer.github.com/v3/
Важно, не класть ключ доступа (токен) к Github в репозиторий,
а положить в файл key.txt
, не забыв добавить его в исключения .gitignore
.
В комментариях к пуллу вы можете поделится собранной статистикой – «топ 10 слов»
В качестве дополнительного задания предлагается использовать потоки (Streams).