0

私はいくつかの行からなるリストを持っています。最高のファジー率で「良い」という単語に一致する行を出力したいと思います。

問題:リスト内の行の代わりに唯一の印刷単語

コーディング:

from fuzzywuzzy import fuzz
c = ['I am python', 'python is good', 'Everyone are humans']
print(max(c, key=lambda a: fuzz.ratio(a, 'good')))

期待される出力:

python is good

リストから最高の fuzzyvalue の行ではなく、1 つの単語を取得します。私のコードを修正するのを手伝ってください! 回答をお待ちしております。

4

2 に答える 2

0

あなたのコードは問題ないようです。c配列が正しく初期化されておらず、文ではなく単語が含まれている可能性があります。コードは次のようになります。

from fuzzywuzzy import fuzz

c = ['I am python', 'python is good', 'Everyone are humans']
print(max(c, key=lambda a: fuzz.ratio(a, 'good')))
于 2014-08-16T18:05:34.897 に答える
0
from fuzzywuzzy import fuzz

c = ['I am python', 'python is good', 'Everyone are humans']
l = [(i,fuzz.ratio(i,'good')) for i in c]
l.sort(key=lambda a: a[1], reverse=True)
于 2014-08-16T18:11:24.400 に答える