1

我一直在摸索,试图找到一种方法来解决这个问题,而不必进入 NLP 并开始训练模型。我有 2 个相当大的数据集,应该可以按名称进行匹配,但它们的拼写和语法略有不同,很容易让人理解,但又足够复杂,以至于我的模糊匹配和 levenshtein 编辑距离不能。数据集中有大量重复项,但我无法手动映射它们就足够了,所以我试图围绕要匹配的内容创建“规则”。像 FuzzyWuzzy 这样的包是否允许更多定制元素来解决这个问题?下面的例子,谢谢!

a <- c("The City of New York", "The City of New York", "Los Angeles City", "The State of California", "The State of California")

b <- c("New York City", "New York City", "Los Angeles", "California State", "CA State") 

到目前为止,我在匹配数据集方面得到的最接近的是模糊字符串匹配,但这只能很好地工作,并且随着我增加最大编辑距离,仍然会遗漏一大块或产生相当多的错误。

library(fuzzyjoin)

a <- as.tibble(a)
b <- as.tibble(b)
stringdist_inner_join(x = a, y = b, max_dist = 3, method = 'LV', ignore_case = T)

数据集比这更深入。我希望制定某种“规则”,即“纽约市”始终等于“纽约市”,但我不确定是否有更聪明的方法来解决这个问题。我希望这个特定的文本示例有所帮助。非常感谢!

4

0 回答 0