【问题标题】:Which Keyword search Algorithm?哪个关键字搜索算法?
【发布时间】:2015-12-19 19:26:42
【问题描述】:

我有一个电影列表。

eg:
Iron Man - 2008
Iron Man 2 - 2010
Iron Man 3 - 2013
Shawshank Redemption - 2000

我想实现一个基于关键字的搜索算法。如果我进入 Iron,所有 3 Iron Man 电影都应该出现。钢铁侠 2010,结果应该只有钢铁侠 2。

我考虑过 TF-IDF,但它没有考虑单词的顺序。即,如果有电影Man Iron,即使输入的关键字是Iron Man,它也会与Iron Man具有相同的排名。

哪种算法在这种情况下效果最好,同时考虑出现单词的顺序是什么?

【问题讨论】:

  • 你有没有考虑过使用Trie数据结构和搜索会很简单。仅当搜索输入与输入数据一样正确时。

标签: algorithm search full-text-search


【解决方案1】:

使用正则表达式。 用空格分隔所有搜索结果

 #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

虽然这肯定是一种非常基本的方式。您可以改用正则表达式开始优化。此外,如果它在操作系统级别,您可以使用文件索引。

【讨论】:

    猜你喜欢
    • 2013-03-06
    • 1970-01-01
    • 2015-11-09
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多