我有一个电影列表。
eg:
Iron Man - 2008
Iron Man 2 - 2010
Iron Man 3 - 2013
Shawshank Redemption - 2000
我想基于关键字实现搜索算法。如果我进入Iron,所有3部钢铁侠电影都应该出现。钢铁侠2010年,只有钢铁侠2应该进入结果。
我考虑过TF-IDF,但它并没有考虑到单词的顺序。即,如果有电影Man Iron
,即使输入的关键字为Iron Man
,它也会与Iron Man
具有相同的排名。
哪种算法在这种情况下效果最好,还考虑了遮挡词的顺序?
答案 0 :(得分:0)
使用正则表达式。 用空格打破所有搜索结果
#algo
movie_list = ['Iron man 2008', 'Iron man 2010','Iron man 2013']
partial_results = {}
i=0
movie = "Iron man 2010"
words = movie.split(" ")
for a_movie in movie_list:
print_unique_movie = true
for each_word in words:
if each_word in a_movie:
partial_results[i] = a_movie
continue
else
print_unique_movie = false
i +=1
if print_movie:
print a_movie
else:
for key,value in partial_results.iteritems():
print value
虽然这肯定是一种非常基本的方式。您可以使用正则表达式开始优化。此外,如果它在操作系统级别上,您可以使用文件索引。