batrox / phonetic-algorithms
音韵算法用于模糊搜索 | PHP
v1.0.0
2024-02-26 15:12 UTC
Requires
- php: >=8.0.0
- batrox/portable-utf8: ~1.0
- voku/stop-words: ~2.0
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
This package is auto-updated.
Last update: 2024-09-29 15:42:34 UTC
README
Phonetic-Algorithms
描述
- "PhoneticGerman"-类
通过“科隆音韵学”为德语提供音韵算法:en.wikipedia.org/wiki/Cologne_phonetics
- "PhoneticEnglish"-类
通过“metaphone”为英语提供音韵算法:en.wikipedia.org/wiki/Metaphone
- "PhoneticFrench"-类
通过“SOUNDEX FR”为法语提供音韵算法:www.roudoudou.com/phonetic.php
安装
- 在您的项目中安装并使用 composer。
- 通过 composer 需求此包
composer require voku/phonetic-algorithms
用法
如果您需要针对单个单词进行模糊搜索,例如姓氏或产品名称,请使用 "phonetic_word"-方法。
use voku\helper\Phonetic; $words = array( 'Moelleken', 'Mölleken', 'Möleken', 'Moeleken', 'Moellecken', 'Möllecken', 'Mölecken', ); $phonetic = new Phonetic('de'); foreach ($words as $word) { $phonetic->phonetic_word($string); // '6546' }
您可以使用 "phonetic_sentence"-方法处理句子。
use voku\helper\Phonetic; $string = 'Ein Satz mit vielen Wortern'; $phonetic = new Phonetic('de'); $phonetic->phonetic_sentence($string, (bool) false, (false|int) false); // [ // 'Ein' => '06', // 'Satz' => '8', // 'mit' => '62', // 'vielen' => '356', // 'Wortern' => '37276' // ]
您可以使用 "phonetic_matches"-方法在单词数组中搜索单词。
use voku\helper\Phonetic; $phonetic = new Phonetic('de'); $tests = array( 'Moelleken', // '6546', 'Mölleken', // '6546', 'Möleken', // '6546', 'Moeleken', // '6546', 'oder', // '027', 'was', // '38', 'Moellecken', // '6546', 'Möllecken', // '6546', 'Mölecken', // '6546', ); $phonetic->phonetic_matches('Moelleken', $tests); // [ // 'Moelleken' => 'Moelleken', // 'Mölleken' => 'Moelleken', // 'Möleken' => 'Moelleken', // 'Moeleken' => 'Moelleken', // 'Moellecken' => 'Moelleken', // 'Möllecken' => 'Moelleken', // 'Mölecken' => 'Moelleken', // ]
历史
有关变更的完整历史记录,请参阅 CHANGELOG。