我正在solr中进行跨语言搜索,我正在进行从语言A到语言B的查询翻译,这些翻译基于双语词典。我目前面临的问题是“对于查询中的某些词语,我有多个翻译”。在这里,我需要正确的翻译单词。我该如何解决这种翻译含糊不清的问题。
在这种情况下,我们无法确定查询的上下文,因为查询可能太短。我能看到的唯一方法是单词的概率发生。有什么方法可以让我检查一起发生的单词的概率吗?
答案 0 :(得分:0)
我相信你会打电话来分析单词出现在一起的简单形式的概率,我认为在查询中它会非常容易出错,并导致你错过相关的结果。对于完整的上下文句子来说,这是一个非常困难的问题。用户输入的查询字符串中的歧义可能会无法解决,因此我认为,尝试解决它们会使您的搜索难以预测,甚至可能使某些概念难以或无法搜索。
我的建议是,使用类似SynonymFilter的实现来搜索两种替代翻译。
因此,如果我使用西班牙语搜索英语单词"fine"
,我可能会将其分解为查询"multa fino sutil"
。
在DisjunctionMaxQuery中包含这些同义词列表可能是有意义的,以防止同一个词的多个翻译上的点击影响得分超过他们应该的。所以如果要搜索
我可能会在辩论中找到一个很好的论点,一支削尖的铅笔,或者,知道用户如何输入查询,我很可能正在寻找一个野餐的好地方,或者交通罚单的惩罚背后的理由
所以,我可能会把它扩展为:
BooleanQuery
,加入:
DisjunctionMaxQuery
:“multa”,“fino”,“sutil”DisjunctionMaxQuery
:“punta”,“momento”,“lugar”