本篇文章会利用python语言中的第三方库jieba库和标准库random库来对文件中的相关元素进行操作。
实践中文片段:“今天是个好天气,大家一起去爬山。”该句子分为上下两部分,以逗号和句号隔开。第一步对该句子进行分词,并以8位为随机种子,在上下半句分别为重新排列组合的词语,并组合输出10种不重复的可能。其中,上下部分部分词语不交叉,每个可能的组合单行输出,,储存到”句子组合.txt“文件中。格式如下:
今天是个好天气,大家一起去爬山。是个好天气今天,一起去爬山今天。
![fe1b9817ecadbe0deb1ec2d8d8bcc599.png](https://i-blog.csdnimg.cn/blog_migrate/aa12d4a6ad424e2feb3e634ccab6bc27.jpeg)
首先,我们导入jieba、random库,创建出所给出的文本字符串。
import jiebaimport randoms = "今天是个好天气,大家一起去爬山。"
对s进行上下半句的分割储存在相关变量之中。
k = s.find(',')s1 = jieba.lcut(s[0:k])s2 = jieba.lcut(s[k+1:-1])
![a8cf901af8ea1ab5a381e28890949a4d.png](https://i-blog.csdnimg.cn/blog_migrate/e44bf339d68143d7a9868c1e79ca5dc5.jpeg)
设置随机数种子,并将上下半句重新组合排序并组合成10种不重复的可能。
random.seed(8)lines = [ ]while True:line = " "random.shuffle(s1) #将字符串s1中的元素任意排序random.shuffle(s2)
对打乱后的s1和s2进行循环遍历,并将其储存在列表line中。最后将10中不重复的line列表粘贴到lines中。将其以csv文件储存。
for item in s1: line += item + "," #遍历s1,将其元素储存在line中,以逗号结尾for item in s2: line += item +"。"if line in lines: continueelse: lines.append(line)if len(lines) ==10: breakf = open("句子组合.txt