gpt4 book ai didi

python - 获取两个字符串之间添加和删除的单词

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:01 25 4
gpt4 key购买 nike

给定两个字符串,我希望能够在 Python 中确定在两者之间添加了哪些单词以及删除了哪些单词。我见过 difflib,但显然它做不到。

例如:给定“你好我的名字是”和“你好我的家伙是”,它将返回 ['guys'] 作为添加的单词,并返回 ['name'] 作为删除的单词。非常感谢。

编辑:可能我给出的例子不是最好的。当前文本和新文本之间也应该没有空格。也许使用 difflib 来获取所有新部分,然后用正则表达式“\b”进行分割。我会尝试一下。

最佳答案

关于Python,首先要记住的是它“自带电池”。这意味着您应该在自己重新发明之前在标准库中查找可以完成您需要的工具。

更强大的技术是重用 difflib.SequenceMatcher寻找字符串中的差异。示例:

import difflib

before = 'hello my name is'
after = 'hello my guys is'

def isjunk(string):
"Return True if we don't care about this string"
return string == ' '


s = difflib.SequenceMatcher(isjunk)
s.set_seqs(before, after)

for (
opcode,
before_start, before_end,
after_start, after_end
) in s.get_opcodes():
if opcode == 'equal':
# We don't care.
continue

print "%7s '%s' -> '%s'" % (
opcode,
before[before_start:before_end],
after[after_start:after_end],
)

这会产生以下输出,显然可以对其进行自定义以完全满足您的需要:

replace 'name' -> 'guys'

关于python - 获取两个字符串之间添加和删除的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10074638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com