从n个不同的描述生成一组名词和动词,列出与名词和动词匹配的描述

时间:2018-05-07 00:40:36

标签: tensorflow machine-learning nlp deep-learning nltk

我是NLP的新手,我有列应用名称及其描述。数据看起来像这样 app1,description1(app1的一些信息,工作原理)
app2,description2


app(n),description(n)
根据这些描述,我需要生成一组有限的名词和动词。在最终的应用程序中,当我们从该列表中对名词和动词进行配对时,输出应该是满足该名词+动词的应用程序列表。 我不知道从哪里开始,你能指导我从哪里开始。谢谢。

1 个答案:

答案 0 :(得分:0)

在句子中查找词语的形态句法类别的任务称为词性(或PoS)标记。 在您的情况下,您可能还需要首先对文本进行标记化。

为此,您可以使用nltkspacyStanford NLP tagger(以及其他工具)。

请注意,根据您使用的型号,名词可以有多个标签(单数名词,复数名词,专有名词)和动词(取决于时态和人物)。

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')]