Найти Jaccard Сходство строк списка, одной из которых является строка данных Pandas - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу найти сходство между двумя списками строк. Один из списков представляет собой список предложений, а другой создается путем разбиения текста в столбце pandas.

Первый список довольно маленький, но столбец pandas большой. Как отмечается в этом ответе { ссылка }, циклический просмотр будет медленным, я использовал понимание списка. Я ищу способы еще более оптимизировать его.

def jaccard_similarity(list1, list2):
    s1 = set(list1)
    s2 = set(list2)
    return len(s1.intersection(s2)) / len(s1.union(s2))
def check_product(keyprase_list, min_similarity=0.3):
    found_products = []
    data = pd.read_csv("./data/flipkart_processed.csv", usecols=["product_name"])
    for phrase in keyprase_list:
        words = phrase.split(" ")
        scores = [
            True
            for y in data["product_name"].str.split(" ")
            if jaccard_similarity(words, y) > min_similarity
        ]
        if len(scores) > 0:
            found_products.append(phrase)
    return found_products

В частности, это раздел, который я хочу оптимизировать sh.

        scores = [
            True
            for y in data["product_name"].str.split(" ")
            if jaccard_similarity(words, y) > min_similarity
        ]
        if len(scores) > 0:
            found_products.append(phrase)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...