Google bigquery 如何检查BigQuery中输入多个单词的两个表的字符串相似性

Google bigquery 如何检查BigQuery中输入多个单词的两个表的字符串相似性,google-bigquery,bigquery-udf,Google Bigquery,Bigquery Udf,我有两个表,其中包含公司名称列表。第一个是索引表,因此里面的值是干净的,格式是一致的。第二个表包含用户输入的公司信息,因此可能存在打字错误和格式不一致 第一个(索引表)与此类似: company_name | industry Apple Inc Technology Amazon Inc Retail K

我有两个表,其中包含公司名称列表。第一个是索引表,因此里面的值是干净的,格式是一致的。第二个表包含用户输入的公司信息,因此可能存在打字错误和格式不一致

第一个(索引表)与此类似:

company_name                         |      industry
Apple Inc                                   Technology
Amazon Inc                                  Retail
Kraft Heinz                                 Food Processing
New York Life Insurance Company             Insurance
Tesla Inc                                   Tesla
Walmart Inc                                 Retail
第二个表(用户输入表)与此类似

company_name
Apple
Apple Inc.
Amazon, Inc
Kraft
New York Life
Tsla
Walmart
请注意,第二个表没有
行业
列,因为主要目标是将
行业
列添加到第二个表中,但由于没有键,我们不能简单地将两个表连接起来

我认为第一步是比较
公司名称
之间的相似性,如果相似性足够大,我们可以假设它是相同的

我做了一些研究,我认为我们需要使用Levenshtein距离。老实说,我对该方法不是很熟悉,但由于我的理解有限,我想知道它是否适用于包含多个单词的输入(例如纽约人寿保险公司),还是只适用于一个单词的输入(例如苹果)


任何建议或指导都将不胜感激。

查看本教程第1部分,了解Levenshtein距离,但第4部分将其与令牌、干净和排序方法结合使用,效果非常好。所有这些都可以通过一些UDF功能来实现。作为参考,仅使用
Levenshtein距离
,将
纽约人寿
匹配到
亚马逊公司
,而不是预期的
纽约人寿保险公司
。所以你需要做一些额外的处理,就像上面评论中提到的那样