我一直在开发一个投资组合管理工具的内部网站.有很多文本数据,公司名称等.我对一些搜索引擎能够快速回复查询的印象非常深刻,"你的意思是:xxxx".
我需要能够智能地进行用户查询并不仅响应原始搜索结果,还要回答"你的意思是?" 当有极有可能的替代答案等时作出回应
[我正在开发ASP.NET(VB - 不要反对我!)]
更新:好的,如果没有数百万"无偿用户",我怎么能模仿这个?
可能重复:
Google如何"你的意思是?"算法有效吗?
假设您的网站中已有搜索系统.你如何实现<spell_checked_word>
像谷歌在某些搜索查询中所说的"你的意思是:" 吗?
我有以下要求: -
我有很多(比方说100万)值(名字).用户将键入搜索字符串.
我不希望用户正确拼写名称.
所以,我想让谷歌成为"你的意思".这将列出我的数据存储区中的所有可能值.有一个相似但不相同的问题在这里.这没有回答我的问题.
我的问题: - 1)我认为不建议将这些数据存储在RDBMS中.因为那时我不会对SQL查询进行过滤.我必须做全表扫描.那么,在这种情况下应该如何存储数据?
2)第二个问题与此相同.但是,仅仅为了我的问题的完整性:我如何搜索大数据集?假设,数据集中有一个名称Franky.如果用户输入Phranky,我该如何匹配Franky?我是否必须遍历所有名称?
我遇到了Levenshtein Distance,这将是一个很好的技术来找到可能的字符串.但同样,我的问题是我必须对数据存储中的所有100万个值进行操作吗?
3)我知道,Google通过观察用户行为来做到这一点.但是我想在不看用户行为的情况下这样做,即通过使用,我还不知道,说距离算法.因为前一种方法需要大量的搜索才能开始!
4)正如Kirk Broadhurst在下面的答案中指出的,有两种可能的情况: -
我对这两个都很感兴趣.它们实际上是两个不同的东西; 例如Sean和Shawn的声音相同,但编辑距离为3 - 太高而不能被视为拼写错误.
language-agnostic nlp information-retrieval spell-checking autosuggest