【问题标题】:Meaningful sentence generation from words which are classified as per parts of speech根据词性分类的单词生成有意义的句子
【发布时间】:2016-08-23 01:35:48
【问题描述】:

我正在从事自然语言生成项目。 我已经从段落中创建了词袋,例如名词、动词、形容词等 我正在尝试生成模式主语+动词+宾语的句子。
示例:

  • 名词:伊丽莎白,狗,埃菲尔铁塔,自行车
  • 动词:唱歌、吠叫、闪耀
  • 当前输出:伊丽莎白闪耀,埃菲尔铁塔吠叫,自行车唱歌..等
  • 预期配对:伊丽莎白唱歌、狗吠、埃菲尔铁塔闪耀、自行车闪耀

主语和动词必须有关系才能造出有意义的句子。有什么方法可以建立名词和可能动词之间的关系以生成主语+动词模式?

另外,如果我们有动词,那么使用输入语料库找到可能的对象来生成新的有意义的句子?
示例:

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

【问题讨论】:

    标签: python nlp nlg


    【解决方案1】:

    让我们这样想。某些行为,例如吠叫和唱歌,只能由有生命的生物来完成,例如自行车, 一个没有生命的物体,不能唱歌。此外,吠叫是由动物完成的,即,人类不可能是做出吠叫行为的人。 因此,让我们为每个组成部分定义某些特征。例如:

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

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

    【讨论】:

      【解决方案2】:

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

      This 也可能是相关的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 2013-08-10
        • 2015-03-19
        • 2021-01-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多