Привет! Я искала подобную связку в spaCy. Я делала с английским, но у них в третьей версии есть и русская модель, которая основывается на векторах и датасете, разработанных в проекте Наташа. Вот таким образом я искала ингредиенты при помощи Phrase Matcher. Надеюсь, будет полезным.
# List of some common ingredients
ingredients = [
'sauce', 'powder', 'cheese', 'oil', 'juice', 'tomato', 'paste', 'cream',
'onion', 'garlic', 'berry', 'lemon', 'milk', 'egg', 'beef', 'chicken', 'fish', 'meat',
'eggplant', 'potato', 'bean', 'rice'
]
ingredient_match = {
'POS': 'NOUN',
'LEMMA': { 'IN': ingredients }
}
# Entity Patterns
# Just the ingredient
ingredient_pattern = {
'label': 'ING',
'pattern': [ ingredient_match ]
}
# Noun followed by an ingredient
noun_ing_pattern = {
'label': 'ING',
'pattern': [
{
'POS': 'NOUN',
},
ingredient_match
]
}
# Adj followed by an ingredient
adj_ing_pattern = {
'label': 'ING',
'pattern': [
{
'POS': 'ADJ',
},
ingredient_match
]
}
patterns = [ingredient_pattern, noun_ing_pattern, adj_ing_pattern]