我想根据另一列在一列中查找信息。所以我在一列中有一些词,在另一列中有完整的句子。我想知道它是否找到这些句子中的单词。但有时这些词不一样,所以我不能使用SQL like
函数。因此,我认为模糊匹配+某种形式的“喜欢”的数据是这样的功能将是有益的:模糊匹配下一列中同一行的一列中的行
Names Sentences
Airplanes Sarl Airplanes-Sàrl is part of Airplanes-Group Sarl.
Kidco Ltd. 100% ownership of Kidco.Ltd. is the mother company.
Popsi Co. Cola Inc. is 50% share of PopsiCo which is part of LaLo.
数据拥有约2000行这需要一个逻辑找到飞机Sarl公司是否确实在句子或者不是,它也适用于Kidco有限公司,它在句子中是'Kidco.Ltd'。
为简单起见,我不需要在列中搜索所有语句,只需要查找Kidco Ltd.并在数据框的同一行中搜索它。
我已经尝试过在Python与: df.apply(拉姆达S:fuzz.ratio(S [ '名称'],S [ '句']),轴= 1)
但我有很多unicode/ascii错误,所以我放弃了,并且想在R中尝试。 有关如何在R中执行此操作的任何建议?我已经看到Stackoverflow上的答案,它可以模糊匹配列中的所有句子,这与我想要的不同。有什么建议么?
你能向我们提供了答案那模糊匹配的一切? –
因为你的桌子很小,你可以尝试levenshtein距离。说d是距离,n1是col1中的字符数,n2是col2中的字符数。如果名称完全不在句子中,则距离应该更接近n2,如果距离应该是n2-n1。然后你会定义一个截断点,我认为它可能会运行良好。 –