1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-sentencepiece

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
normalization.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 12:10 8f38d5b

Используйте пользовательское правило нормализации

По умолчанию, SentencePiece нормализует входное предложение с помощью варианта NFKC стандарта Unicode.

SentencePiece позволяет нам определять пользовательское правило нормализации, которое хранится в файле модели.

Использование заранее определённого правила нормализации

SentencePiece предоставляет следующие заранее определённые правила нормализации. Рекомендуется использовать одно из них, если нет особых причин:

  • nmt_nfkc: NFKC нормализация с некоторыми дополнительными правилами нормализации вокруг пробелов. (по умолчанию)
  • nfkc: оригинальная NFKC нормализация.
  • nmt_nfkc_cf: nmt_nfkc + Unicode case folding (в основном приведение к нижнему регистру)
  • nfkc_cf: nfkc + Unicode case folding.
  • identity: отсутствие нормализации

Вы можете выбрать правило нормализации с помощью флага --normalization_rule_name.

% spm_train --normalization_rule_name=identity --input=<input> --model_prefix=<model file> --vocab_size=8000                                                                                                                                                                                

ЗАМЕЧАНИЕ: Из-за ограничений алгоритма нормализации полная NFKC нормализация не реализована. Примеры последовательностей символов, которые не нормализуются нашим NFKC реализованием, описаны в [builder.h].Разница между nmt_nfkc и nfkc может быть найдена через команду diff -u data/nfkc.tsv data/nmt_nfkc.tsv.

Использование пользовательского правила нормализации

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

41 302 300      1EA6
41 302 301      1EA4
41 302 303      1EAA
...

В этом примере последовательность UCS4 [41 302 300] (шестнадцатеричное представление) преобразуется в [1EA6] (шестнадцатеричное представление). При наличии амбигуитет в конвертациях используется самое длинное правило. Обратите внимание, что табуляция используется как разделитель для источника и целевой последовательностей, а пробел — как разделитель для символов UCS4. Мы можем сделать целевую последовательность пустой, чтобы удалить некоторые конкретные символы из текста. См. data/nfkc.tsv в качестве примера. Как только будет подготовлен TSV-файл, его можно указать с помощью флага --normalization_rule_tsv.

% spm_train --normalization_rule_tsv=<rule tsv file> --input=<ввод> --model_prefix=<модель файла> --vocab_size=8000
```## Клиентская утилита командной строки для выполнения нормализации

% spm_normalize --model=<model_file> file1 file2... % spm_normalize --normalization_rule_tsv=custom.tsv file1 file2...

Первая команда использует правило нормализации, встроенное в файл модели. Вторая команда использует правило нормализации из файла TSV и полезна для взаимодействия с правилами нормализации в интерактивном режиме.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-sentencepiece.git
git@api.gitlife.ru:oschina-mirror/mirrors-sentencepiece.git
oschina-mirror
mirrors-sentencepiece
mirrors-sentencepiece
master