mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 09:08:43 +08:00
enhance: support load stop words file and add chinese default stop words (#45577)
relate: https://github.com/milvus-io/milvus/issues/45576 Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
This commit is contained in:
parent
73fdaafb2d
commit
b9487cf8e7
@ -1,10 +1,11 @@
|
||||
mod filter;
|
||||
mod regex_filter;
|
||||
mod remove_punct_filter;
|
||||
pub(crate) mod stop_words;
|
||||
mod synonym_filter;
|
||||
mod util;
|
||||
|
||||
pub mod stop_words;
|
||||
|
||||
use regex_filter::RegexFilter;
|
||||
use remove_punct_filter::RemovePunctFilter;
|
||||
use synonym_filter::SynonymFilter;
|
||||
|
||||
@ -53,13 +53,9 @@ mod tests {
|
||||
use crate::analyzer::analyzer::create_analyzer;
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "lindera-ipadic")]
|
||||
fn test_remove_punct_filter() {
|
||||
let params = r#"{
|
||||
"tokenizer": {
|
||||
"type": "lindera",
|
||||
"dict_kind": "ipadic"
|
||||
},
|
||||
"tokenizer": "jieba",
|
||||
"filter": ["removepunct"]
|
||||
}"#;
|
||||
|
||||
@ -67,7 +63,7 @@ mod tests {
|
||||
assert!(tokenizer.is_ok(), "error: {}", tokenizer.err().unwrap());
|
||||
|
||||
let mut bining = tokenizer.unwrap();
|
||||
let mut stream = bining.token_stream("ミルヴァスの日本語テスト、句読点テスト");
|
||||
let mut stream = bining.token_stream("中文标点,测试。");
|
||||
|
||||
let mut results = Vec::<String>::new();
|
||||
while stream.advance() {
|
||||
|
||||
840
internal/core/thirdparty/tantivy/tantivy-binding/src/analyzer/filter/stop_words/chinese.txt
vendored
Normal file
840
internal/core/thirdparty/tantivy/tantivy-binding/src/analyzer/filter/stop_words/chinese.txt
vendored
Normal file
@ -0,0 +1,840 @@
|
||||
一
|
||||
一下
|
||||
一些
|
||||
一切
|
||||
一则
|
||||
一天
|
||||
一定
|
||||
一方面
|
||||
一旦
|
||||
一时
|
||||
一来
|
||||
一样
|
||||
一次
|
||||
一片
|
||||
一直
|
||||
一致
|
||||
一般
|
||||
一起
|
||||
一边
|
||||
一面
|
||||
万一
|
||||
上下
|
||||
上升
|
||||
上去
|
||||
上来
|
||||
上述
|
||||
上面
|
||||
下列
|
||||
下去
|
||||
下来
|
||||
下面
|
||||
不一
|
||||
不久
|
||||
不仅
|
||||
不会
|
||||
不但
|
||||
不光
|
||||
不单
|
||||
不变
|
||||
不只
|
||||
不可
|
||||
不同
|
||||
不够
|
||||
不如
|
||||
不得
|
||||
不怕
|
||||
不惟
|
||||
不成
|
||||
不拘
|
||||
不敢
|
||||
不断
|
||||
不是
|
||||
不比
|
||||
不然
|
||||
不特
|
||||
不独
|
||||
不管
|
||||
不能
|
||||
不要
|
||||
不论
|
||||
不足
|
||||
不过
|
||||
不问
|
||||
与
|
||||
与其
|
||||
与否
|
||||
与此同时
|
||||
专门
|
||||
且
|
||||
两者
|
||||
严格
|
||||
严重
|
||||
个
|
||||
个人
|
||||
个别
|
||||
中小
|
||||
中间
|
||||
丰富
|
||||
临
|
||||
为
|
||||
为主
|
||||
为了
|
||||
为什么
|
||||
为什麽
|
||||
为何
|
||||
为着
|
||||
主张
|
||||
主要
|
||||
举行
|
||||
乃
|
||||
乃至
|
||||
么
|
||||
之
|
||||
之一
|
||||
之前
|
||||
之后
|
||||
之後
|
||||
之所以
|
||||
之类
|
||||
乌乎
|
||||
乎
|
||||
乘
|
||||
也
|
||||
也好
|
||||
也是
|
||||
也罢
|
||||
了
|
||||
了解
|
||||
争取
|
||||
于
|
||||
于是
|
||||
于是乎
|
||||
云云
|
||||
互相
|
||||
产生
|
||||
人们
|
||||
人家
|
||||
什么
|
||||
什么样
|
||||
什麽
|
||||
今后
|
||||
今天
|
||||
今年
|
||||
今後
|
||||
仍然
|
||||
从
|
||||
从事
|
||||
从而
|
||||
他
|
||||
他人
|
||||
他们
|
||||
他的
|
||||
代替
|
||||
以
|
||||
以上
|
||||
以下
|
||||
以为
|
||||
以便
|
||||
以免
|
||||
以前
|
||||
以及
|
||||
以后
|
||||
以外
|
||||
以後
|
||||
以来
|
||||
以至
|
||||
以至于
|
||||
以致
|
||||
们
|
||||
任
|
||||
任何
|
||||
任凭
|
||||
任务
|
||||
企图
|
||||
伟大
|
||||
似乎
|
||||
似的
|
||||
但
|
||||
但是
|
||||
何
|
||||
何况
|
||||
何处
|
||||
何时
|
||||
作为
|
||||
你
|
||||
你们
|
||||
你的
|
||||
使得
|
||||
使用
|
||||
例如
|
||||
依
|
||||
依照
|
||||
依靠
|
||||
促进
|
||||
保持
|
||||
俺
|
||||
俺们
|
||||
倘
|
||||
倘使
|
||||
倘或
|
||||
倘然
|
||||
倘若
|
||||
假使
|
||||
假如
|
||||
假若
|
||||
做到
|
||||
像
|
||||
允许
|
||||
充分
|
||||
先后
|
||||
先後
|
||||
先生
|
||||
全部
|
||||
全面
|
||||
兮
|
||||
共同
|
||||
关于
|
||||
其
|
||||
其一
|
||||
其中
|
||||
其二
|
||||
其他
|
||||
其余
|
||||
其它
|
||||
其实
|
||||
其次
|
||||
具体
|
||||
具体地说
|
||||
具体说来
|
||||
具有
|
||||
再者
|
||||
再说
|
||||
冒
|
||||
冲
|
||||
决定
|
||||
况且
|
||||
准备
|
||||
几
|
||||
几乎
|
||||
几时
|
||||
凭
|
||||
凭借
|
||||
出去
|
||||
出来
|
||||
出现
|
||||
分别
|
||||
则
|
||||
别
|
||||
别的
|
||||
别说
|
||||
到
|
||||
前后
|
||||
前者
|
||||
前进
|
||||
前面
|
||||
加之
|
||||
加以
|
||||
加入
|
||||
加强
|
||||
十分
|
||||
即
|
||||
即令
|
||||
即使
|
||||
即便
|
||||
即或
|
||||
即若
|
||||
却不
|
||||
原来
|
||||
又
|
||||
及
|
||||
及其
|
||||
及时
|
||||
及至
|
||||
双方
|
||||
反之
|
||||
反应
|
||||
反映
|
||||
反过来
|
||||
反过来说
|
||||
取得
|
||||
受到
|
||||
变成
|
||||
另
|
||||
另一方面
|
||||
另外
|
||||
只是
|
||||
只有
|
||||
只要
|
||||
只限
|
||||
叫
|
||||
叫做
|
||||
召开
|
||||
叮咚
|
||||
可
|
||||
可以
|
||||
可是
|
||||
可能
|
||||
可见
|
||||
各
|
||||
各个
|
||||
各人
|
||||
各位
|
||||
各地
|
||||
各种
|
||||
各级
|
||||
各自
|
||||
合理
|
||||
同
|
||||
同一
|
||||
同时
|
||||
同样
|
||||
后来
|
||||
后面
|
||||
向
|
||||
向着
|
||||
吓
|
||||
吗
|
||||
否则
|
||||
吧
|
||||
吧哒
|
||||
吱
|
||||
呀
|
||||
呃
|
||||
呕
|
||||
呗
|
||||
呜
|
||||
呜呼
|
||||
呢
|
||||
周围
|
||||
呵
|
||||
呸
|
||||
呼哧
|
||||
咋
|
||||
和
|
||||
咚
|
||||
咦
|
||||
咱
|
||||
咱们
|
||||
咳
|
||||
哇
|
||||
哈
|
||||
哈哈
|
||||
哉
|
||||
哎
|
||||
哎呀
|
||||
哎哟
|
||||
哗
|
||||
哟
|
||||
哦
|
||||
哩
|
||||
哪
|
||||
哪个
|
||||
哪些
|
||||
哪儿
|
||||
哪天
|
||||
哪年
|
||||
哪怕
|
||||
哪样
|
||||
哪边
|
||||
哪里
|
||||
哼
|
||||
哼唷
|
||||
唉
|
||||
啊
|
||||
啐
|
||||
啥
|
||||
啦
|
||||
啪达
|
||||
喂
|
||||
喏
|
||||
喔唷
|
||||
嗡嗡
|
||||
嗬
|
||||
嗯
|
||||
嗳
|
||||
嘎
|
||||
嘎登
|
||||
嘘
|
||||
嘛
|
||||
嘻
|
||||
嘿
|
||||
因
|
||||
因为
|
||||
因此
|
||||
因而
|
||||
固然
|
||||
在
|
||||
在下
|
||||
地
|
||||
坚决
|
||||
坚持
|
||||
基本
|
||||
处理
|
||||
复杂
|
||||
多
|
||||
多少
|
||||
多数
|
||||
多次
|
||||
大力
|
||||
大多数
|
||||
大大
|
||||
大家
|
||||
大批
|
||||
大约
|
||||
大量
|
||||
失去
|
||||
她
|
||||
她们
|
||||
她的
|
||||
好的
|
||||
好象
|
||||
如
|
||||
如上所述
|
||||
如下
|
||||
如何
|
||||
如其
|
||||
如果
|
||||
如此
|
||||
如若
|
||||
存在
|
||||
宁
|
||||
宁可
|
||||
宁愿
|
||||
宁肯
|
||||
它
|
||||
它们
|
||||
它们的
|
||||
它的
|
||||
安全
|
||||
完全
|
||||
完成
|
||||
实现
|
||||
实际
|
||||
宣布
|
||||
容易
|
||||
密切
|
||||
对
|
||||
对于
|
||||
对应
|
||||
将
|
||||
少数
|
||||
尔后
|
||||
尚且
|
||||
尤其
|
||||
就
|
||||
就是
|
||||
就是说
|
||||
尽
|
||||
尽管
|
||||
属于
|
||||
岂但
|
||||
左右
|
||||
巨大
|
||||
巩固
|
||||
己
|
||||
已经
|
||||
帮助
|
||||
常常
|
||||
并
|
||||
并不
|
||||
并不是
|
||||
并且
|
||||
并没有
|
||||
广大
|
||||
广泛
|
||||
应当
|
||||
应用
|
||||
应该
|
||||
开外
|
||||
开始
|
||||
开展
|
||||
引起
|
||||
强烈
|
||||
强调
|
||||
归
|
||||
当
|
||||
当前
|
||||
当时
|
||||
当然
|
||||
当着
|
||||
形成
|
||||
彻底
|
||||
彼
|
||||
彼此
|
||||
往
|
||||
往往
|
||||
待
|
||||
後来
|
||||
後面
|
||||
得
|
||||
得出
|
||||
得到
|
||||
心里
|
||||
必然
|
||||
必要
|
||||
必须
|
||||
怎
|
||||
怎么
|
||||
怎么办
|
||||
怎么样
|
||||
怎样
|
||||
怎麽
|
||||
总之
|
||||
总是
|
||||
总的来看
|
||||
总的来说
|
||||
总的说来
|
||||
总结
|
||||
总而言之
|
||||
恰恰相反
|
||||
您
|
||||
意思
|
||||
愿意
|
||||
慢说
|
||||
成为
|
||||
我
|
||||
我们
|
||||
我的
|
||||
或
|
||||
或是
|
||||
或者
|
||||
战斗
|
||||
所
|
||||
所以
|
||||
所有
|
||||
所谓
|
||||
打
|
||||
扩大
|
||||
把
|
||||
抑或
|
||||
拿
|
||||
按
|
||||
按照
|
||||
换句话说
|
||||
换言之
|
||||
据
|
||||
掌握
|
||||
接着
|
||||
接著
|
||||
故
|
||||
故此
|
||||
整个
|
||||
方便
|
||||
方面
|
||||
旁人
|
||||
无宁
|
||||
无法
|
||||
无论
|
||||
既
|
||||
既是
|
||||
既然
|
||||
时候
|
||||
明显
|
||||
明确
|
||||
是
|
||||
是否
|
||||
是的
|
||||
显然
|
||||
显著
|
||||
普通
|
||||
普遍
|
||||
更加
|
||||
曾经
|
||||
替
|
||||
最后
|
||||
最大
|
||||
最好
|
||||
最後
|
||||
最近
|
||||
最高
|
||||
有
|
||||
有些
|
||||
有关
|
||||
有利
|
||||
有力
|
||||
有所
|
||||
有效
|
||||
有时
|
||||
有点
|
||||
有的
|
||||
有着
|
||||
有著
|
||||
望
|
||||
朝
|
||||
朝着
|
||||
本
|
||||
本着
|
||||
来
|
||||
来着
|
||||
极了
|
||||
构成
|
||||
果然
|
||||
果真
|
||||
某
|
||||
某个
|
||||
某些
|
||||
根据
|
||||
根本
|
||||
欢迎
|
||||
正在
|
||||
正如
|
||||
正常
|
||||
此
|
||||
此外
|
||||
此时
|
||||
此间
|
||||
毋宁
|
||||
每
|
||||
每个
|
||||
每天
|
||||
每年
|
||||
每当
|
||||
比
|
||||
比如
|
||||
比方
|
||||
比较
|
||||
毫不
|
||||
没有
|
||||
沿
|
||||
沿着
|
||||
注意
|
||||
深入
|
||||
清楚
|
||||
满足
|
||||
漫说
|
||||
焉
|
||||
然则
|
||||
然后
|
||||
然後
|
||||
然而
|
||||
照
|
||||
照着
|
||||
特别是
|
||||
特殊
|
||||
特点
|
||||
现代
|
||||
现在
|
||||
甚么
|
||||
甚而
|
||||
甚至
|
||||
用
|
||||
由
|
||||
由于
|
||||
由此可见
|
||||
的
|
||||
的话
|
||||
目前
|
||||
直到
|
||||
直接
|
||||
相似
|
||||
相信
|
||||
相反
|
||||
相同
|
||||
相对
|
||||
相对而言
|
||||
相应
|
||||
相当
|
||||
相等
|
||||
省得
|
||||
看出
|
||||
看到
|
||||
看来
|
||||
看看
|
||||
看见
|
||||
真是
|
||||
真正
|
||||
着
|
||||
着呢
|
||||
矣
|
||||
知道
|
||||
确定
|
||||
离
|
||||
积极
|
||||
移动
|
||||
突出
|
||||
突然
|
||||
立即
|
||||
第
|
||||
等
|
||||
等等
|
||||
管
|
||||
紧接着
|
||||
纵
|
||||
纵令
|
||||
纵使
|
||||
纵然
|
||||
练习
|
||||
组成
|
||||
经
|
||||
经常
|
||||
经过
|
||||
结合
|
||||
结果
|
||||
给
|
||||
绝对
|
||||
继续
|
||||
继而
|
||||
维持
|
||||
综上所述
|
||||
罢了
|
||||
考虑
|
||||
者
|
||||
而
|
||||
而且
|
||||
而况
|
||||
而外
|
||||
而已
|
||||
而是
|
||||
而言
|
||||
联系
|
||||
能
|
||||
能否
|
||||
能够
|
||||
腾
|
||||
自
|
||||
自个儿
|
||||
自从
|
||||
自各儿
|
||||
自家
|
||||
自己
|
||||
自身
|
||||
至
|
||||
至于
|
||||
良好
|
||||
若
|
||||
若是
|
||||
若非
|
||||
范围
|
||||
莫若
|
||||
获得
|
||||
虽
|
||||
虽则
|
||||
虽然
|
||||
虽说
|
||||
行为
|
||||
行动
|
||||
表明
|
||||
表示
|
||||
被
|
||||
要
|
||||
要不
|
||||
要不是
|
||||
要不然
|
||||
要么
|
||||
要是
|
||||
要求
|
||||
规定
|
||||
觉得
|
||||
认为
|
||||
认真
|
||||
认识
|
||||
让
|
||||
许多
|
||||
论
|
||||
设使
|
||||
设若
|
||||
该
|
||||
说明
|
||||
诸位
|
||||
谁
|
||||
谁知
|
||||
赶
|
||||
起
|
||||
起来
|
||||
起见
|
||||
趁
|
||||
趁着
|
||||
越是
|
||||
跟
|
||||
转动
|
||||
转变
|
||||
转贴
|
||||
较
|
||||
较之
|
||||
边
|
||||
达到
|
||||
迅速
|
||||
过
|
||||
过去
|
||||
过来
|
||||
运用
|
||||
还是
|
||||
还有
|
||||
这
|
||||
这个
|
||||
这么
|
||||
这么些
|
||||
这么样
|
||||
这么点儿
|
||||
这些
|
||||
这会儿
|
||||
这儿
|
||||
这就是说
|
||||
这时
|
||||
这样
|
||||
这点
|
||||
这种
|
||||
这边
|
||||
这里
|
||||
这麽
|
||||
进入
|
||||
进步
|
||||
进而
|
||||
进行
|
||||
连
|
||||
连同
|
||||
适应
|
||||
适当
|
||||
适用
|
||||
逐步
|
||||
逐渐
|
||||
通常
|
||||
通过
|
||||
造成
|
||||
遇到
|
||||
遭到
|
||||
避免
|
||||
那
|
||||
那个
|
||||
那么
|
||||
那么些
|
||||
那么样
|
||||
那些
|
||||
那会儿
|
||||
那儿
|
||||
那时
|
||||
那样
|
||||
那边
|
||||
那里
|
||||
那麽
|
||||
部分
|
||||
鄙人
|
||||
采取
|
||||
里面
|
||||
重大
|
||||
重新
|
||||
重要
|
||||
鉴于
|
||||
问题
|
||||
防止
|
||||
阿
|
||||
附近
|
||||
限制
|
||||
除
|
||||
除了
|
||||
除此之外
|
||||
除非
|
||||
随
|
||||
随着
|
||||
随著
|
||||
集中
|
||||
需要
|
||||
非但
|
||||
非常
|
||||
非徒
|
||||
靠
|
||||
顺
|
||||
顺着
|
||||
首先
|
||||
是不是
|
||||
3
internal/core/thirdparty/tantivy/tantivy-binding/src/analyzer/filter/stop_words/mod.rs
vendored
Normal file
3
internal/core/thirdparty/tantivy/tantivy-binding/src/analyzer/filter/stop_words/mod.rs
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
mod stop_words;
|
||||
|
||||
pub use stop_words::*;
|
||||
@ -33,6 +33,25 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
use once_cell::sync::Lazy;
|
||||
fn fetch_words_from_file(data: &[u8]) -> &'static [&'static str] {
|
||||
let s = std::str::from_utf8(data).expect("UTF-8");
|
||||
let vec: Box<Vec<String>> = Box::new(
|
||||
s.lines()
|
||||
.map(|line| line.trim().to_string())
|
||||
.filter(|l| !l.is_empty())
|
||||
.collect(),
|
||||
);
|
||||
let vec: &'static Vec<String> = Box::leak(vec);
|
||||
|
||||
let slice: Box<[&str]> = vec
|
||||
.iter()
|
||||
.map(|s| s.as_str())
|
||||
.collect::<Vec<&str>>()
|
||||
.into_boxed_slice();
|
||||
Box::leak(slice)
|
||||
}
|
||||
|
||||
pub fn fetch_language_stop_words(lang: &str) -> Option<&[&str]> {
|
||||
match lang {
|
||||
"_english_" => Some(ENGLISH),
|
||||
@ -48,6 +67,7 @@ pub fn fetch_language_stop_words(lang: &str) -> Option<&[&str]> {
|
||||
"_russian_" => Some(RUSSIAN),
|
||||
"_spanish_" => Some(SPANISH),
|
||||
"_swedish_" => Some(SWEDISH),
|
||||
"_chinese_" => Some(&*CHINESE),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@ -1919,3 +1939,24 @@ pub const SWEDISH: &[&str] = &[
|
||||
"varför", "varje", "vilka", "ditt", "vem", "vilket", "sitt", "sådana", "vart", "dina", "vars",
|
||||
"vårt", "våra", "ert", "era", "vilkas",
|
||||
];
|
||||
|
||||
pub static CHINESE_DATA: &[u8] = include_bytes!("chinese.txt");
|
||||
|
||||
pub static CHINESE: Lazy<&[&str]> = Lazy::new(|| fetch_words_from_file(CHINESE_DATA));
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::fetch_language_stop_words;
|
||||
|
||||
#[test]
|
||||
fn test_chinese_stop_words() {
|
||||
let words = fetch_language_stop_words("_chinese_").unwrap();
|
||||
assert!(
|
||||
words.len() == 840,
|
||||
"number of system Chinese stop words does not match the expected value"
|
||||
);
|
||||
for s in words {
|
||||
print!("{}\n", s);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user