voku / phonetic-algorithms
模糊搜索的音位算法 | PHP
5.0.0
2022-01-10 23:20 UTC
Requires
- php: >=7.0.0
- voku/portable-utf8: ~6.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-15 04:26:05 UTC
README
音位算法
描述
- "PhoneticGerman"-类
通过 "Kölner Phonetik" 实现的德语音位算法: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 以获取更改的完整历史记录。