voku/phonetic-algorithms

模糊搜索的音位算法 | PHP

5.0.0 2022-01-10 23:20 UTC

This package is auto-updated.

Last update: 2024-09-15 04:26:05 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License

音位算法

描述

  • "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

安装

  1. 在项目中安装并使用 composer
  2. 通过 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 以获取更改的完整历史记录。