File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ #
3
+ # Преобразует произвольный .txt-файл в токенизированный формат,
4
+ # пригодный для цепей Маркова:
5
+ # • каждое слово и знак пунктуации — отдельный токен
6
+ # • токены разделены одиночными пробелами
7
+ # • регистр сохраняется
8
+ # Результат записывается в <имя_файла>_tokenized.txt рядом с исходником.
9
+ #
10
+ # Использование:
11
+ # ./tokenize.sh path/to/book.txt
12
+ #
13
+
14
+ set -euo pipefail
15
+
16
+ if [[ $# -ne 1 ]]; then
17
+ echo " Usage: $0 <input.txt>" >&2
18
+ exit 1
19
+ fi
20
+
21
+ INPUT=" $1 "
22
+ [[ -f " $INPUT " ]] || { echo " File not found: $INPUT " >&2 ; exit 1; }
23
+
24
+ DIR=$( dirname " $INPUT " )
25
+ BASE=$( basename " $INPUT " )
26
+ NAME=" ${BASE% .* } "
27
+ OUTPUT=" ${DIR} /${NAME} _tokenized.txt"
28
+
29
+ # --- токенизация -----------------------------------------------------------
30
+
31
+ perl -0777 -pe '
32
+ s/\r//g;
33
+ s/\.{3}/ … /g;
34
+ s/([[:punct:]])/ $1 /g;
35
+ s/[0-9]+/ /g;
36
+ s/[A-Za-z]+/ /g;
37
+ s/[*\/{}\[\];()&=+]+/ /g;
38
+ s/\s+/ /g;
39
+ s/^\s+|\s+$//g;
40
+ ' " $INPUT " > " $OUTPUT "
41
+
42
+ echo " Tokenized file written to: $OUTPUT "
You can’t perform that action at this time.
0 commit comments