如何从没有空格的字符串中提取单词列表

How to extract list of words out of a string with no spaces

我有一个数据集,其中一列包含句子,在某些句子中,单词粘在一起。如果每一行都出现,我想提取这个词。 ingredients_list=['water','milk','yeast','banana','sugar','ananas']。我使用这段代码来提取单词

ingredients_list=['water','milk', 'yeast', 'banana', 'sugar', 'ananas']
path = '|'.join(r"\b{}\b".format(x) for x in ingredients_list)
ing_l = df['ingredients'].str.findall(pat, flags=re.I).str.join(' ')
ing_l= ing_l.replace("","Unknown")

它很好用,但是,它没有从 ingredients_list 中提取单词,如果其中一个单词与另一个单词卡在一起,我的意思是在句子“breadmilkcoffee”中它无法提取其中的“milk”坚持的话。 我问了一个相关的问题来帮助我订购我提取的单词 。 但我没有提取所有的话。 你有办法解决这个问题吗?非常感谢

您正在使用 \b 特殊字符,它断言模式出现在单词边界处。

删除它应该允许您匹配 ingredients_list 中的项目,当它们与字符串的其余部分没有被 space 分隔时。

ingredients_list=['water','milk', 'yeast', 'banana', 'sugar', 'ananas']
path = '|'.join(r"{}".format(x) for x in ingredients_list)
ing_l = df['ingredients'].str.findall(pat, flags=re.I).str.join(' ')
ing_l= ing_l.replace("","Unknown")