insolita/metaphone

适用于俄语的Metaphone算法实现

1.0.0 2020-11-01 20:55 UTC

This package is auto-updated.

Last update: 2024-08-29 05:34:22 UTC


README

metaphone ruby的https://github.com/pavlo/russian_metaphone 的端口

https://en.wikipedia.org/wiki/Metaphone

查看 http://forum.aeroion.ru/topic461.html (俄语算法描述)

安装

composer require insolita/metaphone

使用方法

<?php

$word = 'вода';
$phonetic = (new Metaphone())->processWord($word); //вада

默认过滤器集合包括姓氏结尾的过滤器,如果您只想排除这些过滤器,可以使用辅助工具

$withLastnames = (new Metaphone())->processWord('Чернышевский'); //чирнаш#
$withoutLastnames = (new Metaphone())->skipLastnames()->processWord('Чернышевский'); //чирнашифский

提供自定义过滤器。每个过滤器都必须实现 insolita\metaphone\Filter

$metaphone = new Metaphone([Normalize::class, new CustomFilter($params), new HandleConsonants(true), ...])
$phonetic = $metaphone->processWord($word);

查看测试文件夹以更好地理解过滤器