ParsiAnalyzer
ParsiAnalyzer 是 Elasticsearch 的一个分析插件。分析过程包括以下步骤:
- 将文本块分词成单独的词项
- 将这些词项标准化为标准形式
分析器实际上只是一个包装器,它结合了字符过滤器、分词器和词项过滤器。Elasticsearch 提供了许多内置分析器,但对于波斯语来说仍有改进的空间。这个插件提供了用于分词、标准化和词干提取波斯文本的工具。
主要特性
-
分词波斯文本
- 在必要时将空格转换为零宽度非连接符(
نیمفاصله
)。例如,将می رود
转换为میرود
。 - 将波斯标点符号转换为其英文等效符号。例如,将
۳/۱۴
转换为۳.۱۴
。 - 通过空格和标点符号对波斯文本进行分词。
- 在必要时将空格转换为零宽度非连接符(
-
将波斯词项标准化为单一规范形式
- 将所有形式的 Yeh、Kaf、Heh 和 Hamza 转换为唯一形式。例如,将
براي
转换为برای
。 - 将所有波斯语和阿拉伯语数字转换为其英文等效形式。例如,将
۱۴۳
转换为143
。 - 从单词中移除变音符号(
اِعراب
)。例如,将اَرّه
转换为اره
。 - 从单词中移除 Kashida。例如,将
بادبــــــادک
转换为بادبادک
。
- 将所有形式的 Yeh、Kaf、Heh 和 Hamza 转换为唯一形式。例如,将
-
移除常见的波斯语停用词
- 将移除像
از
、به
等波斯语停用词。
- 将移除像
-
提取波斯语单词词干
- 移除常见的波斯语后缀。例如,
ها
或ان
。
- 移除常见的波斯语后缀。例如,
安装
要为 Elasticsearch 7.13.1 安装插件,请运行以下命令:
bin\elasticsearch-plugin install https://www.dropbox.com/s/cr61dmnx95taivi/ParsiAnalyzer-7.13.1.zip?dl=1
构建
如果你想为特定版本的 Elasticsearch 构建 ParsiAnalyzer,请按以下步骤操作:
- 确保你的计算机上已安装 JDK 和 Maven
- 克隆项目
- 打开
pom.xml
- 在 dependencies 标签下,将 Elasticsearch 版本更改为你想要的版本
- 打开
plugin-descriptor.properties
- 将 elasticsearch.version 更改为你想要的版本
- 运行以下 Maven 命令:
mvn clean package
- 在 target/releases 文件夹中,你现在会找到一个 zip 文件。使用以下命令安装插件:
bin/elasticsearch-plugin install file:///path/to/ParsiAnalyzer.zip
使用
要查看此插件的工作原理,你可以使用 Elasticsearch 的 analyze
API:
POST _analyze
{
"analyzer" : "parsi",
"text" : "روباه قهوهاي چابك از روی سگ تنبل می پرد"
}
如果你觉得词干提取有点烦人,你可以始终使用 ParsiAnalyzer 的标准变体:
POST _analyze
{
"analyzer" : "parsi_standard",
"text" : "روباه قهوهاي چابك از روی سگ تنبل می پرد"
}
ParsiAnalyzer 可以在字段映射中直接指定,如下所示:
PUT /my_index
{
"mappings": {
"blog": {
"properties": {
"title": {
"type": "text",
"analyzer": "parsi"
}
}
}
}
}
联系我
电子邮件:n.esmaielyfard [at] gmail.com