Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Словарь уникальных слов

Delphi , Синтаксис , Текст и Строки

Словарь уникальных слов

Алгоритм составления словаря всех уникальных слов встречающихся в текстовом файле.

По результатам тестирования: обработка файла объемом 3 Мб (уникальных слов ~63 тысячи)
занимает около 3 секунд.
Скачать демонстрационный пример
 
Александр (Rouse_) Багель

http://rouse.drkb.ru

 

Here's the translation of your content into Russian:

Вот решение Python для создания словаря уникальных слов из текстового файла:

import re
def create_unique_word_dict(file_path):
    with open(file_path, 'r') as f:
        text = f.read()

    # Переводим в нижний регистр и удаляем пунктуацию
    text = re.sub(r'[^\w\s]', '', text).lower()

    # Разбиваем на слова
    words = text.split()

    # Создаем множество уникальных слов
    unique_words = set(words)

    return dict((word, 1) for word in unique_words)

# Пример использования:
file_path = 'example.txt'
unique_word_dict = create_unique_word_dict(file_path)
print(unique_word_dict)

Вот объяснение кода:

  1. Мы открываем текстовый файл с помощью open и читаем его содержимое в строку с помощью read.
  2. Мы используем регулярные выражения для перевода текста в нижний регистр и удаления пунктуации с помощью re.sub. Паттерн [^\w\s] matches любое символ, которое не является буквенным символом (\w) или пробелом (\s). Мы заменяем эти символы пустой строкой, эффективно удалив их.
  3. Мы разбиваем текст на отдельные слова с помощью метода split без аргументов, который разбивает на пробелах по умолчанию.
  4. Мы создаем множество уникальных слов из списка слов с помощью конструктора set. Множество - это неупорядоченная коллекция уникальных элементов.
  5. Наконец, мы преобразуем множество в словарь с помощью генератора выражения, который создает пары ключ-значение для каждого уникального слова как для ключа и значение 1.

Время выполнения этого алгоритма равно O(n), где n - количество слов в текстовом файле. Это потому что мы только нужно проходить текст один раз, чтобы создать список слов, а затем снова, чтобы создать множество уникальных слов. Операция set имеет среднее время выполнения O(1) для поиска, поэтому это доминирует общее время выполнения.

В вашем примере обработка 3-мегабайтового файла с ~63,000 уникальными словами занимает около 3 секунд. Это потому что операция set относительно быстро для больших множеств, и накладные расходы на создание словаря являются незначительными.

Обратите внимание, если вы хотите считать частоту каждого слова вместо создания множества уникальных слов, вы можете модифицировать код следующим образом:

word_freq = dict((word, words.count(word)) for word in unique_words)

Это создаст словарь, где каждый ключ - это уникальное слово, а соответствующее значение - частота этого слова в тексте.

Описание алгоритма составления словаря всех уникальных слов, встречающихся в текстовом файле, с тестированием на обработку файла объемом 3 Мб.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Текст и Строки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:25:51/0.0057659149169922/1