简单的中文语句生成器

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_phraseAdj* = [ ]或者adj[i]或者adj[i]+adj[j]...

#output结果:
sentence = noun_phrase+verb_phrase

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

            调用 noun_phrase_Gene    调用verb_phrase_Genesentence = noun_phrase+verb_phrasenoun_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_phraseAdjGet():random k in range(4)  确定 adj个数random k个序号in range(4) get k个adjreturn Adj* = [ ]或者adj[i]或者adj[i]+adj[j]...

代码

import  numpy as np
import random
class ClassGenerator:Adj = ["蓝色的","好看的","小小的","年轻的"]verb = ["看着","听着","看见","听见"]noun = ["女人","小猫","篮球","桌子"]Article = ["一个","这个"]def AdjGet(self):Adj_num = int(np.random.uniform(0, 4))  #形容词数量assert Adj_num<=4print("the num of adj is",Adj_num)adj_group_number =[random.randint(0,3) for i in range(Adj_num)]                            #list(np.random.uniform(0,4,Adj_num))  #形容词序号列表    np的随机函数返回的是ndarry多维数组#print(adj_group_number.shape)adj_group = []for i in range(Adj_num):k =adj_group_number[i]adj_group = "".join(adj_group)+self.Adj[k]return "".join(adj_group)               #list转字符串def verb_phrase_Gene(self):verb_num = int(np.random.uniform(0, 4))noun_num = int(np.random.uniform(0, 4))return self.verb[verb_num]+self.noun[noun_num]def noun_phrase_gene(self):Article_num = int(np.random.uniform(0, 2))                 #np.random.uniform取值左右都闭,且返回值是float64类型!Adj_Group = self.AdjGet()noun_num = int(np.random.uniform(0, 3))return self.Article[Article_num]+Adj_Group+self.noun[noun_num]def sentGene(self):noun_phr = self.noun_phrase_gene()verb_phr = self.verb_phrase_Gene()return noun_phr+verb_phrwhile(1):key = input("生成语句?Y|N")if key == 'Y':print(">>generate(\"sentence\")")generate = ClassGenerator()sentence = generate.sentGene()print(sentence)if key =='N':break

![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLm

笔记

random — 生成伪随机数

https://docs.python.org/zh-cn/3/library/random.html?highlight=np%20random%20uniform#random.getrandbits

“”.join(adj_group) #list转字符串

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

  1. python随机生成中文句子_关于python:从语法或Ngrams生成随机句子?

    我正在编写一个程序,该程序应该吐出一个我自己选择的复杂性的随机句子. 举一个具体的例子,我想通过吐出语法结构的有效句子并使用我已经学习过的单词来帮助我的语言学习. 尽管我愿意接受其他想法,但我想使用p ...

  2. 怎样用python随机生成100内的100个奇数_python怎么随机生成奇数_后端开发

    PHP每15分钟自动更新网站地图(减少服务器消耗)_后端开发 sitemap.php为页面文件,sitemap.html为sitemap.php的克隆版,监控宝设置定时监控timeSitemap.ph ...

  3. python随机生成验证码_Python生成随机验证码的两种方法

    # -*- coding: utf-8 -*- import random def generate_verification_code_v2(): ''' 随机生成6位的验证码 ''' code_l ...

  4. python随机生成一个地区地址_Python生成随机MAC地址

    利用python代码生成一个随机的MAC地址,使用python网络编程时或可用上,如果使用scapy模块则可直接利用RandMAC()函数来生成MAC. python 复制代码 代码如下: impor ...

  5. python随机生成10个奇数_python怎么随机生成奇数

    python随机生成奇数的方法: 实现思路: 1.需要用到random模块 2.用列表展现给用户 3.检查这个数是否为奇数,在用append的方法将为奇数的随机数写入列表中 4.为了保证能输入与用户输 ...

  6. python随机生成大写字母_python随机生成大小写字母数字混合密码(仅20行代码)

    用简单的方法生成随机性较大的密码 仅用20行代码随机生成密码 核心思路:利用random模块 random模块随机生成数字,大小写字母,循环次数 while循环+随机生成的循环次数-->随机pl ...

  7. python随机生成奇数_python怎么随机生成奇数_后端开发

    PHP每15分钟自动更新网站地图(减少服务器消耗)_后端开发 sitemap.php为页面文件,sitemap.html为sitemap.php的克隆版,监控宝设置定时监控timeSitemap.ph ...

  8. python随机生成数据库数据之一步一步教你数据造假成为道德主席-取名器-.-xswl-pydbgen || Faker

    简介 自己为了测试框架的正确性,就需要点数据做测试,一人扛下前后端.....不能重复的叫什么科学,丢人 开始 原理 基本上每种编程语言都自带伪随机数生成器,因此可以随机产生整形.浮点型数据,借助数组思 ...

  9. python 随机生成密码

    python 随机生成密码 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : 随机生成密码 ...

最新文章

  1. 【超简单】MySQL存储引擎的选择与配置
  2. 初识python之 APP store排行榜 蜘蛛抓取(一)
  3. Ubuntu的中文是哪种字体?python的词云分析和 三国演义人物出场统计
  4. zoj 1115 Digital Roots
  5. 量子纠缠背后的故事(三):维格纳的朋友 精选
  6. 动态规划之背包问题(C语言)
  7. angularjs directive scope变化为啥html,学习AngularJs:Directive指令用法(完整版)
  8. vs vue 查看webpack安装成功_在Vue+webpack中详细讲解基础配置
  9. php获取每月的星期天,php计算一月中有多少个周末
  10. Java版Quest Soft Player
  11. JVM类加载机制(加载,初始化,类加载器和双亲委派机制)
  12. Python 错误重试库 tenacity retry
  13. 【基于贪心的树型动态规划】【NOI2007】追捕盗贼
  14. 宣化科技职业学院计算机网络技术,职业技术学校专业建设-宣化科技职业技术学院-计算机网络技术.doc...
  15. RFID固定资产管理系统更好更快捷的掌握资产情况 资产盘查好帮手
  16. 拉拉米抢单发单源码 二开ui 带视频介绍 放量功能
  17. 对数组进行“整体赋值”
  18. UBUNTU ROS 编译后无法rosrun package文件(已解决)
  19. 缓存和数据库如何保证一致性
  20. 区块链开发者招聘:IOST开发者计划

热门文章

  1. badusb关机代码实用(2例)
  2. C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍
  3. python测试之道电子pdf下载_Python接口自动化测试 PDF 下载
  4. 【牛客刷题-算法】 NC19 连续子数组的最大和
  5. three.js,透明模型能够遮挡可见模型
  6. KISSY——事件Event.fire
  7. 计算机方面特长特招进北大,降60分!2019年清华、北大特招艺术特长生
  8. Nutanix混合云基础架构现已支持亚马逊云服务(AWS)
  9. springboot和sping异同
  10. Arduino超声波传感器测量距离