从被分类为每个词性的单词生成有意义的句子

时间:2016-04-28 10:35:10

标签: python nlp nlg

我正在从事自然语言生成项目。 我已经从段落中创建了一些单词,如名词,动词,形容词等 我试图生成模式主题+动词+对象的句子。
实施例:

  • 名词:伊丽莎白,狗,艾菲尔铁塔,自行车
  • 动词:唱歌,吠叫,闪耀
  • 目前的输出:伊丽莎白闪耀,艾菲尔铁塔吠声,自行车唱歌等等。
  • 预期配对:伊丽莎白唱歌,狗吠,艾菲尔铁塔闪耀,自行车闪耀

主语和动词必须有一个关系才能创造出有意义的句子。有没有办法建立名词和可能的动词之间的关系来产生主语+动词模式?

此外,如果我们有动词然后使用输入语料库找到可能的对象来生成新的有意义的句子?
实施例:

  • 动词:骑马,阅读
  • 物件:马,自行车,书籍,小说。
  • 预期配对:骑马,骑自行车,看书,读小说。

2 个答案:

答案 0 :(得分:2)

让我们这样思考吧。有些像吠叫和唱歌的行为只能通过有生命的生物来完成,因此是一辆自行车, 一个无生命的物体,不能唱歌。另外,吠叫是由动物完成的,即人不能是做吠叫的人。 因此,让我们为每个成员定义某些特征。例如:

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
>>>

将动词与合适的对象配对也是如此。您只需为配对分配适当的功能即可。

答案 1 :(得分:0)

Nate Chambers查看名为"narrative schemas"的作品集。他做你想做的。

This也可能相关。