Создать набор существительных и глаголов из n различных описаний, перечислить описания, соответствующие существительному и глаголу
Я новичок в НЛП, у меня есть имя приложения столбцов и его описание. Данные выглядят так
app1, description1 (некоторая информация о app1, как это работает)
приложение2, описание2
,
,
приложение (n), описание (n)
Из этих описаний мне нужно создать ограниченный набор существительных и глаголов. В последнем приложении, когда мы соединяем существительное и глагол из этого списка, вывод должен быть из списка приложений, которые удовлетворяют этому существительному + глаголу. Я не имею ни малейшего представления, с чего начать, подскажите, пожалуйста, с чего начать. Спасибо.
1 ответ
Задача поиска морфосинтаксической категории слов в предложении называется тегом части речи (или PoS). В вашем случае вам, вероятно, также необходимо сначала токенизировать ваш текст.
Для этого вы можете использовать nltk, spacy или тег Stanford NLP (среди прочих инструментов).
Обратите внимание, что в зависимости от используемой вами модели, могут существовать несколько ярлыков для существительных (существительные в единственном числе, существительные во множественном числе, собственные существительные) и глаголов (в зависимости от времени и лица).
Пример с NLTK:
import nltk
description = "This description describes apps with words."
tokenized_description = nltk.word_tokenize(description)
tagged_description = nltk.pos_tag(tokenized_description)
#tagged_description:
# [('This', 'DT'), ('description', 'NN'), ('describes', 'VBZ'), ('apps', 'RP'), ('with', 'IN'), ('words', 'NNS'), ('.', '.')]
# map the tags to a smaller set of tags
universal_tags_description = [(word, nltk.map_tag("wsj", "universal", tag)) for word, tag in tagged_description]
# universal_tags_description:
# [('This', 'DET'), ('description', 'NOUN'), ('describes', 'VERB'), ('apps', 'PRT'), ('with', 'ADP'), ('words', 'NOUN'), ('.', '.')]
filtered = [(word, tag) for word, tag in universal_tags_description if tag in {'NOUN', 'VERB'}]
# filtered:
# [('description', 'NOUN'), ('describes', 'VERB'), ('words', 'NOUN')]