У меня есть строка homemade green tea powder
и словарь dict = {'green tea': 'FLAVOR', 'banana': 'FLAVOR', 'homemade': 'CLAIM'}
Мой вопрос заключается в том, как я могу сопоставить часть строки с ключами словаря и затем получить соответствующие значения.Для дальнейшего объяснения, «зеленый чай» находится в строке и является одним из ключей в словаре.То же, что и термин homemade
.Я хочу получить такой результат:
[('homemade', 'CLAIM'), ('green tea', 'FLAVOR'), ('powder', 'NOUN')]
Я думаю о том, чтобы учесть смежные слова.Могу ли я сделать отображение Ngram?Если я посмотрю на три, два и одно слово в строке, это будет homemade green tea
, green tea powder
, homemade green
, green tea
, tea powder
, homemade
, green
, tea
powder
.Затем я могу попытаться проверить эти термины ngram, находятся ли они в словарных ключах или нет.
Мой текущий код:
from nltk.tag import pos_tag, map_tag
def get_pos_tup(string):
lst=[]
for word in string.split():
if word in dict.keys():
lst.append((word, dict[word]))
else:
for word, tag in pos_tag(word_tokenize(word)):
lst.append((word, map_tag('en-ptb', 'universal', tag)))
return lst
Мой результат: [('homemade', 'NOUN'), ('green', 'ADJ'), ('tea', 'NOUN'), ('powder', 'NOUN')]