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 个直接使用)
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