使用Python从字符串列表中提取特定单词

时间:2018-01-30 11:55:35

标签: python string extract

我想我是新手python程序员。

如果在python中给出任何列表/数组,我想只提取相关的关键字。

Ex:仅提取字符串列表中与食物相关的单词 例如,用户可以输入列表。

[0] I want to buy some apple.
[1] Oranges are good for the health.
[2] I bought 2 blueberries yesterday.
[3] John is eating some grapes.
[4] My crush did not like me back.

预期输出为:

[0] apple
[1] oranges
[2] blueberries
[3] grapes
[4] None

如果有人能指出我如何能够实现这样的目标,我将不胜感激。我仍然是编程的新手,并且最近发现了如何提取单词但如果我有一份分类食物列表供参考。我可以比较和提取Yaayyy !! :D但假设用户可以输入他/她想要的任何项目,我将如何为此寻求解决方案?复制全世界的所有食物并将其存放在清单中以供参考是否切实可行?我一直在寻找解决方案。也许我可能因某些原因错过了它。如果任何人都可以指向一个链接或主题,如果这是重复的话会很棒!

请大家好评,感谢StackOverFlow中的所有人真的帮了我很多忙! :)

2 个答案:

答案 0 :(得分:0)

这是一种方法,它将处理一般算法而不是单数/复数特定食物的问题。

导入字符串

lst = ['I want to buy some apple.',
       'Oranges are good for the health.',
       'I bought 2 blueberries yesterday.',
       'John is eating some grapes.',
       'My crush did not like me back.']

foods = {'apple', 'oranges', 'blueberries', 'grapes'}

translation = str.maketrans('', '', string.punctuation)
lst2 = [set(i.translate(translation).lower().split(' ')) & foods for i in lst]

# [{'apple'}, {'oranges'}, {'blueberries'}, {'grapes'}, set()]

答案 1 :(得分:0)

基本上,没有你可以使用的神奇工具。您需要自己生成单词列表。我建议你查看nltk library。它可以帮助你正确地提取单词和句子。然后你应该分别检查每个单词(如if my_word in my_food_list: blablabla....)。

您还可以查看this similar question