Я ищу мягкую библиотеку tf / idf. В настоящее время я использую функцию tfidf из sklearn для своей программы. Функция TfIdfVectorizer
в этой библиотеке выполняет строгое соответствие, как также указано в их документах, т.е. analyzer == 'word'
. Здесь я хочу включить функцию сопоставления расстояний, такую как редактирование расстояния или jaro, чтобы выполнить мягкое сопоставление, где
if distance >= 0.8:
analyzer == word
Я искал существующие библиотеки в python для этого. Я нашел эту библиотеку , но не смог установить ее, соответствующую всем требованиям. Есть ли в них больше библиотек, которые можно напрямую использовать.
Я пытался самостоятельно изменить функцию, но не уверен, что после сопоставления расстояний я могу снова передать данные в fit_transform
?
def string_match(tokens):
for i in range(0, len(tokens)):
s1 = tokens[i]
s2 = tokens[i+1]
jw = distance.get_jaro_distance(s1, s2, winkler=True, scaling=0.1)
if jw >= 0.80:
return ??
tfidf = TfidfVectorizer(ngram_range=(1,1), tokenizer=dummy, preprocessor=dummy, use_idf=True, analyzer=string_match)
tfs = tfidf.fit_transform(data["tokens"])
Любая помощь в этом отношении будет очень признательна.