1. Для работы с текстом, его анализа, форматирования и вывода в Python можно использовать следующие модули:
- re (Regular Expressions) - для работы с регулярными выражениями
- nltk (Natural Language Toolkit) - для обработки естественного языка
- string - для работы со строками
- difflib - для сравнения текстов
- reportlab - для создания PDF-файлов
- tkinter - для создания графического интерфейса
2. Для создания модуля для анализа текста с возможностью поиска совпадений слов, подсчета букв и знаков препинания, с выводом результата в файл, с применением человеческого форматирования (шрифты, курсив, подчеркивание) и возможностью сохранения вывода в формате PDF, можно использовать следующий пример кода:
```python
from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def analyze_text(text):
# Поиск совпадений слов
words = text.split()
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# Подсчет букв и знаков препинания
letter_count = sum(c.isalpha() for c in text)
punctuation_count = sum(c in '.,?!' for c in text)
# Вывод результата в файл
with open('analysis.txt', 'w') as f:
f.write('Word Counts:\n')
for word, count in word_counts.items():
f.write(f'{word}: {count}\n')
f.write(f'\nLetter Count: {letter_count}\n')
f.write(f'Punctuation Count: {punctuation_count}\n')
# Создание PDF с форматированием
c = canvas.Canvas('analysis.pdf', pagesize=letter)
c.setFont("Helvetica", 12)
y = 750
c.drawString(100, y, 'Word Counts:')
y -= 20
for word, count in word_counts.items():
c.drawString(100, y, f'{word}: {count}')
y -= 20
c.drawString(100, y, f'Letter Count: {letter_count}')
y -= 20
c.drawString(100, y, f'Punctuation Count: {punctuation_count}')
c.save()
text = 'Sample text for analysis. Sample text for analysis.'
analyze_text(text)
```
Этот код анализирует переданный текст, ищет совпадения слов, подсчитывает буквы и знаки препинания, выводит результат в файл "analysis.txt" с человеческим форматированием, а также сохраняет результат в PDF-файл "analysis.pdf". Используется модуль reportlab для работы с PDF форматом.