我有:
Rutsch 是为 rutterman 倾斜他的鱼子而设计的
这是来自 Finnegans Wake 的一句话。这本史诗般的谜语书充满了这样的主因,例如“脱掉那顶白帽子”和“小费”,所有这些都会根据你在书中所处的位置变异成听起来相似的词。我想要的只是一种找到这个特定主题的明显出现的方法,IE
[word1] 是为了 [word2] [word-part1] 他的 [word3]
你可以在 Python 中使用正则表达式来做到这一点:
import re
pattern = re.compile(r'(?P<word>.*) is for (?P=word) (?P=word)ing his (?P=word)')
words = pattern.findall(text)
这与您的示例不匹配,但会匹配[word] is for [word] [word-part]ing his [word]
. 加入调味料调味。您可以在 re 模块文档中找到更多详细信息。
import re
# read the book into a variable 'text'
matches = re.findall(r'\w+ is for \w+ \w+ing his \w+', text)
此解决方案适用于您的示例,而不是您的描述:只有第一个字母是头韵:
pairs = re.findall(r'((.)\w* is for \2\w* \2\w*ing his \2\w*)', fin, re.IGNORECASE)
matches = [ p[0] for p in pairs ]
要搜索与您的描述相匹配的案例,只需将 (.) 替换为 (\w+),然后删除 \w* 的所有实例。