nyancodeid / sastrawi
用于印度尼西亚语(Bahasa Indonesia)词根提取的PHP库
1.2.2
2024-05-08 10:38 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-08 11:22:53 UTC
README
Sastrawi是一个简单的PHP库,它允许您将印度尼西亚语(Bahasa Indonesia)的屈折词还原到其基本形式(词干)。尽管其简单性,但该库设计为高质量且具有良好的文档记录。有关更多信息(英文),请参阅README。
词根提取
词根提取是将带前缀或后缀的词转换为词干的过程。例如
- menahan => tahan
- berbalas-balasan => balas
案例示例
假设有一个包含以下内容的博客文章
Rakyat memenuhi halaman gedung untuk menyuarakan isi hatinya.
以下查询不会找到上述文章,
SELECT * FROM posts WHERE content LIKE '%suara%'
词根提取过程可以帮助找到正在搜索的文档,即通过删除前缀和后缀,仅保留以下基本形式
rakyat penuh halaman gedung suara isi hati
然后将搜索关键字也作为基本形式
Bersuara => suara
Sastrawi
- Library PHP用于词根提取印度尼西亚语。
- 易于与其他框架 / 包集成。
- 具有简单易用的API。
演示
安装方法
Sastrawi可以通过Composer安装。
- 打开终端(命令行)并导航到项目目录。
- 下载Composer,使文件
composer.phar
位于该目录。 - 将sastrawi添加到您的
composer.json
文件中
php composer.phar require sastrawi/sastrawi:^1
如果您还不了解如何使用Composer,请阅读Composer入门指南。
运行测试的方法
vendor/bin/phpunit
使用
将以下代码复制到您的项目目录中。然后运行该文件。
<?php // demo.php // include composer autoloader require_once __DIR__ . '/vendor/autoload.php'; // create stemmer // cukup dijalankan sekali saja, biasanya didaftarkan di service container $stemmerFactory = new \Sastrawi\Stemmer\StemmerFactory(); $stemmer = $stemmerFactory->createStemmer(); // stem $sentence = 'Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan'; $output = $stemmer->stem($sentence); echo $output . "\n"; // ekonomi indonesia sedang dalam tumbuh yang bangga echo $stemmer->stem('Mereka meniru-nirukannya') . "\n"; // mereka tiru
添加和删除基本形式
<?php // include composer autoloader require_once __DIR__ . '/vendor/autoload.php'; // create stemmer // cukup dijalankan sekali saja, biasanya didaftarkan di service container $stemmerFactory = new \Sastrawi\Stemmer\StemmerFactory(); $dictionary = $stemmerFactory->createDefaultDictionary(); $dictionary->addWordsFromTextFile(__DIR__.'/my-dictionary.txt'); $dictionary->add('internet'); $dictionary->remove('desa'); $stemmer = new \Sastrawi\Stemmer\Stemmer($dictionary); var_dump($stemmer->stem('internetan')); //internet
库
算法
本库中使用的算法是以下所有所有者的知识产权。为了提高代码质量,这些算法被应用于面向对象设计。
- 纳齐夫和艾德里安尼算法
- 亚洲J. 2007. 有效的印度尼西亚文本检索技术. 澳大利亚RMIT大学计算机科学与信息技术学院博士论文
- Arifin, A.Z., I.P.A.K. Mahendra 和 H.T. Ciptaningtyas. 2009. 增强的Confix Stripping Stemmer和蚂蚁算法用于对印度尼西亚语新闻文档进行分类,国际信息与通信技术及系统(ICTS)会议论文集
- A. D. Tahitoe, D. Purwitasari. 2010. 使用语料库基于词根提取的修改增强的Confix Stripping Stemmer的印度尼西亚语实现,印度尼西亚Surabaya,印尼理工学院(ITS),60111
基本词汇表
Sastrawi的词根提取过程非常依赖于基本词汇表。Sastrawi使用来自kateglo.com的基本词汇表,并进行了一些修改。
许可证
sastrawi 许可证是 MIT 许可证(MIT),而 Kateglo 基础词典的许可证是 CC-BY-NC-SA 3.0。有关更多信息,请参阅 Sastrawi 许可证 和 Kateglo 内容许可证。
在其他编程语言中
- JSastrawi - Java
- cSastrawi - C
- PySastrawi - Python
- Go-Sastrawi - Go
- Sastrawi-Ruby - Ruby