相关疑难解决方法(0)

Google如何"你的意思是?" 算法工作?

我一直在开发一个投资组合管理工具的内部网站.有很多文本数据,公司名称等.我对一些搜索引擎能够快速回复查询的印象非常深刻,"你的意思是:xxxx".

我需要能够智能地进行用户查询并不仅响应原始搜索结果,还要回答"你的意思是?" 当有极有可能的替代答案等时作出回应

[我正在开发ASP.NET(VB - 不要反对我!)]

更新:好的,如果没有数百万"无偿用户",我怎么能模仿这个?

  • 为每个"已知"或"正确"术语生成拼写错误并执行查找?
  • 其他一些更优雅的方法?

algorithm nlp spell-checking machine-learning text-search

426
推荐指数
7
解决办法
8万
查看次数

我在哪里可以了解更多有关Google搜索"你的意思"算法的信息?

可能重复:
你如何实现"你的意思"?

我正在编写一个应用程序,我需要类似于Google的功能"你的意思是什么?" 搜索引擎使用的功能:

替代文字

是否有可用于此类事情的源代码,或者我在哪里可以找到有助于我构建自己的文章?

algorithm nlp spell-checking

68
推荐指数
4
解决办法
2万
查看次数

我如何估算"你的意思是?" 没有使用谷歌?

我知道这个问题的重复:

这些问题对算法实际如何工作感兴趣.我的问题更像是:让我们假设谷歌不存在或者这个功能可能不存在而且我们没有用户输入.如何实现此算法的近似版本?

为什么这很有趣?

好.尝试在Google中键入" qualfy ",它会告诉您:

你的意思是: 资格

很公平.它使用统计机器学习对从数十亿用户收集的数据进行此操作.但是现在尝试输入这个:" Trytoreconnectyou "到谷歌,它告诉你:

你的意思是: 尝试重新连接你

现在这是更有趣的部分.Google如何确定这一点?有一本方便的字典,并使用用户输入再次猜测最可能的单词?它如何区分拼写错误的单词和句子?

现在考虑到大多数程序员无法访问数十亿用户的输入,我正在寻找实现此算法的最佳近似方式以及可用的资源(数据集,库等).有什么建议?

language-agnostic algorithm nlp machine-learning

23
推荐指数
2
解决办法
4054
查看次数

单词比较算法

我正在为我正在进行的项目执行CSV导入工具.客户端需要能够在excel中输入数据,将它们导出为CSV并将它们上传到数据库.例如,我有这个CSV记录:

   1,   John Doe,     ACME Comapny   (the typo is on purpose)
Run Code Online (Sandbox Code Playgroud)

当然,这些公司被保存在一个单独的表中并与外键相关联,因此我需要在插入之前发现正确的公司ID.我计划通过将数据库中的公司名称与CSV中的公司名称进行比较来实现此目的.如果字符串完全相同,则比较应返回0,并返回一些随着字符串变得更大而变大的值,但是strcmp不会在此处删除它,因为:

"Acme公司"和"Acme Comapny"应该有一个非常小的差异指数,但"Acme公司"和"Cmea Mpnyaco"应该有一个非常大的差异指数或"Acme公司"和"Acme Comp.".即使字符数不同,也应该有一个小的差异索引.此外,"Acme Company"和"Company Acme"应返回0.

因此,如果客户端在输入数据时输入类型,我可以提示他选择他最想插入的名称.

是否有一个已知的算法来做到这一点,或者我们可以发明一个:)?

string algorithm compare similarity cpu-word

14
推荐指数
2
解决办法
2万
查看次数

正则表达式拼写错误

我有一个从数据库中的列表创建的正则表达式,以匹配游戏中建筑物类型的名称.问题是拼写错误,有时那些在游戏中为团队编写说明的人会拼错一个建筑名称,显然正则表达式不会捡起来(即拼写为"大学"和"大学").

有关于使正则表达式拼写错误拼写为1或2个字母的建议吗?

正则表达式是动态生成的,并且可以在能够处理更多负载的本地计算机上运行,​​因此我作为最后的手段以算法方式创建每个单词的版本,其中缺少一个字母,然后另一个添加了字母.

我正在使用PHP但我希望这个问题的任何解决方案都不是PHP特定的.

regex

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

如何构建"相关问题"引擎?

我们的一个较大的网站有一个部分,用户可以向网站所有者发送问题,由他的员工亲自评估.当经常出现相同的问题时,他们可以将此特定问题添加到常见问题解答中.

为了防止他们每天收到几十个类似的问题,我们希望提供类似于此网站上的"相关问题"的功能(堆栈溢出).

有什么方法可以构建这种功能?我知道我应该以某种方式评估问题并将其与常见问题解答中的问题进行比较,但这种比较如何运作?是否提取了关键字,如果是,如何?

可能值得一提的是这个站点建立在LAMP堆栈上,因此这些是可用的技术.

谢谢!

php mysql lamp recommendation-engine

6
推荐指数
1
解决办法
559
查看次数

在javascript中检测错误的电子邮件地址

我注意到有时候用户错误输入他们的电子邮件地址(以联系我们的形式),例如,键入@ yahho.com,@ yhoo.com或@ yahoo.co而不是@ yahoo.com

我觉得这可以通过一些javascript在现场纠正.只需检查电子邮件地址是否存在可能的错误,例如上面列出的错误,这样如果用户键入his_email@yhoo.com,就会显示非突兀的消息,或类似的消息,表明他可能意味着@yahoo. com,并要求仔细检查他是否正确输入了他的电子邮件.

问题是:
如何检测-in java脚本 - 字符串与"yahoo"或"yahoo.com"非常相似?或者一般来说,我如何检测两个字符串之间的相似程度?

PS(这是旁注)在我的具体案例中,用户不是以英语为母语的人,而且大部分用户都不熟悉,网站本身不是英文.

javascript email-validation

5
推荐指数
2
解决办法
1141
查看次数

如何实现一个简单的“你输入了 ACB,你的意思是 ABC?”

我知道这不是一个直截了当的问题,所以如果您需要我提供有关其范围的更多信息,请告诉我。有一堆问题几乎解决了相同的问题(它们在此处链接),但从来没有完全相同的问题具有相同的范围和目标 - 至少据我所知。

语境:

  • 我有一个带有 ID3 标签的 MP3 文件,用于艺术家姓名和歌曲标题。
  • 我有两张表 Artists 和 Songs
  • ID3 标签可能略有偏差(例如 Mikaell Jacksonne)
  • 我正在使用 ASP.NET + C# 和 MSSQL 数据库

我需要将 MP3 与数据库同步。意义:

  1. 用户启动脚本
  2. 该脚本浏览所有 MP3
  3. 剧本上写着“是‘米凯尔·杰克逊’‘迈克尔·杰克逊’是/否
  4. 用户选择,我们重新开始

系统可以找到的示例:

在数据库...

SONGS = {"This is a great song title", "This is a song title"}
ARTISTS = {"Michael Jackson"}
Run Code Online (Sandbox Code Playgroud)

输出...

"This is a grt song title" did you mean "This is a great song title" ?
"This is song title" did you mean "This is a …
Run Code Online (Sandbox Code Playgroud)

nlp spell-checking

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