/
vvtex
/
xml
Обзор
Документация
Войти
/
vvtex
/
xml
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
main.py
42 строки
2 KB
vvtex
upload files
26 мар 2025, 20:45
26 мар 2025, 20:45
d018a07
Код
Авторство
О чём код?
import xml.etree.ElementTree as ET def read_xml(file_path, word_max_len=6, top_words_amt=10): # 1. Парсинг XML tree = ET.parse(file_path) root = tree.getroot() # 2. Инициализация словаря для подсчёта слов word_counts = {} # 3. Символы для очистки слов symbols = '!@#$%^&*()_+-=[]{}|;:",./<>?`~\'\\»«—‘’“…”∙' # 4. Обработка каждого элемента <item> for item in root.findall('.//item'): description = item.find('description') if description is None or not description.text: continue # 5. Разбивка текста на слова и очистка text = description.text for word in text.split(): cleaned = word.strip(symbols) # Удаление символов по краям if len(cleaned) > word_max_len: # 6. Подсчёт частоты слов word_counts[cleaned] = word_counts.get(cleaned, 0) + 1 # 7. Сортировка: сначала по частоте (убывание), потом по порядку появления sorted_words = sorted( word_counts.items(), key=lambda x: (-x[1], list(word_counts.keys()).index(x[0])) ) # 8. Возврат топ-N слов return [word for word, _ in sorted_words[:top_words_amt]] if __name__ == '__main__': print(read_xml('newsafr.xml')) # выведет ['туристов', 'компании', 'Wilderness', 'странах', 'туризма', 'которые', 'африканских', 'туристы', 'является', 'природы']