根据标题中的关键字对服装进行分类



我正在寻找根据服装网站标题中可能找到的关键字对项目进行分类的最佳方式。

类别将是服装项目的性别,即女性、男性、男孩、女孩。 但是,根据项目的不同,标题可能包含不同的关键字,例如"女性"、"女性"、"女性"、"女士"等。

我的想法是将关键字放入列表中,然后在列表中循环寻找匹配项,然后进行相应的分类。

但是,如果我遵循此方法,是否可以使用列表中的列表执行此操作并循环浏览它,因此我们可以拥有:

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

然后循环浏览,如果我们找到匹配项,请相应地标记它。 或者,最好使用字典,让键是类别,然后是相应关键字的列表。

或者,可能有一个完全不同的解决方案,我完全错过了。 我觉得有一个非常简单的解决方案,但由于某种原因,我似乎无法理解它。 提前谢谢。

试试这个:

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)

您可以使用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']

最新更新