微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法检测两个文本是否与同一个品牌有关?

如何解决有没有办法检测两个文本是否与同一个品牌有关?

给定两个文本,例如:“Cocacola”和“Coca-cola”,是否有一种方法可以推广到其他品牌和其他文本,以检测这两个文本是否与同一品牌有关?

现在我有这个简单的代码

def matches_company_name(name1: str,name2: str):
    name1_lower_case = name1.lower()
    name2_lower_case = name2.lower()
    return (
        name1_lower_case in name2_lower_case
        or name2_lower_case in name1_lower_case
    )

我有一些想法要添加到可能的测试中:

  • 制作 POS 标签并比较 ORG
  • 用空格或破折号分隔并检查是否有共同部分。 (也许是一般)
  • 制作某种编辑距离阈值(对于长度差异很大的字符串,可能会失败)

有没有办法实现这一目标?您有什么好的想法(启发式)可以添加到测试中吗?

解决方法

您可以实现上面提到的内容,但作为一个简单的解决方案,您可以像这样在 python 中使用 re 库:

import re
pattern = r'cocacola'
text = 'Coca-colafd   '

tt=text.lower()
s = re.sub(r'[^\w\s\d]','',tt)
# s = re.sub("\d+"," ",tt)
if re.match(pattern,s):
    print("Match and the word is -->>"+  str(s))
else:
    print("No match")

输出将是这样的

匹配并且单词是-->>cocacolafd

正如你所看到的,即使你向单词添加额外的字符,它也会匹配

请注意,您可以通过删除数字、空格和重复器来指定输出,它自己的库并使其更可靠

有关更多信息,您可以查看 doc

例如:这是删除数字的模式:

s = re.sub("\d+",tt) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。