Трехграммы - это последовательности из трех слов, которые часто встречаются в тексте. Вам нужно будет найти

  • 23
Трехграммы - это последовательности из трех слов, которые часто встречаются в тексте. Вам нужно будет найти все уникальные трехграммы в тексте и посчитать, сколько раз каждый из них встречается.

Техническое задание: На вход вашей программе будет подан текст. Ваша задача - найти все уникальные трехграммы в тексте и вывести их вместе с их частотой встречаемости. Трехграммы в тексте необходимо рассматривать без учета регистра. Результат должен быть отсортирован по частоте встречаемости в порядке убывания. Если несколько трехграмм имеют одинаковую частоту встречаемости, их следует выводить в лексикографическом порядке.

Пример:
На входе:
"Какая-то фраза, какая-то фраза, просто слова, фраза, фраза"

На выходе:
"какая-то фраза: 2, фраза какая-то: 1, просто слова фраза: 1, слова фраза какая-то: 1"
Ева
34
Хорошо, для решения этой задачи нам потребуется написать программу. Давайте разобьем задачу на несколько шагов.

Шаг 1: Подготовка текста
Сначала нам нужно привести текст к нижнему регистру, чтобы не учитывать регистр при поиске трехграмм. Затем мы можем удалить все специальные символы и знаки препинания из текста. Вот код на Python, который выполняет эти действия:

python
import string

# Перевод текста в нижний регистр
text = text.lower()

# Удаление знаков препинания и специальных символов
text = text.translate(str.maketrans("", "", string.punctuation))


Шаг 2: Построение трехграмм
Теперь мы можем разделить текст на отдельные слова и построить трехграммы. Для этого мы будем использовать цикл, который перебирает слова в тексте и строит трехграммы из каждой тройки слов. Затем мы добавляем эти трехграммы в словарь и увеличиваем счетчик каждого трехграмма при каждом вхождении. Вот код, который выполняет эти действия:

python
ngrams = {}
words = text.split()

for i in range(len(words) - 2):
ngram = " ".join(words[i:i+3])
if ngram in ngrams:
ngrams[ngram] += 1
else:
ngrams[ngram] = 1


Шаг 3: Сортировка результатов
Наконец, мы отсортируем трехграммы по их частоте встречаемости в порядке убывания. Для этого мы создадим список кортежей, содержащих трехграмму и ее частоту встречаемости, и отсортируем этот список по второму элементу в каждом кортеже (частоте встречаемости). Вот код, который выполняет эту сортировку:

python
sorted_ngrams = sorted(ngrams.items(), key=lambda x: x[1], reverse=True)


Теперь мы можем вывести результаты на экран. Вот полный код программы:

python
import string

# Перевод текста в нижний регистр
text = text.lower()

# Удаление знаков препинания и специальных символов
text = text.translate(str.maketrans("", "", string.punctuation))

# Построение трехграмм
ngrams = {}
words = text.split()

for i in range(len(words) - 2):
ngram = " ".join(words[i:i+3])
if ngram in ngrams:
ngrams[ngram] += 1
else:
ngrams[ngram] = 1

# Сортировка результатов
sorted_ngrams = sorted(ngrams.items(), key=lambda x: x[1], reverse=True)

# Вывод результатов
for ngram, frequency in sorted_ngrams:
print(f"Трехграмма: {ngram}, Частота встречаемости: {frequency}")


Это решение реализовано на языке программирования Python. Вы можете скопировать этот код, запустить его и ввести текст для анализа. Программа выведет трехграммы вместе с их частотой встречаемости.