标签: metaphone

为非英语字符启用soundex/metaphone

过去几天我一直在研究soundex,metaphone和其他字符串搜索技术,据我所知,这两种算法在处理音译到英语的非英语单词时效果很好.

然而,我的要求是这样的搜索工作在原始的,非音译语言,容纳字母表,如德语,挪威语,甚至Cyrilic字母表.

有没有能够完全处理这些字母的搜索算法?或者我最好使用第三方全文搜索库,如Lucene?因此,问题就变成了"Lucene处理非英文字母吗?"

lucene algorithm search soundex metaphone

14
推荐指数
1
解决办法
8265
查看次数

使用soundex()或metaphone()创建Mad Gab样式短语的算法

我正在尝试创建一个可以建议Mad Gab风格短语的算法.

输入是一组短语.我也有一组关键字,我想尽可能使用.目前,我的解决方案只是蛮力:

  • 循环短语(逐个字符)
    • 如果找到关键字
      • store关键字和分支(递归)
    • 增量字符数

但是,我遇到的问题是:

  • 复合关键字的帐户,例如"捕获"可以是"捕获","猫"+"奶酪"
  • 允许使用字面术语 - "the","and","one","two","three".
  • 如何建议不是关键字的术语.即当找不到关键字或文字时,重新回到类似系统字典的东西上.
  • 略过短语片段.现在它只是通过了一次.但是考虑一下这个短语以不匹配的东西开头但后面的几个字符包含匹配的情况.

我最熟悉PHP和MySQL.但是,如果能提供更好的解决方案,我对另一项技术持开放态度.

我也对任何其他建议感兴趣.特别是使用第二个参数metaphone()提出更难建议的方法.

php mysql soundex metaphone

14
推荐指数
1
解决办法
5975
查看次数

metaphone与soundex对比NYSIIS

我试图想出一个隐式拼写检查器,它将使用输入单词的映射到某种更一般的语音表示来解释可能发生的拼写错误,基本上对于一个会自动纠正你的拼写到一定程度的搜索栏.我一直在研究的两件事是metaphone,nysiis和soundex,但我真的不知道哪个更适合这个应用程序.

我希望优先选择更多的匹配而不是更少的匹配,我希望匹配更加通用,因此我想与soundex一起使用,这似乎是比原始的metaphone更接近的映射,但我真的不知道模糊性的差异有多大.我知道nysiis与soundex非常相似,但我不太清楚它们有多相似,或者nysiis与metaphone相比如何.

我也在寻找最快的解决方案.我知道这些语音映射器通常很快,但我不确定哪个是最快的,考虑到我希望能够在不增加搜索时间的情况下检查拼写,速度是一个考虑因素.思考?

nlp soundex machine-learning metaphone phonetics

11
推荐指数
1
解决办法
7108
查看次数

PHP metaphone实现错误

我正在测试C#的metaphone实现,并将其结果与PHP内置的metaphone()函数进行比较.但是,我遇到了一个错误(以前在PHP的问题跟踪器中记录并在邮件列表中讨论过),但我正在尝试根据自己的个人兴趣了解其bug背后的C代码.

基本上,根据metaphone算法,-gh-的大多数实例应该是静默的.在"wright"的具体测试用例中,我期望(并使用我自己的算法生成)一个"RT"的metaphone密钥

"wr" => R
"i"  => ignored
"gh" => ignored
"t"  => T

Result: RT
Run Code Online (Sandbox Code Playgroud)

但是,PHP的metaphone功能会返回RFT.很明显,它正在将-gh-转换为F,好像它在一个单词的末尾(例如"粗略"),但在"wright"这个词的情况下,这是不正确的,因为-gh-不是在这个词的最后.查看PHP源代码发行版中的metaphone.c文件,我看到了一些关键的东西:

/* These prevent GH from becoming F */
#define NOGHTOF(c)  (ENCODE(c) & 16)    /* BDH */

...

/* Go N letters back. */
#define Look_Back_Letter(n) (w_idx >= n ? toupper(word[w_idx-n]) : '\0')
Run Code Online (Sandbox Code Playgroud)

然后在342行:

