python 随机生成简单语法结构的中文句子

简单的中文语句生成器

python 随机生成简单语法结构的中文句子

题目如下:Writing a programming which could generate random Chinese sentences based
on one grammar.
Your input grammar is:
simple_grammar = “”"
sentence => noun_phrase verb_phrase noun_phrase => Article Adj* noun
Adj* => null | Adj Adj*
verb_phrase => verb noun_phrase
Article => 一个 | 这个
noun =>女人|篮球|桌子|小猫
verb => 看着 | 听着 | 看见
Adj =>蓝色的 |好看的 |小小的 |年轻的 “”"
Your task is define a function called generate, if we call generate(‘sentence’),
you could see some sentences like:

generate(“sentence”)
Output: 这个蓝色的女人看着一个小猫

generate(“sentence”)
Output: 这个好看的小猫坐在一个女人

解题思路

类 ClassGenerator
类型 :基本内容列表 一维#
Adj = [“蓝色的”,“好看的”,“小小的”,“年轻的”]
verb = [“看着”,“听着”,“看见”,“听见”]
noun = [“女人”,“小猫”,“篮球”,“桌子”]
Article = [“一个”,“这个”]

       组合内容列表
            noun_phrase = Article[i]+Adj*+noun[j]
            verb_phrase = verb[i]+noun_phrase
            Adj* = [ ]或者adj[i]或者adj[i]+adj[j]...

#output结果:
sentence = noun_phrase+verb_phrase

#####方法:
sentGene():

            调用 noun_phrase_Gene    调用verb_phrase_Gene
              sentence = noun_phrase+verb_phrase

        noun_phrase();
              random i in range(2)  取Article[i]
              调用 AdjGet 取 Adj*
              random j in range(4)  get noun[j]
           return noun_phrase = Article[i]+Adj*+noun[j]

        verb_phrase_Gene():
              random i in range(4)  取verb[i]
              random j in range(4)  get noun[j]
            return verb_phrase = verb[i]+noun_phrase

         AdjGet():
              random k in range(4)  确定 adj个数
              random k个序号in range(4) get k个adj

              return Adj* = [ ]或者adj[i]或者adj[i]+adj[j]...

代码

import  numpy as np
import random
class ClassGenerator:
    Adj = ["蓝色的"
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值