python-3.x 根据标题中的关键字对服装进行分类

hgb9j2n6  于 2023-10-21  发布在  Python
关注(0)|答案(2)|浏览(141)

我正在寻找最好的方式来分类的基础上,可能会在一个服装网站的标题中找到关键字的项目请。
类别将是服装项目的性别,所以妇女,男子,男孩,女孩。然而,根据项目,标题可能包含不同的关键字,如“女性”,“女人”,“女人”,“女士”等。
我的想法是把关键字放进一个列表,然后在列表中循环查找匹配项,然后相应地进行分类。
如果我遵循这个方法,有没有可能在列表中使用列表并循环,所以我们可以有:

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

然后循环,如果我们找到一个匹配,相应地标记它。或者,使用字典可能更好,关键字是类别,然后是相应的关键字列表。
或者,可能有一个完全不同的解决方案,我完全错过了。我觉得有一个很简单的解决办法,但出于某种原因,我似乎不能让我的头周围。先谢了。

ppcbkaq5

ppcbkaq51#

试试这个:

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)
vfwfrxfs

vfwfrxfs2#

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

相关问题