Python мягкая функция tf-idf - PullRequest
1 голос
/ 23 января 2020

Я ищу мягкую библиотеку 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"])

Любая помощь в этом отношении будет очень признательна.

...