Metadata-Version: 2.4
Name: bkdetect
Version: 0.2.1
Summary: Инструмент поиска источников текста и совпадающих фрагментов.
Author: bk_detect maintainers
Project-URL: Source, https://github.com/your-org/bk_detect
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: beautifulsoup4
Requires-Dist: nltk
Requires-Dist: scipy
Requires-Dist: scikit-learn
Requires-Dist: python-docx
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

## bk_detect

Инструмент для поиска документов-источников и совпадающих фрагментов по заданному тексту.

![Project Preview](img/img.png)

### Основные возможности
- Индексация файлов `.txt`, `.csv`, `.docx`, `.html` с разбиением на строки или параграфы.
- Нормализация текста: удаление HTML, фильтрация стоп-слов, стемминг для русского и английского языков.
- Поиск схожих документов на базе HashingVectorizer из scikit-learn.
- Вывод оценок схожести и конкретных фрагментов, пересекающихся с запросом.

### Установка
```bash
pip install -r requirements.txt
```
или
```bash
pip install .
```
После установки доступна команда `bk-detect`.

### Быстрый старт
```bash
bk-detect sample_docs query/query.txt
```

### Опции CLI

| Опция | Описание |
|-------|----------|
| `--language {ru,en}` | Язык текста (по умолчанию `ru`). |
| `--chunk-size <int>` | Размер порции документов при индексации. |
| `--top-k <int>` | Сколько документов выводить в верхнем списке. |
| `--max-positions <int>` | Максимум фрагментов на один файл. |
| `--snippet-len <int>` | Длина выводимого фрагмента. |
| `--no-stemming` | Отключить стемминг. |
| `--keep-stopwords` | Оставить стоп-слова. |

### Архитектура модулей
- `documents.py` — модель документа и метаданных.
- `loaders.py` — чтение файлов и выделение текстовых фрагментов.
- `text_pipeline.py` — очистка, токенизация и стемминг текста.
- `indexing.py` — построение индекса и расчёт схожести.
- `source_finder.py` — фасад для поиска документов и совпадающих позиций.
- `bkDetetct.py` — CLI-интерфейс.
