-
Notifications
You must be signed in to change notification settings - Fork 0
Alexei17/text-creator
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# Доманчук А. 325 - "Сочинитель текста" # Установка ``` git pull https://github.com/Alexei17/text-creator.git ``` Используются две дополнительные библиотеки: nltk и pymorphy2. Установка: ``` pip install pymorphy2 pip install nltk ``` ## Функции - Заменяет текст из filetoreplacewith.txt в текст из file.txt, при этом старается соблюдать корректность в грамматике. - Пока что работает более или менее методом "тыка". Берет случайное слово из заменяемого файла и пытается заменить его в оригинале. Если не получается, процедура повторяется пока не найдется слово которое успешно заменится. ## Параметры input - (int) Заменить примерно каждое ___ слово: спрашивает с какой частотой заменять слова в оригинальном тексте. Так, если ввести, например, 2, то оно будет заменять примерно каждое второе слово. Также можно настроить Debug mode: 1 - да, 0 - нет. Печатает логику программы и её действия Это делается в файле на 8 строке. ## Пояснение основных функций - main: идёт по оригинальному тексту, токенезирует текст. Если слово надо заменить, то выбирает случайное слово из заменяемого текста и пробует заменить его в методе tryToReplace. Сюда стоп-слова не попадают, они остаются в тексте как есть. В конце если успешно нашел слово, то вызывает метод endCheck. Меняет предыдущое слово на текущее (т.к. в следующем прогоне оно уже будет предыдущим) - tryToReplace: пробует заменить слово из заменяемого на оригинальный, чтобы он был похож по части речи, числу, наклонению, виду, числу и падежу. Каждый метод проверки пробует преобразовать заменяемое слово. Если где-то не получится заменить число/наклонение итд. то вернет False и будем подбирать новое слово. - endCheck: финальная проверка. Проверяет в основном предыдущое слово с текущим. Если это существительное с предлогом/прилагательным, то там может быть каша с родом и/или с числом, поэтому надо попытаться преобразовать существительное/прилагательное/предлог. Например, 'неравномерный площадь' -> 'неравномерная площадь' (изменил род), 'технологического введений' -> 'технологических введений' (изменил число) - в endCheck так же проверяются предлоги и существительные ## Основные проблемы программы Программа работает не идеально, вот некоторые моменты которые я выделил: - Проблемы с предлогом "в". Проблема в том, что предлог используется очень часто, а применяться может в винительном и предложном падеже. Для облегчения задачи мне пришлось приравнять "в" к винительному падежу, но очевидно оно не будет работать когда нужен будет предложный падеж. (пример: не 'я гулял в парке', а 'я гулял в парк'). Чтобы устранить данную проблему очень помогла бы условная вероятность, в докумнетации PyMorphy2 что-то даже о ней сказано, но к сожалению метода оценивания такого я не нашёл. - Не распознает фамилии, имени итд., если в тексте они есть то оно может заменить и просклонять их. - Плохо работает с годами и числами # Примеры Примеры приведены в виде: - Оригинал текста - Заменитель текста - Результат ## Пример 1 - Будучи мировым лидером в ряде промышленных и технологических секторов, она является третьим в мире экспортёром и импортёром товаров. Германия — развитая страна с очень высоким уровнем жизни (6 место в мировом рейтинге). Она поддерживает социальное обеспечение и универсальную систему здравоохранения, охрану окружающей среды и бесплатное высшее образование - Важнейшим пунктом в истории и политике ЮАР стал расовый конфликт между чёрным большинством и белым меньшинством. Своей кульминации он достиг после того, как в 1948 году был установлен режим апартеида, просуществовавший до 1990-х годов. Инициатором введения дискриминационных законов стала Национальная партия (в СССР её называли Националистической). - будучи белым инициатором в ряды промышленных и дискриминационных секторов, она является третьим в мир экспортёром и кульминацией товаров . германия — развитая страна с очень чёрным режимом юар (6 место в расовом рейтинге). она поддерживает социальное обеспечение и универсальную историю здравоохранения, введение окружающей политики и бесплатное высочайшее введение Другой результат: - будучи своим лидером в ряды промышленных и технологических секторов, она стала третьим в мир введением и годами товаров . юар — развитая страна с очень высокой историей пункта (6 место в белом рейтинге). она поддерживает националистическая кульминация и универсальную систему конфликта, закон чёрного года и 1990-й националистическое образование ### Пример 2 - Упрощённо интеграл можно представить как аналог суммы для бесконечного числа бесконечно малых слагаемых. В зависимости от пространства, на котором задана подынтегральная функция, интеграл может быть двойной, тройной, криволинейный, поверхностный и так далее; также существуют разные подходы к определению интеграла — различают интегралы Римана, Лебега, Стилтьеса и другие. - Производная функции — понятие дифференциального исчисления, характеризующее скорость изменения функции в данной точке. Определяется как предел отношения приращения функции к приращению её аргумента при стремлении приращения аргумента к нулю, если такой предел существует. Функцию, имеющую конечную производную (в некоторой точке), называют дифференцируемой (в данной точке). Процесс вычисления производной называется дифференци́рованием. Обратный процесс — нахождение первообразной — интегрирование. - упрощённо функцию можно представить как аналог интегрирования для бесконечного числа бесконечно обратных аргументов . в зависимость от нуля, на котором задана подынтегральное интегрирование, интеграл может быть двойной, тройной, криволинейный, производная и так далее; также существуют её подходы к определению изменения — различают приращения точки, функции, стремление и такие.
About
Сочинитель текста
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published