我有超过一百万条数据的聊天记录,格式为
chat_message
city
timestamp
现在,我们需要检查与旅行相关的关键字,例如“旅行”或“住宿”或“酒店”等。假设我们已经收集了大约 15 个与旅行相关的关键字。
要求是使用关键字挖掘与旅行相关的聊天消息。如何?
我能想到的解决方案 - 拥有一系列与旅行相关的关键字。然后扫描每个关键字的所有消息(一些字符串匹配算法)。
我认为解决方案是相当蛮力的,关于更有效的搜索算法或设置聊天记录或/和关键字的更多想法?
我有超过一百万条数据的聊天记录,格式为
chat_message
city
timestamp
现在,我们需要检查与旅行相关的关键字,例如“旅行”或“住宿”或“酒店”等。假设我们已经收集了大约 15 个与旅行相关的关键字。
要求是使用关键字挖掘与旅行相关的聊天消息。如何?
我能想到的解决方案 - 拥有一系列与旅行相关的关键字。然后扫描每个关键字的所有消息(一些字符串匹配算法)。
我认为解决方案是相当蛮力的,关于更有效的搜索算法或设置聊天记录或/和关键字的更多想法?
您的里程可能会有所不同。
如果您的宿主语言是 JavaScript,我建议您使用一些全文搜索引擎,例如lunrjs。它需要对您的原始数据进行预处理,例如标记化、词干提取和索引。然后您可以更方便地搜索数据。
尽管如此,您的数据集仍然很大,至少对于浏览器而言(因为您使用的是 JavaScript)。如果您要在客户端实现这一点,则需要考虑算法以外的许多细节。内存分配,数据传输,不一一列举。
但是,如果您在服务器端,更成熟的解决方案(例如ElasticSearch)值得您考虑。