Категоризация одежды на основе ключевых слов в заголовке - PullRequest
0 голосов
/ 07 января 2020

Я ищу лучший способ категоризации предметов на основе ключевых слов, которые могут быть найдены в заголовке веб-сайта, посвященного одежде, пожалуйста.

Категории будут полами предмета одежды, поэтому женские, мужские, мальчики, девочки. Тем не менее, в зависимости от элемента, заголовки могут содержать разные ключевые слова, такие как «женский», «женский», «женский», «женский» и т. Д.

Мои мысли состоят в том, чтобы поместить ключевые слова в список а затем циклически перебирайте список в поисках совпадения и затем соответственно классифицируйте.

Если я буду следовать этому методу, возможно ли сделать это со списком в списке и циклически просмотреть его, чтобы мы могли получить:

gender = ['woman', [#keywords for females clothes], 'men', [#keywords for men's clothes]] 

Затем переберите это, и если мы найдем совпадение, отметьте его соответствующим образом. В качестве альтернативы может быть лучше использовать словарь, указав в качестве ключа категорию, а затем список соответствующих ключевых слов.

Или может быть совершенно другое решение, которое я полностью пропустил. Я чувствую, что есть довольно простое решение для этого, но по какой-то причине я не могу разобраться с этим. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 07 января 2020

Попробуйте это:

import pandas as pd
d = {'men': ['men', 'boy'], 'women': ['women', 'girl', 'lady']}

def classify(text):
    gender = 'None of any'
    for i in d:
        if any(j in text for j in d[i]):
            gender = i
    return gender

df = pd.DataFrame({'text':['this is a boy', 'a girl']})
df['cat'] = df['text'].apply(lambda x: classify(x))
print(df)
0 голосов
/ 07 января 2020

Вы можете использовать flashtext для извлечения ключевого слова из заданной строки

 from flashtext import KeywordProcessor
 kp = KeywordProcessor()
 dict_= {'sport': ['cricket','football'],'movie' : ['horror', 'drama']} # here you can add list of word for men and woman

 kp.add_keywords_from_dict(dict_)

 # now you can extract keyword from a given string
 kp.extract_keywords('I love playing football')
 #op
 ['sport']

 kp.extract_keywords("some people don't like to watch drama and horror movie, but love to watch cricket")
 #op
 ['movie', 'movie', 'sport']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...