Python 根据词类分类的单词生成有意义的句子
我正在从事自然语言生成项目。 我从段落中创造了一大堆单词,如名词、动词、形容词等 我试图生成主语+动词+宾语的句型。Python 根据词类分类的单词生成有意义的句子,python,nlp,nlg,Python,Nlp,Nlg,我正在从事自然语言生成项目。 我从段落中创造了一大堆单词,如名词、动词、形容词等 我试图生成主语+动词+宾语的句型。 示例: 名词:伊丽莎白,狗,埃菲尔铁塔,自行车 动词:唱歌、吠叫、发光 目前的输出:伊丽莎白发光,埃菲尔铁塔吠叫,自行车唱歌…等 预期配对:伊丽莎白唱歌,狗吠,埃菲尔铁塔发光,自行车发光 主语和动词之间必须有一种关系,这种关系将产生一个有意义的句子。有没有办法在名词和可能的动词之间建立关系,从而生成主语+动词模式 还有,如果我们有动词,那么使用输入语料库找到可能的对象来生成新
示例:
- 名词:伊丽莎白,狗,埃菲尔铁塔,自行车
- 动词:唱歌、吠叫、发光
- 目前的输出:伊丽莎白发光,埃菲尔铁塔吠叫,自行车唱歌…等
- 预期配对:伊丽莎白唱歌,狗吠,埃菲尔铁塔发光,自行车发光
示例:
- 动词:骑马,读书
- 物品:马、自行车、书、小说
- 预期配对:骑马、骑自行车、读书、读小说
- 让我们这样想。有些行为,比如吠叫和唱歌,只有有生命的生物才能完成,比如自行车,
没有生命的物体,不能唱歌。此外,吠叫是由动物完成的,也就是说,人类不可能是进行吠叫行为的人。
因此,让我们为每个成分定义某些特征。例如:
eli = {'CAT': 'N', 'ORTH': 'Elizabeth', 'FEAT':'human'}
dog = {'CAT': 'N', 'ORTH': 'dog', 'FEAT':'animal'}
eiffel = {'CAT': 'N', 'ORTH': 'Eiffel Tower', 'FEAT':'inanimate'}
bike = {'CAT': 'N', 'ORTH': 'Bike', 'FEAT':'inanimate'}
nouns = [eli, dog, eiffel, bike]
sings = {'CAT': 'V', 'ORTH': 'sings', 'FEAT':'human'}
barks = {'CAT': 'V', 'ORTH': 'barks', 'FEAT':'animal'}
shines = {'CAT': 'V', 'ORTH': 'shines', 'FEAT':'inanimate'}
verbs = [sings, barks, shines]
# Our sentence pattern is: noun + verb + noun
for n in nouns:
for v in verbs:
if n['FEAT'] == v['FEAT']:
print('{} {}'.format(n['ORTH'], v['ORTH']))
运行此操作时,您会得到:
>>>
Elizabeth sings
dog barks
Eiffel Tower shines
Bike shines
>>>
动词与适当的宾语搭配也是如此。您只需为您的配对指定适当的特征即可 参见Nate Chambers名下的作品集。他做你想做的事 也可能是相关的