gpt4 book ai didi

python - 针对十亿个字符串的前缀搜索

转载 作者:太空狗 更新时间:2023-10-29 18:34:51 30 4
gpt4 key购买 nike

我有一个包含 5 亿个字符串的列表。这些字符串是字母数字、ASCII 字符,大小不一(通常为 2-30 个字符)。此外,它们是单个单词(或没有空格的单词组合,如“helloiamastring”)。

我需要一种快速检查目标的方法,打个招呼。结果应该是 5 亿列表中以“hi”开头的所有字符串(例如,“hithere”、“hihowareyou”等)。这需要快速,因为每次用户键入内容时都会有一个新查询,因此如果他键入“hi”,将显示 5 亿列表中以“hi”开头的所有字符串,如果他键入“hey”,所有以“hey”开头的字符串都会显示等等。

我尝试过 Tries 算法,但存储 3 亿个字符串的内存占用量实在是太大了。它应该需要我 100GB+ 内存。而且我很确定这个列表会增长到十亿。

这个用例的快速算法是什么?

附言如果没有快速选项,最好的选择是限制人们在结果显示之前至少输入 4 个字符。那么有没有快速检索结果的方法呢?

最佳答案

你想要一个 Directed Acyclic Word Graph或DAWG。这概括了@greybeard 使用词干提取的建议。

例如,参见 this 的第 3.2 节中的讨论。 .

关于python - 针对十亿个字符串的前缀搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41664257/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com