Python 3:智能地搜索文本文件

Ede*_*row 1 python search text python-3.x

我有一个大文本文件(data)具有以下布局:( a|b|c|d|e|f虽然b可以有管道).我用以下代码搜索文本文件:

results = 0
Data_List = []
searchphrase = input("Search: ")
with open('data', 'r', encoding="utf8") as inF:
    for line in inF:
        if searchphrase in line:
            a, *b, c, d, e, f = line.strip().split('|')
            b = '|'.join(b)
            results += 1
            print("\n\n", results, "\n", "A: " + a + "\n", "B: " + b + "\n", "C: " + c + "\n", "D: " + d + "\n", "E: " + e + "\n", "F: " + f + "\n\n")
            Data_List.append(f)
Run Code Online (Sandbox Code Playgroud)

b是一段文本,其中包含用户在上面的代码中实际搜索的标题(例如:) The Lion King.但是,搜索非常具体,只返回确切的结果(换句话说,如果我搜索,The Lion Kingthe lion king不会返回).如何使搜索不那么具体和更通用(想想谷歌搜索)?

Pau*_*ine 5

你可以看看Whoosh.

Whoosh是一个类和函数库,用于索引文本然后搜索索引.它允许您为您的内容开发自定义搜索引擎.例如,如果您正在创建博客软件,则可以使用Whoosh添加搜索功能以允许用户搜索博客条目.

它可以处理:

更多......飞快的是纯Python和Python 3兼容.

不幸的是,模糊搜索与NLP相关联,NLPCS中最复杂的主题之一,所以它并不像使用一些神奇的正则表达技巧那么容易.

NLP很难,期间.这就是为什么谷歌使用Pigeon Cluster对结果进行排名而不是计算机算法(LoL).