Skip to content

terratensor/text2glove

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text2Glove

Go Reference License

Инструмент для предобработки текстовых файлов перед обучением векторных представлений слов GloVe.

Основные возможности

  • Поддержка многоязычных текстов (русский, английский, европейские языки, турецкий)
  • Специальная обработка старославянских и старорусских текстов
  • Параллельная обработка gz-архивов
  • Очистка текста с сохранением:
  • Букв (включая специфические символы разных языков)
  • Цифр
  • Пробелов
  • Эффективная потоковая запись результатов
  • Мониторинг прогресса обработки
  • Гибкая конфигурация через YAML-файлы

Установка

go install github.com/terratensor/text2glove/cmd/text2glove@latest

Быстрый старт

Обработка любых текстов:

text2glove --input ./data --output output.txt --workers 8 --cleaner_mode all

Обработка современных текстов:

text2glove --input ./data --output output.txt --workers 8 --cleaner_mode modern

Обработка старославянских текстов:

text2glove --input ./old_texts --output output.txt --cleaner_mode old_slavonic

Конфигурация

Пример файла config.yaml:

input: "./data" # Директория с файлами .gz
output: "./output.txt" # Выходной файл
workers: 8 # Количество рабочих процессов
buffer_size: 1048576 # Размер буфера записи (1MB)

cleaner:
mode: "old_slavonic" # Режим очистки: modern|old_slavonic|all
normalize: true # Нормализация Unicode

Запуск с конфигурационным файлом:

text2glove --config config.yaml

Запуск с параметрами:

gtext2glove --input ./data --output out.txt

Пример ожидаемого вывода:

    Processing: [=====================>  ] 85.3% | Speed: 142,305.8 KB/s | Lines: 1,284,567

    === Processing completed ===
    Time:    12m45s
    Lines:   14,201,558
    Data:    12.4 GB
    Speed:   152,304.2 KB/s

Режимы обработки текста

  1. modern - современные языки:
  • Русский (включая ё)
  • Английский и основные европейские языки
  • Турецкий
  1. old_slavonic - старославянские тексты:
  • Все современные символы
  • Старославянская кириллица (ѣ, ѵ, ѳ и др.)
  • Поддержка Unicode-диапазонов
  1. all - все Unicode-символы:
  • Для специализированных задач

Сборка из исходников

git clone https://github.com/terratensor/text2glove
cd text2glove
make build

Собранный бинарный файл будет доступен в bin/text2glove

Примеры обработки

Для современных текстов:

bin/text2glove  --input ./old_texts --output output.txt --cleaner_mode modern

Современный русский:

"Привет, мир!" → "привет мир"

Для обработки старославянских текстов:

bin/text2glove --input ./old_texts --output output.txt --cleaner_mode old_slavonic

Старославянский:

"Цѣрь града сего" → "цѣрь града сего"

Смешанный текст:

"Сіе есть modern text" → "сіе есть modern text"

Для всех символов Unicode:

bin/text2glove --input ./multilingual --output output.txt --cleaner_mode all

Вклад в проект

PR и предложения приветствуются! Пожалуйста:

  1. Создайте issue для обсуждения изменений
  2. Опишите предлагаемую функциональность
  3. Убедитесь, что код проходит все тесты

Лицензия

MIT License. Подробнее см. в файле LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published