case 'G':
    if (Next_Letter == 'H') {
        if (!(NOGHTOF(Look_Back_Letter(3)) || Look_Back_Letter(4) == 'H')) {
            Phonize('F');
            skip_letter++;
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解NOGHTOF函数到底是做什么的,以及为什么这段代码错误地为"wright"中的-gh-呈现F?我不是一个真正的C家伙,所以代码对我来说根本不清楚.

php c metaphone

7
推荐指数
1
解决办法
217
查看次数

什么是Metaphone 3算法?

我想自己编写Metaphone 3算法代码.有描述吗?我知道源代码可以出售,但这不是我想要的.

spell-checking metaphone phonetics

7
推荐指数
4
解决办法
1万
查看次数

MetaPhone功能(如SoundEx)功能并在R中使用?

我想使用MetaPhone,Double Metaphone,Caverphone,MetaPhone3,SoundEx,如果有人在'R'中完成了NameX功能,那么我可以对数值进行分类和汇总,以便在分析之前最大限度地减少数据清理操作.

我充分意识到每种算法都有自己的优点和缺点,并且非常希望不使用SoundEx,但如果我找不到替代品,它仍然可以工作; 正如在这篇文章中提到的那样, Harper将与SoundEx下的任何不相关名称列表匹配,但不应该在Metaphone中以获得更好的结果匹配.

虽然我不确定哪个会最好地服务于我的目的,同时仍然保留一些灵活性,所以这就是我想要对它们中的几个进行刺穿以及在查看值之前生成如下表格的原因.

在此输入图像描述

表源链接

姓氏不是我初步分析的主题,但认为这是一个很好的例子,因为我想有效地考虑所有像'听起来'的单词被视为相同的值真的是我试图用简单地调用的东西作为值被评估.

我已经看过的一些事情:

  • 我知道可以使用RCpp编写和调用C包,并且在SE上甚至有针对SoundEx的 C解决方案,但我之前没有编写R包并且希望避免重新发明轮子,如果有更简单的方法直接在R中执行,还是存在具有该功能的包?
  • 我知道RecordLinkage和现在的stringdist包具有SoundEx功能,但不具有任何形式的MetaPhone功能.

所以我特意寻找答案是如何在R中运行MetaPhone/Caverphone并知道"值",以便我可以按它们对数据值进行分组?

另外需要注意的是,我仍然认为自己是R的新手,因为我不是每天的用户.

soundex r metaphone

7
推荐指数
2
解决办法
2255
查看次数

在Android上使用自定义不常用的单词匹配语音到文本

我希望能够使用Android的Speech-To-Text引擎识别句子中的各种不寻常的单词.

举一个例子,"脑电图"这个词来自STT,称为"电子供应图".当我使用Soundex或Metaphone将所说的内容与硬编码值进行比较时,该值似乎永远不会匹配或随机匹配.如果我使用阈值(Math.abs(str1.compareTo(str2))<= 1,那么匹配变得非常松散,几乎任何东西都匹配.

从本质上讲,我想做的是类似于通过背诵报价从报价数据库中查找报价.谷歌的语音转文本引擎使用的有限字集似乎更多的问题.

有任何想法吗?

java android soundex metaphone speech-to-text

5
推荐指数
1
解决办法
2078
查看次数

如何决定Elasticsearch“音标过滤器”中的哪种语言使用哪种编码器?

我在 Elasticsearch 中使用了Metaphonesoundex编码器以及“Phonetic Token Filter”。

变音位对于英语单词很有用。

Soundex适用于英语、印地语以及许多其他语言

我想知道哪些编码器最适合印地语以及其他印度语言(如果可能的话)?

  • 声音指数
  • 变音位
  • 双变音位
  • 精炼_soundex
  • Caverphone1 - 英语(新西兰本地化)
  • Caverphone2 - 英语(新西兰本地化)
  • 科隆 - 德语
  • nysiis - 即兴 Soundex
  • koelnerphonetik - 德语
  • haasephonetik - 德语
  • beider_morse - 英语和多种欧洲语言
  • daitch_mokotoff - 斯拉夫语和意第绪语姓氏

由于Elasticsearch 网站上没有列出我们应该选择哪种语言的编码器。

还请告诉我您已经使用过哪些编码器以及用于哪种语言。

metaphone phonetics elasticsearch

5
推荐指数
1
解决办法
1444
查看次数

PHP中函数metaphone()和soundex()的实际用法是什么?

Metaphone和Soundex是用于通过英语发音索引字符串的语音算法.

你曾经使用过标准PHP库中存在的函数metaphone()soundex()吗?

做什么的?这些功能的实际用法是什么?

php indexing metaphone phonetics

4
推荐指数
1
解决办法
2326
查看次数

双metaphone错误

我正在使用劳伦斯飞利浦Double-Metaphone算法取得了巨大的成功,但我发现了某些组合的奇怪"意外结果".

是否有其他人对算法的其他部分添加或更改,他们不介意共享,或只是他们发现不能按预期工作的组合.

例如.我之间有问题:

  • Peashill和Bushley.(都与PXL匹配)
  • Rockliffe和Rockcliffe(RKLF和RKKL)

algorithm soundex metaphone

0
推荐指数
1
解决办法
1212
查看次数