9 个版本 (5 个重大变更)

0.6.1 2022年10月10日
0.5.0 2021年7月6日
0.4.1 2021年2月5日
0.4.0 2020年5月13日
0.1.0 2019年11月29日

#1560 in 算法


5 个crate中使用 (3 个直接使用)

MIT/Apache

15KB
342

wordpieces

此crate提供了一种子词分词器。子词分词器将标记分割成多个片段,即所谓的词片段。词片段由BERT自然语言编码器推广并使用。


lib.rs:

将单词分词成词片段。

此crate提供了一种子词分词器。子词分词器将标记分割成多个片段,即所谓的词片段。词片段由BERT自然语言编码器推广并使用。

分词器将单词分割,提供一个片段迭代器。片段由字符串和词汇索引表示。

use std::convert::TryFrom;
use std::fs::File;
use std::io::{BufRead, BufReader};

use wordpieces::{WordPiece, WordPieces};

let f = File::open("testdata/test.pieces").unwrap();
let word_pieces = WordPieces::from_buf_read(BufReader::new(f)).unwrap();

// A word that can be split fully.
let pieces = word_pieces.split("coördinatie")
 .map(|p| p.piece()).collect::<Vec<_>>();
assert_eq!(pieces, vec![Some("coördina"), Some("tie")]);

// A word that can be split partially.
let pieces = word_pieces.split("voorkomen")
 .map(|p| p.piece()).collect::<Vec<_>>();
assert_eq!(pieces, vec![Some("voor"), None]);

依赖项

~2.5MB
~23K SLoC