基于规则的俄语句子标记器
rusenttokenize的Python项目详细描述
ru_sent_tokenize
一种简单快速的基于规则的句子分割方法。在opencorba和syntagrus数据集上进行了测试。
安装
pip install rusenttokenize
运行
>>> from rusenttokenize import ru_sent_tokenize >>> ru_sent_tokenize('Эта шоколадка за 400р. ничего из себя не представляла. Артём решил больше не ходить в этот магазин') ['Эта шоколадка за 400р. ничего из себя не представляла.', 'Артём решил больше не ходить в этот магазин']
指标
标记器已经在opencorba和syntagrus上进行了测试。有两个重要的指标。
精确。第一个是我们从数据集中提取单个句子,并测量标记器没有拆分它们的次数。
回忆。第二个指标是我们从数据集中提取两个连续的句子,并用一个空格字符连接每一对。我们测量了tokenizer将一个长句子正确拆分为两个句子的次数。
tokenizer | OpenCorpora | SynTagRus | ||||
---|---|---|---|---|---|---|
Precision | Recall | Execution Time (sec) | Precision | Recall | Execution Time (sec) | |
nltk.sent_tokenize | 94.30 | 86.06 | 8.67 | 98.15 | 94.95 | 5.07 |
nltk.sent_tokenize(x, language='russian') | 95.53 | 88.37 | 8.54 | 98.44 | 95.45 | 5.68 |
bureaucratic-labs.segmentator.split | 97.16 | 88.62 | 359 | 96.79 | 92.55 | 210 |
ru_sent_tokenize | 98.73 | 93.45 | 4.92 | 99.81 | 98.59 | 2.87 |
Notebook显示如何计算上表