问题标签 [soundex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
382 浏览

database-design - 设计基于 soundex 的搜索的最佳方法

我有一个论坛帖子表,并且想要改进基本的搜索功能,因为我们有来自世界各地的许多非英语母语用户,并且当他们拼写错误时很难找到结果。当前的论坛搜索是准确的。

这些设计中哪一个表现最好?假设数据库有 500,000 条记录并且经常使用搜索。理想情况下,我希望它搜索每条记录。

设计一

在每个论坛帖子旁边,我存储 soundex_post,其中包含所有 soundex 数据。运行搜索时,它会搜索所有搜索词,并对 soundex 字段执行 LIKE 操作。

设计二

我把它标准化。每个 soundex 代码都存储在一个新表 tblSoundexCodes 中。然后有一个表 tblForumPostSoundexCodes:

身份证 | Post_ID | SoundexCode_ID | 数数

然后,当搜索 soundex 时,我只需提取 SoundexCode_ID = n的所有 Post_ID

我是否正确,方法二会快得多,但维护起来会困难得多(IE,当人们编辑帖子时)。

0 投票
2 回答
11124 浏览

mongodb - MongoDB 是否支持 soundex 或模糊匹配?

MongoDB 是否支持 soundex 或模糊匹配?我想发现基本联系人姓名和地址字段的欺骗。我正在使用官方的 C# 驱动程序。谢谢

0 投票
1 回答
2273 浏览

ms-access - MS Access 2003 使用 SoundEx 从表单中搜索

按姓氏搜索时,我需要搜索以在数据库中查找“模糊匹配”。我已经实现了以下功能来启用 SoundEx 功能,这没有问题。

在构建 SQL 以搜索动态调用 SoundEx 函数的数据库时,我遇到了问题。我知道可以在 SQL 语句中调用 VBA 函数,但它似乎不能正常工作。

当我在表单上输入一个字符串并单击按钮时,我已经逐步完成,并且在它构建 SQL 时,它会在搜索框中弹出一个命令窗口,其中包含文本的 SoundEx 输出,以及另一个数据框入口。

一直在摆弄这个,似乎找不到有帮助的例子。

0 投票
3 回答
2332 浏览

unicode - 比较不同语言的短字符串以获得相似的声音 - Soundex 是答案吗?

我如何才能为用一种语言编写的字符串与另一种语言的另一种字符串获得声音相似度“评级”:即一种可以识别该字符串的算法

David Letterman ”和“ דוד לטרמן ”是听起来相似的字符串。

-哦,是的,顺便说一句,上面是希伯来语,你猜对了:“大卫莱特曼”,它的发音/口语几乎与英语相同..

我拥有的唯一原材料是各自语言的 unicode 字符串。也就是说,我没有字符串的音素或音标/翻译。

我已经实现了一个 Soundex 实现调整,效果一般。这是要走的路吗?

0 投票
2 回答
825 浏览

php - 试图用 SOUNDEX 比较两个表

有人可以解释一下如何使用 SOUNDEX (mysql/php) 来匹配多个单词吗?我正在尝试制作一个简单的站内广告系统。

我有一个包含“ad_id”和“keywords”列的表,以及另一个包含“page_url”和“keywords”的表。问题是,第一个表,给定 ad_id 的所有关键字都在一行中,但第二个表有多个行,如下所示:

page_url:-----keywords:
page1.php-----keyword1,keyword2,keyword3
page1.php-----keyword4
page2.php-----anotherkeyword

我正在尝试比较这两个表格,以确定应该展示哪个广告。我在试图让它理解有多个行对应于第二个表上的相同页面名称时遇到了一些真正的问题,更不用说它们都用逗号分隔的事实了!

知道从哪里开始吗?任何意见,将不胜感激。谢谢。

0 投票
2 回答
5279 浏览

sql - Soundex 函数在 SQL Server 中如何工作?

下面是 SQL 中的 Soundex 代码示例:

怎么'Smith'变成S530

在这个例子中,第一个数字是S因为这是输入表达式中的第一个字符,但是剩下的三个数字是如何计算的呢?

0 投票
1 回答
793 浏览

sql - 查询数据库名称的建议

我有一个 Oracle 数据库,与许多数据库一样,它有一个包含传记信息的表。对此,我想以“自然”的方式按名称搜索。

该表有forenamesurname字段,目前,我正在使用这样的东西:

这行得通,但它可能会很慢,因为该表上的索引显然不能解释前面的通配符。此外,用户通常会根据他们通过电话告诉他们的内容来搜索人——包括大量的非英文名字——所以最好也做一些语音分析。

因此,我一直在试验 Oracle Text:

这具有使用 Soundex 算法以及全文索引的优点,因此它应该更有效一些。(虽然,我的轶事结果表明它非常缓慢!)对此我唯一的担忧是:

  • 首先,需要以某种有意义的方式刷新文本索引。使用on commit速度太慢,并且可能会干扰前端软件(我无法控制)与数据库的交互方式;所以需要一些思考...

  • Oracle 返回的结果并不是很自然地排序的。我不太确定这个score功能。例如,我的开发数据显示“Jonathan Peter Jason Smith”在顶部——很好——但“Jane Margaret Simpson”与“John Terrance Smith”处于同一水平

我认为删除前面的通配符可能会在不降低结果的情况下提高性能,因为在现实生活中,您永远不会在名称中间搜索块。但是,否则,我对想法持开放态度……这种情况一定是实施得令人作呕!任何人都可以对我现在正在做/考虑的事情提出更好的方法吗?

谢谢 :)

