garrrikkotua / text_generator Goto Github PK
View Code? Open in Web Editor NEWSimple text generator with bigrams
Simple text generator with bigrams
Lines 63 to 66 in 9d2d037
Идея твоя понятна в принципе, но она порождает неверное поведение генератора, который на seed *start* генерирует текст. Подумай как решить эту проблему
Lines 36 to 42 in 9d2d037
Цикл - это медленно, особенно если у тебя для слова есть много вариантов следующего, переделай на numpy.random.choice. Получится в два раза меньше кода и работать будет быстрее.
Lines 29 to 31 in b865074
Нужно обернуть место работы с файлом в with блок, чтобы даже в случае генерации исключения все файлы закрылись + неплохо бы написать предупреждение, что все файлы будут закрыты после итерирования по генератору (иначе пользователь может случайно наткнуться на исключение при попытке обернуть генератор листом и использовать после этого файлы)
Line 28 in 9d2d037
Строго говоря, в задаче не было сказано, что на вход подаются файлы в формате txt. Тебе могут прийти json, xml, csv и прочие форматы файлов, которые содержат текст и которые можно прочитать без трудностей (ну то есть xlsx или doc не придет и это гарантируется)
Lines 39 to 46 in 9d2d037
Копипаст - это плохо. Если ты потом захочешь чуть-чуть изменить логику, то придется ее менять в двух местах сразу. Лучше условие внести внутрь цикла, например, так:
yield line.lower() if lowercase else line
Lines 104 to 112 in 9d2d037
Весь этот кусок кода лучше вынести в main, чтобы можно было использовать потом отдельные методы из твоего скрипта в других
Lines 23 to 28 in 9d2d037
У тебя в условии возвращается значение, то есть нет смысла писать else (тем более ты же этого не делаешь в следующей проверке)
Если в тексте встретится слово, после которого ничего не идет, то твой генератор будет вести себя странно. Есть два варианта как это адекватно обрабатывать, выбрать можно любой: либо остановиться, либо выбрать произвольное слово и продолжить
Lines 79 to 82 in 9d2d037
Вместо записи в своем собственном формате лучше использовать csv, json или pickle (лучше одно из двух последних). Во-первых, это избавит тебя от необходимости обрабатывать запись модели циклами. Во-вторых, использование готовых библиотек избавит от возможных ошибок и позволит другим проще пользоваться сохраненными тобой моделями.
Lines 31 to 35 in 9d2d037
Выравнивание поправь
Line 1 in 9d2d037
Нужно добавить небольшое описание всего скрипта, включая автора, версию и все в этом духе. Аналогично во втором файле.
Lines 66 to 68 in b865074
У write есть специальный параметр, который позволяет не городить тут столько текста с format
Line 76 in 9d2d037
В условии сказано, что передается путь, куда сохранить модель, и есть алгоритм как эту модель получать. Если тебе передали файл, в котором какая-то модель уже есть, не надо ее использовать, по условию ее надо просто перезаписать.
Правильно читать постановку задачи - это важно. Если есть какие-то вопросы, то их нужно задавать до того как делать что-то, и главное просто из головы ничего не брать, потому что заказчик (постановщик задачи) обычно не просто так формирует требования, а собирается исходя из них (и больше не из чего) использовать результат.
Line 9 in 9d2d037
Так как описание какой-то функции может быть объемным его выносят не в inline комментарий, а ниже, перед описанием аргументов
Lines 54 to 56 in 9d2d037
Хороший тон: завершать вывод в консоль переносом строки, а не пробелом
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.