我们有一份与文档列表相关的关键字列表。该列表是根据文档文本中单词的频率计数创建的。我们试图根据关键字是否出现在文档名称中来为其添加权重。例如,如果我们有一个名为 的文档Agency_Solutions.doc
,那么关键字agency
在列表中的排序将高于telephone
。
事情变得更加复杂的是,根据计数,每篇文档的热门关键词都是the
、a
、 。当然,所有这些都需要排除;我设置了一个包含 171 个“常用”单词的列,以供排除。an
VLOOKUP
这是我的问题:如果我MATCH(WORD,TITLE,0)
,Agency
不等于Agency_Solutions
(或Agency Solutions
;我曾经SUBSTITUTE
创建过所有标题的“干净”版本)并且没有加权。如果我SEARCH(WORD,TITLE)
加权,a
因为a
出现在 中Agency_Solutions
。在这种情况下FIND
将返回与 相同的结果SEARCH
。摇滚。困难的地方。
我尝试了几种方法,但始终无法将关键字识别为文档名称中的独立子字符串。有什么想法吗?
编辑:这是一些数据
排除列表(粘贴至 A 栏)
a
an
is
the
what
when
who
文档、关键字、计数(B、C 和 D 列)
Keyboard_and_mouse_problems.txt the 15
Keyboard_and_mouse_problems.txt an 15
Keyboard_and_mouse_problems.txt a 14
Keyboard_and_mouse_problems.txt when 12
Keyboard_and_mouse_problems.txt system 8
Keyboard_and_mouse_problems.txt keyboard 8
Keyboard_and_mouse_problems.txt mouse 8
Keyboard_and_mouse_problems.txt when 9
Keyboard_and_mouse_problems.txt what 9
Keyboard_and_mouse_problems.txt who 8
Keyboard_and_mouse_problems.txt is 8
Keyboard_and_mouse_problems.txt phone 6
Keyboard_and_mouse_problems.txt help 6
Keyboard_and_mouse_problems.txt desk 5
Keyboard_and_mouse_problems.txt cable 4
Keyboard_and_mouse_problems.txt jack 4
Agency_Solutions.txt X 2
Agency_Solutions.txt c 1
Agency_Solutions.txt on 1
然后,我的公式:
Col E =IFERROR(VLOOKUP(C2,$A$2:$A$225,1,0),"notFound") Is this in the exclusion list?
Col F =IFERROR(VLOOKUP(C2,$A$2:$A$225,1,0),"") Exclude this word
Col G =IF(F2=C2,0,C2) Include this word
Col H =IF(ISNUMBER(SEARCH(C2,B2)),100,0) Title Weight
Col I =IF(G2=0,0,D2+H2) Weighted Keywords
Col J =IF(AND(H2=100,G2=0),"BAD","OK") OK or Bad calculations
答案1
如果单词之间只有空格,则可以搜索两侧带有空格的单词,以避免部分匹配,例如
=ISNUMBER(SEARCH(" "&WORD&" "," "&TITLE&" "))
....尽管如果 TITLE 中有 _ 或 . 这样的标点符号,那么这种方法就行不通了.....但是你可以使用任意数量的SUBSTITUTE
函数来替换带有空格的标点符号,就像这样
=ISNUMBER(SEARCH(" "&WORD&" "," "&SUBSTITUTE(SUBSTITUTE(TITLE,"_"," "),"."," ")&" "))
答案2
您应该尝试VLOOKUP
使用通配符,例如,如果我们apple
在中有A1
,=VLOOKUP("*"&A1&"*";B:C;2;0)
则将匹配任何具有的字符串,apple
无论其位置如何。有关更多信息,请参阅我的其他答案:https://superuser.com/a/552742/187330
提示:为避免区分大小写,请使用LOWER
函数进行比较。