11个版本 (6个重大更新)
0.22.0 | 2024年7月15日 |
---|---|
0.20.0 | 2023年6月14日 |
0.19.2 | 2023年4月1日 |
0.19.1 | 2023年3月7日 |
0.3.0 | 2022年2月14日 |
#1495 in 文本处理
每月303次下载
310KB
7.5K SLoC
vaporetto_tantivy
Vaporetto 是一个快速且轻量级的基于点预测的分词器。vaporetto_tantivy 是一个crate,用于在 Tantivy 中使用 Vaporetto。
示例
use std::fs::File;
use std::io::{Read, BufReader};
use tantivy::schema::{IndexRecordOption, Schema, TextFieldIndexing, TextOptions};
use tantivy::Index;
use vaporetto::Model;
use vaporetto_tantivy::VaporettoTokenizer;
let mut schema_builder = Schema::builder();
let text_field_indexing = TextFieldIndexing::default()
.set_tokenizer("ja_vaporetto")
.set_index_option(IndexRecordOption::WithFreqsAndPositions);
let text_options = TextOptions::default()
.set_indexing_options(text_field_indexing)
.set_stored();
schema_builder.add_text_field("title", text_options);
let schema = schema_builder.build();
let index = Index::create_in_ram(schema);
// Loads a model with decompression.
let mut f = BufReader::new(File::open("bccwj-suw+unidic.model.zst").unwrap());
let mut decoder = ruzstd::StreamingDecoder::new(&mut f).unwrap();
let mut buff = vec![];
decoder.read_to_end(&mut buff).unwrap();
let model = Model::read(&mut buff.as_slice()).unwrap();
// Creates VaporettoTokenizer with wsconst=DGR.
let tokenizer = VaporettoTokenizer::new(model, "DGR").unwrap();
index
.tokenizers()
.register("ja_vaporetto", tokenizer);
依赖关系
~27MB
~442K SLoC