问题描述
我有一个允许用户发布非结构化关键字的应用程序。 同时,其他用户可以发布必须与一个或多个指定关键字匹配的项目。 两组用户都可以使用的关键字没有任何限制,因此,当现实情况是用户可能对同一事物使用了不同的关键字或者它们足够接近时(例如, “自行车”和“自行车”,或“肉”和“食物”)。
我需要在移动设备(Android)上使用它,因此我很乐意牺牲匹配精度,以提高效率并减少占用空间。 我知道但是它依赖于15MB的后备字典,因此并不理想。
还有哪些其他想法/方法/框架可能会对此有所帮助?
1楼
您可以通过使用Levenshtein编辑距离算法解决“自行车”和“自行车”的示例,因为这两个词有些相关。 但是,除非您将概念集或目标受众限制为美食家,否则您在“肉类”和“食品”方面的示例确实需要大量的支持字典。
您是否考虑过将字典作为Web服务托管,并根据需要访问数据? 当然,缺点是您的应用程序只能在网络覆盖范围内运行。