powerbi基于包含在一系列多个单词中的单词创建自动分类

2024-05-16 01:35:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个自由职业者,将能够建立一个功能,为我做以下使用xxx表达式,我已经放在一起(在这种情况下520+字,包括一些与*和/或?对于拼写错误/强调或不强调版本检查): a) 获取单词列表并搜索它们是否在xx-xxx单词列表中找到(在本例中为25000); b) 如果找到,在一列中添加与其关联的类别,在第二列中添加与其关联的子类别

例如:

KW to be looked for Category associated Sub Category associated
big*cof*e*caf?          Marque                  CSC
ban*cof*e*caf?          Marque                  CSC
big*bang**caf?          Marque                  CSC
chacun*caf              Marque                  CSC
malongo                 Marque                  Malongo
maxicoffee              Marque                  Maxi coffee
maxi coffee             Marque                  Maxi coffee
direct caf          Marque                  Direct
fabricant*caf           Marque                  Fabricant

这些KW可能是的表达式示例:

a chacun son café
a chacun son cafe
chacunsoncafe
chacunsoncafé
site café
site de café
a chacun son café
achat café
vente café en ligne
café en ligne
vente café
café. fr
cafe en ligne
achat café en ligne
a chacun son cafe
achat café
cafe
a chacun son cafe
vente de café
achat cafe
...

在本例中,以下KW将匹配:

a chacun son café   Marque CSC
a chacun son cafe   Marque CSC
chacunsoncafe           Marque CSC
chacunsoncafé           Marque CSC
site café
site de café
a chacun son café   Marque CSC
achat café
vente café en ligne
café en ligne
vente café
café. fr
cafe en ligne
achat café en ligne
a chacun son cafe   Marque CSC
achat café
cafe
a chacun son cafe   Marque CSC
vente de café
achat cafe

我通过以下代码找到了一种方法:

Segment = SWITCH(TRUE();
//Marque
    AND(SEARCH("big*cof*e";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;SEARCH("caf?";'tous les MCs de GSC (SB)'[Keyword];1;0)=0);"Sites";
    AND(SEARCH("ban*cof*e";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;SEARCH("caf?";'tous les MCs de GSC (SB)'[Keyword];1;0)=0);"Sites";
    AND(SEARCH("big*bang*";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;SEARCH("caf?";'tous les MCs de GSC (SB)'[Keyword];1;0)=0);"Sites";
    SEARCH("chacun*caf";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";
    SEARCH("malongo";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";
    SEARCH("maxicoffee";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";
    SEARCH("maxi coffee";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";
    SEARCH("direct caf";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";
    SEARCH("fabricant*caf";'tous les MCs de GSC (SB)'[Keyword];1;0)>0;"Sites";

.....
    "Autre"

)

有问题吗?完美地工作到500个这样的条目(包括和/左和右以及搜索)-但是PowerBI现在系统性地崩溃了(我现在有534+个这样的测试)

必须有更好/更优雅的方法来实现这一点,方法是创建此类单词的列表,并让PowerBI使用它们来搜索这些单词,就像我使用Excel的以下函数所做的那样:

={INDEX(Result_text;MATCH(TRUE;ISNUMBER(SEARCH(searches_text;B2));0))}

其中“searches\u text”相当于上面的“KW to be looked for”,B2数组的表达式是尝试从中查找文本,而“Result\u text”是用于分类的偏移列

我在网上看到了以下内容https://community.powerbi.com/t5/Desktop/Data-categorization-and-labeling-based-on-a-criteria-list/m-p/208226#M91789

MatchFound= 
FIRSTNONBLANK(
FILTER(
values('Keyword Table'[Narrative Contains]),
search('Keyword Table'[Narrative Contains],'Transaction list'[Narrative],1,0)
)
,1)

以及

category = 
LOOKUPVALUE(
'Keyword Table'[Category],'Keyword Table'[Narrative Contains],'Transaction list'[MatchFound]
)

但我只得到相同的结果(列表中的第一个)。。。所以要么它不好,要么我做得不对!:)

你知道吗?非常感谢


Tags: searchcafedekeywordsitessblesmcs