python成语填空_python实现成语⼀⽹上经常有些从N个字⾥⾯成语的⼩游戏,那么怎么⽤python把成语组合出来呢?
准备词典
从⽹上下载⼀个成语的词典、每⾏⼀个成语,保存成 。
代码实现
1.构建⼀个⾸字-成语的字典模型 del
import pickle
from pathlib import Path
seq = Path('').read_text().split('\n')
predict = {}
for word in seq:
pre = list(word)[0]
predict.setdefault(pre, [])
predict[pre].append(word)
with open('del', 'wb') as f:
f.write(pickle.dumps(predict))
2.实现成语查的类
import pickle
class Idiom(object):
def __init__(self, model_path='del'):
self.predict = pickle.loads(Path(model_path).read_bytes())
def find(self, text):
# ⽣成单字集合
chas = set(text)
for cha in chas:
# 获取单字对应的备选成语
words = (cha, [])import pickle
if not words:
continue
for word in words:
# 检查备选成语的字是否在单字集合中
for i in word:
if i not in chas:
break
# for循环执⾏完即备选成语由单字集合中的字组成
else:
print(word)
3.现在就可以开始成语啦
# ⽹上⼀般的成语游戏的备选字⽐这⾥少很多
s = '''⽉光如流⽔⼀般,静静地泻在这⼀⽚叶⼦和花上。
薄薄的青雾浮起在荷塘⾥。
叶⼦和花仿佛在⽜乳中洗过⼀样;⼜像笼着轻纱的梦。
虽然是满⽉,天上却有⼀层淡淡的云,所以不能朗照;
但我以为这恰是到了好处——酣眠固不可少,⼩睡也别有风味的。
⽉光是隔了树照过来的,⾼处丛⽣的灌⽊,落下参差的斑驳的⿊影,峭楞楞如⿁⼀般;弯弯的杨柳的稀疏的倩影,却⼜像是画在荷叶上。
塘中的⽉⾊并不均匀;但光与影有着和谐的旋律,如梵婀玲上奏着的名曲。''')
obj = Idiom()
obj.find(s)
出来的成语有:
⼀天⼀地、别有风味、别有天地、恰到好处、落花流⽔、⽔流花落、
⽔天⼀⾊、流⽔落花、风轻云淡、⽉⿊风⾼、⾼⾼在上、云淡风轻、
能上能下、不上不落、不上不下、不以为然、不差上下、名⾼天下、
名满天下、天下为笼、天⾼地下、参差不⼀

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。