python НЛП определить текстовые шаблоны из описания продукта - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть много описаний продуктов в виде текста от моего поставщика. Вкратце, я могу определить некоторые шаблоны в описании продукта, такие как:

This product is red.
This product is yellow.
The product is made out of steel.
The product is made out of plastic.
The product is made out of glass.

Моя задача - извлечь шаблоны из текста. Результат будет:

This product is [color].
The product is made out of [product_material].

Я попробовал ручной подход к нему: сначала я очистил данные и разделил их на предложения, а затем:

    def remove(list1, pos):
        newlist = []

        # traverse in the list
        for x in range(len(list1)):

            # if index not equal to pos
            if x != pos:
                newlist.append(list1[x])
        return(newlist)

#lines variable is a list of sentences from product descriptions
    for l_tokenized in enumerate(lines):
        for element_first_arr in range(0, len(l_tokenized)):
            first_arr_tmp = l_tokenized
            deleted_element_first_arr_tmp = remove(first_arr_tmp,element_first_arr)
            for line_to_compare_with in enumerate(lines):
                for element_second_arr in range(0, len(line_to_compare_with)):
                    second_arr_tmp = line_to_compare_with
                    del_element_second_array = remove(second_arr_tmp, element_second_arr)
                    if first_arr_tmp == del_element_second_array:
                        print(first_arr_tmp)
                        print(del_element_second_array)

Это дает желаемый результат, но невозможно выполнить его по всем описаниям, поскольку 1 такой l oop занимает ~ 15 минут, а их тысячи.

Есть ли лучший подход?

...