Skip to content

Commit 2439792

Browse files
committed
Обновлен модуль извлечения базовых статистик
1 parent 93c0723 commit 2439792

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

ruts/basic_stats.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class BasicStats():
99
1010
Аргументы:
1111
source (str|Doc): Источник данных (строка или объект Doc)
12+
sents_tokenizer (func|Pattern): Токенизатор для предложений (функция или регулярное выражение)
13+
words_tokenizer (func|Pattern): Токенизатор для слов (функция или регулярное выражение)
1214
1315
Атрибуты:
1416
c_chars (dict[int, int]): Распределение слов по количеству символов
@@ -31,15 +33,15 @@ class BasicStats():
3133
ValueError: Если анализируемый текст является пустой строкой
3234
"""
3335

34-
def __init__(self, source):
35-
if isinstance(source, Doc):
36+
def __init__(self, source, sents_tokenizer=None, words_tokenizer=None):
37+
if isinstance(source, Doc):
3638
text = source.text
3739
sents = source.sents
3840
words = tuple(word.text for word in source)
3941
elif isinstance(source, str):
4042
text = source
41-
sents = extract_sents(text)
42-
words = tuple(extract_words(text, use_lexemes=False))
43+
sents = extract_sents(text, tokenizer=sents_tokenizer)
44+
words = tuple(extract_words(text, tokenizer=words_tokenizer, use_lexemes=False))
4345
else:
4446
raise TypeError("Некорректный источник данных")
4547
if not text:
@@ -96,7 +98,8 @@ def print_stats(self):
9698

9799
if __name__ == "__main__":
98100
from pprint import pprint
101+
import re
99102
text = "Существуют три вида лжи: ложь, наглая ложь и статистика"
100-
bs = BasicStats(text)
103+
bs = BasicStats(text, words_tokenizer=re.compile(r'[^\w]+'))
101104
pprint(bs.get_stats())
102105
bs.print_stats()

0 commit comments

Comments
 (0)