java - 在制作电子商务网站的搜索引擎时,如何处理空格位置错误的搜索查询?

标签 java search nlp search-engine tf-idf

假设我在网站上有一个条目 pepe jeans。用户搜索 pepejeans。我目前使用 tf-idf 和余弦相似度来返回最重要的结果,但由于内容很大,我已将内存使用量保持得尽可能小。那么我可以用什么来解决这个问题呢?一种解决方案是保留内容的所有 ngram 的带空格和不带空格的记录。

另一个例子- 如果用户搜索 Nikeshoes。现在耐克是一个品牌,但耐克鞋不是一个品牌。如果搜索查询是 Nike Shoes,那么它会返回 Nike 作为品牌。 这里的内容指的是品牌名称。我正在尝试从查询中识别品牌名称

最佳答案

典型的解决方案是在执行查询之前进行查询重写。在查询重写期间,您可以将用户给出的查询转换为更适合您的检索系统的形式。这可能涉及标记化、词干提取、拼写检查和其他类型的重写。

有关概述,请参阅此博文 https://hughewilliams.com/2012/03/19/query-rewriting-in-search-engines/

关于java - 在制作电子商务网站的搜索引擎时,如何处理空格位置错误的搜索查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485665/

相关文章:

jquery - 如何在 SQL 中赋予相似语句优先级

java - LibGDX - 将跨平台客户端连接到服务器(HTML5/GWT、iOS、Android 和桌面)

java - 通过连接前 n 个自然数的二进制表示形式形成的数字的十进制值

java - Spring DATA JPA 以 Hibernate 作为 JPA 提供者

java - Pdfbox 签名 - saveIncremental 与 saveIncrementalForExternalSigning

search - 如何在整个项目/文件夹中递归搜索单词?

python - 用Python实现DNS消息NAME压缩算法

machine-learning - 是否有任何最佳实践来为基于文本的分类准备特征?

r - 有关 Rstem 软件包安装的更多问题

nlp - Wordnet 编辑树结构