我有很多单词(大约10,000个),我需要确定这些单词中是否有一个出现在给定的文本块中。
是否有比在文本块中对每个单词进行简单文本搜索更快的算法?
将10,000个单词输入到哈希表中,然后检查文本块中的每个单词(如果其哈希值都有条目)。
尽管我不知道,但是更快,只是另一种方法(取决于您搜索的单词数)。
简单的perl示例:
my $word_block = "the guy went afk after being popped by a brownrabbit"; my %hash = (); my @words = split /\s/, $word_block; while(<DATA>) { chomp; $hash{$_} = 1; } foreach $word (@words) { print "found word: $word\n" if exists $hash{$word}; } __DATA__ afk lol brownrabbit popped garbage trash sitdown