4

私はfuzzywuzzy文のリストで一致を見つけるためにPythonを使用しています:

def getMatches(needle):
     return process.extract(needle, bookSentences, scorer=fuzz.token_sort_ratio, limit=3)

一致とその周りの文を印刷しようとしています:

for match in matches:
     matchIndex = bookSentences.index(match)
     sentenceIndices = range(matchIndex-2,matchIndex+2)
     for index in sentenceIndices:
         print bookSentences[index],
     print '\n\n'

残念ながら、スクリプトは元のリストで一致を見つけることができません。

ValueError: (u'したがって、上記の 2 つの目的に加えて、この本は少なくとも 2 つのグループ向けに書かれています: 1.', 59) はリストにありません

元のリストで一致のインデックスを見つけるより良い方法はありますか? どのように私にそれを与えることができますfuzzywuzzyか?それについてのreadmeには何もないようです。

によって返された一致の元のリストでインデックスを取得するにはどうすればよいfuzzywuzzyですか?

4

1 に答える 1

3

私は少しばかげているように感じます。fuzzywuzzyマッチだけでなく、スコアを含むタプルを返します。ソリューション:

for match in matches:
     matchIndex = bookSentences.index(match[0])
     sentenceIndices = range(matchIndex-2,matchIndex+2)
     for index in sentenceIndices:
         print bookSentences[index],
     print '\n\n'
于 2015-12-02T17:40:19.717 に答える