我正在开发一个系统,允许将导入的文件本地化成其他语言。
这主要是为了熟悉MVC3、EntityFramework、LINQ等技术而进行的私人项目。因此,我喜欢做一些疯狂的事情来调整最终结果,其中之一就是识别相似的字符串。
想象一下你有以下字符串列表 - 借鉴自我过去使用过的游戏:
如您所见,一旦用户已经翻译了前4个字符串,接下来的4个字符串共享很多相似之处,在这种情况下包括:
考虑到前4个字符串确实已经被翻译,当用户从列表中选择第5个字符串时,我可以使用什么算法或技术向用户显示"相似字符串"的子标题下的第1个字符串(以及可能的其他字符串)?
编辑-关于Levenshtein距离的一点注释: 我目前正在针对数据库中的10k个字符串。Levenshtein距离逐个比较字符串,因此在这种情况下有10k x (10k -1)种可能的组合。我该如何以可行的方式解决这个问题?是否有比这个特定算法更好的解决方案?
这主要是为了熟悉MVC3、EntityFramework、LINQ等技术而进行的私人项目。因此,我喜欢做一些疯狂的事情来调整最终结果,其中之一就是识别相似的字符串。
想象一下你有以下字符串列表 - 借鉴自我过去使用过的游戏:
如您所见,一旦用户已经翻译了前4个字符串,接下来的4个字符串共享很多相似之处,在这种情况下包括:
考虑到前4个字符串确实已经被翻译,当用户从列表中选择第5个字符串时,我可以使用什么算法或技术向用户显示"相似字符串"的子标题下的第1个字符串(以及可能的其他字符串)?
编辑-关于Levenshtein距离的一点注释: 我目前正在针对数据库中的10k个字符串。Levenshtein距离逐个比较字符串,因此在这种情况下有10k x (10k -1)种可能的组合。我该如何以可行的方式解决这个问题?是否有比这个特定算法更好的解决方案?
.Distinct()
进行Linq操作,并使用替换进行翻译。但问题在于,并非所有语言都是逐字翻译的。 - Jay