0 投票
3 回答
3483 浏览

c# - Soundex 算法的一些变化

该算法设置为在第一个单词上运行或直到它填充四个编码字符串。例如,输入“Horrible Great”的结果是:H612。它忽略了第二个单词,或者换句话说,它只需要第二个单词的第一个字母来填充编码的字符串。

我想通过取第一个单词并找到它的编码字符串来改变它,然后取第二个单词并找到它的编码字符串;输出应该是“H614 G600”。我想知道是否有办法通过对 **this code进行一些更改来做到这一点。
非常感谢 :)

0 投票
2 回答
5259 浏览

mysql - 如何在 MySQL 中标记字符串?

我的项目是从一组人手动创建的平面 Excel 文件中导入一个相当大的集合 +500K 行数据。现在的问题是,这一切都需要标准化,以供客户搜索。例如,公司字段将有多个公司拼写并包括分支,例如“IBM”,然后是“IBM Inc.”。和“IBM Japan”等。另外,我有一些字母数字的产品名称,例如“A46-Rhizonme Pentahol”,单靠 SOUNDEX 无法处理

从长远来看,我可以通过使用AJAX auto-suggest的 Web 表单输入所有数据来解决这个问题。然而,在那之前,我仍然需要处理大量现有数据的收集。根据我在这里读到的内容,这让我想到了我认为是一个很好的过程:

http://msdn.microsoft.com/en-us/magazine/cc163731.aspx

创建自定义模糊逻辑查找和模糊逻辑分组的步骤

  1. 项目清单
  2. 将字符串标记为关键字
  3. 计算关键字 TF-IDF(总频率 - 逆文档频率)
  4. 计算关键字之间的levenshtein距离
  5. 计算可用 alpha 字符串的 Soundex
  6. 确定关键字的上下文
  7. 根据上下文将关键字放入单独的数据库表中,例如“Companies”、“Products”、“Ingredients”

我一直在谷歌搜索、搜索 StackOverflow、阅读 MySQL.com 讨论等关于这个问题,试图找到一个预建的解决方案。有任何想法吗?

0 投票
2 回答
1034 浏览

sql-server - Sql Server Soundex 名称搜索 - 查找名称的缩写形式

我想让我的应用程序搜索姓名并返回相似的名字。即如果用户搜索约翰,乔纳森的也应该被返回。

Soundex 搜索似乎没有这样做。除了存储相关名称的字典之外,还有其他选择吗?