Skip to content

Alexei17/text-creator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages