Python中的字符串相似性

2024-05-20 17:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试比较Python中的字符串。我的字符串包含标题,标题可以通过多种不同的方式进行组织:

'Title'
'Title: Subtitle'
'Title - Subtitle'
'Title, Subtitle'
'Title Subtitle'

是否可以在Python中进行相似性比较,以便确定match('Title: Subtitle', 'Title - Subtitle') = True?(或者不管它是怎样建造的)

基本上,我想确定他们是不是同一个标题,即使分裂是不同的。

if 'Title: Subtitle' == 'Title - Subtitle':
    match = 'True'
else:
    match = 'False'

也有一些可能存储为The Title: The SubtitleTitle, The: Subtitle, The,尽管我认为这可能会增加一些复杂性,我可能可以通过重建字符串来解决。


Tags: the字符串falsetrue标题iftitlematch
3条回答

您所要做的已经在jellyfish包中得到了很好的实现。

>>> import jellyfish
>>> jellyfish.levenshtein_distance('jellyfish', 'smellyfish')
2

您可以使用in关键字。这不是一个相似性比较,而是做你想做的:

s = "Title: Subtitle"

if "Title" in s or "Subtitle" in s:
    match = 'True'
else:
    match = 'False'

标准库的difflib模块提供了一个函数^{},该函数执行模糊字符串匹配。

>>> import difflib
>>> difflib.get_close_matches('python', ['snakes', 'thon.py', 'pythin'])
['pythin', 'thon.py']  # ordered by similarity score

相关问题 更多 >