2012-05-04 12 views

ответ

3

Ссылка @Bo теперь ссылается на весь исходный код проекта (теперь defucnt).

Поэтому здесь новая связь с прямой ссылкой на исходный код для Metaphone 3 https://searchcode.com/codesearch/view/2366000/

Лоренса Philips
* * Metaphone 3 предназначен для возвращения приблизительной фонетического ключа (и альтернативный * приблизительный фонетический ключ, если это необходимо), который должен быть таким же для английского языка * слова и большинство имен, знакомых в Соединенных Штатах, которые произносятся аналогичным образом. * Значение ключа не должно быть точное фонетическое, или даже фонематическое, * представление слова. Это связано с тем, что определенная степень «fuzziness» имеет значение * оказалась полезной для компенсации вариаций в произношении, а также для * misheard произношения. Например, хотя американцы обычно не знают об этом, * буква 'обычно' произносится как «z» в конце слов, таких как «звуки».

* * The 'приближенное' аспект кодирования осуществляется в соответствии со следующими правилами:

* * (1) Все гласные кодируются с тем же значением - 'A'. Если для параметра encodeVowels * установлено значение false, то только начальные гласные будут закодированы вообще. Если encodeVowels установлено * в true, 'A' будет закодирован во всех местах слова, что любые гласные обычно * произносится. «W», а также «Y» рассматриваются как гласные. Хотя есть различия в * произношение «W» и «Y» в разных обстоятельствах, которые приводят к их * классифицируются как гласные при некоторых обстоятельствах и в качестве согласных в других для целей * компонента «нечеткость» из семейства алгоритмов Soundex и Metaphone они будут всегда рассматриваться как гласные.

* * (2) Голосовые и незвучащие согласные пары отображаются в одно и то же закодированное значение. Это * означает, что:
* 'D' и 'Т' -> 'T'
* 'В' и 'Р' -> 'Р'
* 'G' и 'K' -> «К '
* 'Z' и 'S' -> 'S'
* 'V' и 'F' -> 'F'

* * - В дополнение к сказанному выше озвучивает/невокализованные правила,' СН 'и' SH '->' X ', где' X ' * представляет звуки «-SH-» и «-CH-» в кодировке «Метафон 3».

+0

, несуществующий проект переместился в github: https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google /refine/clustering/binning/Metaphone3.java – necromancer

10

Материал из Википедии, Metaphone algorithm является

Metaphone фонетическое алгоритм, алгоритм опубликован в 1990 году для индексации слов по их произношению английского языка. Это существенно улучшает алгоритм Soundex, используя информацию о вариациях и несоответствий в английском написании и произношении, чтобы произвести более точную кодировку, которая делает лучшую работу сопрягать слова и имена, которые звучат аналогичные [...]

Metaphone 3 конкретно

[...] достигает точности приблизительно 99% для английских слов, неанглийских слов, знакомых американцам, а также фамилий и фамилий, обычно встречающихся в Соединенных Штатах Америки, к современным инженерным стандартам в отношении тестового жгута подготовленных правильных кодировок.

overview алгоритма является:

Алгоритм Metaphone работает на первом удалении не английские буквы и символы от слова в обработке. Затем все гласные также отбрасываются, если слово не начинается с начального гласного, и в этом случае все гласные, кроме начального, отбрасываются. Наконец, все согласные и группы согласных отображаются в их метафоном. Правила группировки согласных и групп, а затем сопоставление с кодами метафонов довольно сложны; для полного списка этих преобразований ознакомьтесь с комментариями в разделе исходного кода.

Теперь, на ваш реальный вопрос:

Если вы заинтересованы в специфике алгоритма Metaphone 3, я думаю, вы не повезло (сокр покупки исходного кода, понимая его и воссоздавая его самостоятельно): весь смысл не, создающий алгоритм (из которого источник, который вы можете купить, является экземпляром), публика состоит в том, что вы не можете воссоздать его, не заплатив автору за их усилия по развитию (предоставляя " точный алгоритм ", который вы ищете, эквивалентен предоставлению самого самого кода). Рассмотрим приведенные выше цитаты: разработка алгоритма включала «тестовый жгут [...] кодировок». Если у вас не будет такой тестовой жгуты или вы не сможете ее создать, вы не сможете реплицировать алгоритм.

С другой стороны, реализация первых двух итераций (Metaphone и Double Metaphone) являются свободно доступны (выше Википедии ссылка содержит счет ссылок на реализации на различных языках для обоих), что означает, что у вас есть хорошей отправной точкой в ​​понимании того, что такое алгоритм, и затем улучшите его, как вы сочтете нужным (например, создав и используя подходящий тестовый жгут).

+6

Поскольку код стоит $ 40,00 от [Amorphics] (http://www.amorphics.com/buy_metaphone3.html), он очень далек от возмутительной цены. Условия лицензии запрещают перераспределение исходного кода; если вы найдете исходный код в Интернете, он, вероятно, не будет законно получен. Однако вы можете создавать программное обеспечение с использованием исходного кода и распространять скомпилированные программы без каких-либо ограничений. IANAL; это моя быстрая интерпретация того, что она говорит на странице лицензии, это ссылка на URL-адрес. –

+0

@ JonathanLeffler стимулом для продавца является затруднение понимания источника, поэтому продавец может также продавать двоичные файлы. я не решаюсь тратить деньги на эффективно закрытое исходное программное обеспечение. я еще не столкнулся с каким-либо разумным исходным кодом, из которого невозможно получить алгоритм. если это исходный компьютер, то секретный соус - это куча признаков, которые были бы тривиальными для извлечения, если источник не запутался. в любом случае, это конфликтный способ распространения источника и, следовательно, мой запрос на сам алгоритм. – necromancer

+0

@agksmehx - Я не читал EULA, но могу представить, что это запрещает любому, у кого есть источник, распространять его. Таким образом, вы не получите ответа от людей, у которых есть источник. Те, у кого нет источника, не смогут ответить вам из-за того, что я изложил в своем ответе. Таким образом, ваш единственный вариант, кажется, покупает источник самостоятельно. Но зачем вам Metaphone 3 специально? Не могли бы вы использовать две другие, свободно доступные версии, так же хорошо? – Attila

11

Поскольку автор (Lawrence Philips) решил коммерциализировать сам алгоритм, более вероятно, что вы не найдете описания. Хорошим местом для запроса будет список рассылки: https://lists.sourceforge.net/lists/listinfo/aspell-metaphone

, но вы также можете проверить исходный код (т.комментарии кодов), чтобы понять, как работает алгоритм: http://code.google.com/p/google-refine/source/browse/trunk/main/src/com/google/refine/clustering/binning/Metaphone3.java?r=2029

+1

ну, это не тот ответ, на который я надеялся, но так как вам удалось найти (законную) ссылку на исходный код, я должен предоставить вам бонус :) Я не уверен, почему исходный код продается, если он также доступен бесплатно (легально), но так как щедрость истекает через 10 мин. я должен понять все это позже и получить его к вам! :) – necromancer

+1

на вторых мыслях кажется, что бесплатный исходный код, связанный в ответ, является полным и функциональным, и достаточно хорошо документирован, чтобы быть точным алгоритмом, так что это прекрасный ответ и определенно заработал щедрость! :) – necromancer

+0

Добро пожаловать! –