FuzzyWuzzy 错误:警告:根:应用处理器将输入查询减少为空字符串,所有比较的分数将为 0。[查询:'/']

Hof*_*fbr 10 python fuzzy-comparison python-3.x fuzzywuzzy

尝试编写一个代码来比较多个文件并返回多个选项之间的最高模糊比。

问题是我收到一条错误消息:

警告:根:应用处理器将输入查询减少为空字符串,所有比较得分为 0。[查询:'/'] 警告:根:应用处理器将输入查询减少为空字符串,所有比较得分为 0。[查询: '.']

而且导出的文件基本上是空白的。知道为什么会发生这种情况吗?

from fuzzywuzzy import fuzz, process
import csv

def readfile( filen ):
    with open(filen,'r') as f:
        contents = f.readlines()
    return contents

def write_fuzzy( fileo, file1, file2 ):
    matches=[]
    for  item1 in file1:
        matches.append(process.extract( str(item1), file2, limit=2 )[0][0])
    with open( fileo, 'w' ) as f:
        w = csv.writer( f, delimiter = ',' )
        w.writerows( matches )

filenames = ['Documents/test_CSV_1.csv',\
             'Documents/test_CSV_2.csv']

 file_contents = []
 for filen in filenames: 
    file_contents.append( readfile( filen ) )

write_fuzzy( 'out.csv', filenames[0], filenames[1] )
Run Code Online (Sandbox Code Playgroud)

小智 10

抱歉回复晚了。我面临着类似的问题并发现了你的问题。

这个问题并不是真正的问题,它只是一个警告,实际上不会导致您的比赛出现任何差异。

WARNING:root:Applied processor reduces input query to empty string, all comparisons will have score 0. [Query: '/']
Run Code Online (Sandbox Code Playgroud)

意味着查询字符串process.extract()不包含任何自然语言的常见字符:[Query: '/']

在深入研究 fuzzywuzzy 后,我发现一个字符串处理器 reduces input query to empty string,它不会与您提供的搜索文本中的任何模式匹配。

我消除这些警告的方法是在进行模糊搜索之前使用该字符串处理器验证查询字符串。

from fuzzywuzzy import utils

invalid_query = " ... // "

if utils.full_process(invalid_query):
    # wont execute and not produce a warning
    process.extract(invalid_query, patterns)
Run Code Online (Sandbox Code Playgroud)