Update README.md
Browse files
README.md
CHANGED
|
@@ -230,7 +230,7 @@ def chunk_text_with_max_chunk_size(model, text, tokenizer, prob_threshold=0.5,ma
|
|
| 230 |
|
| 231 |
unchunk_tokens = 0
|
| 232 |
backup_pos = None
|
| 233 |
-
best_logits = torch.finfo(torch.float32).min
|
| 234 |
STEP = round(((MAX_TOKENS - 2)//2)*1.75 )
|
| 235 |
print(f"Processing {input_ids.shape[1]} tokens...")
|
| 236 |
# while windows_end <= input_ids.shape[1]:#记得改成windstart
|
|
@@ -335,86 +335,362 @@ def chunk_text_with_max_chunk_size(model, text, tokenizer, prob_threshold=0.5,ma
|
|
| 335 |
return substrings, token_pos
|
| 336 |
# chunking
|
| 337 |
print("\n>>>>>>>>> Chunking...")
|
| 338 |
-
doc = r'''
|
| 339 |
-
*****
|
| 340 |
|
| 341 |
-
|
| 342 |
-
,从而能够创建该类型的新 *实例*。实例具有能维持自身状态的属性,还具有
|
| 343 |
-
能修改自身状态的方法(由其所属的类来定义)。
|
| 344 |
|
| 345 |
-
|
| 346 |
-
有点类似于 C++ 和 Modula-3 中类的结合体,而且支持面向对象编程(OOP)的
|
| 347 |
-
所有标准特性:类的继承机制支持多个基类、派生的类能覆盖基类的方法、类的
|
| 348 |
-
方法能调用基类中的同名方法。对象可包含任意数量和类型的数据。和模块一样
|
| 349 |
-
,类也支持 Python 动态特性:在运行时创建,创建后还可以修改。
|
| 350 |
|
| 351 |
-
|
| 352 |
-
外的情况见下文 私有变量),所有成员函数都为 *virtual* 。与 Modula-3 中
|
| 353 |
-
一样,没有用于从对象的方法中引用本对象成员的简写形式:方法函数在声明时
|
| 354 |
-
,有一个显式的第一个参数代表本对象,该参数由方法调用隐式提供。与在
|
| 355 |
-
Smalltalk 中一样,Python 的类也是对象,这为导入和重命名提供了语义支持
|
| 356 |
-
。与 C++ 和 Modula-3 不同,Python 的内置类型可以用作基类,供用户扩展。
|
| 357 |
-
此外,与 C++ 一样,具有特殊语法的内置运算符(算术运算符、下标等)都可
|
| 358 |
-
以为类实例重新定义。
|
| 359 |
|
| 360 |
-
|
| 361 |
-
章还会使用 Modula-3 的术语,Modula-3 的面向对象语义比 C++ 更接近
|
| 362 |
-
Python,但估计听说过这门语言的读者很少。
|
| 363 |
|
|
|
|
| 364 |
|
| 365 |
-
|
| 366 |
-
===============
|
| 367 |
|
| 368 |
-
|
| 369 |
-
一对象。这在其他语言中通常被称为别名。Python 初学者通常不容易理解这个
|
| 370 |
-
概念,处理数字、字符串、元组等不可变基本类型时,可以不必理会。但是,对
|
| 371 |
-
于涉及可变对象(如列表、字典,以及大多数其他类型)的 Python 代码的语义
|
| 372 |
-
,别名可能会产生意料之外的效果。这样做,通常是为了让程序受益,因为别名
|
| 373 |
-
在某些方面就像指针。例如,传递对象的代价很小,因为实现只传递一个指针;
|
| 374 |
-
如果函数修改了作为参数传递的对象,调用者就可以看到更改——无需像 Pascal
|
| 375 |
-
那样用两个不同的机制来传参。
|
| 376 |
|
|
|
|
| 377 |
|
| 378 |
-
|
| 379 |
-
============================
|
| 380 |
|
| 381 |
-
|
| 382 |
-
的技巧,了解作用域和命名空间的工作机制有利于加强对类的理解。并且,即便
|
| 383 |
-
对于高级 Python 程序员,这方面的知识也很有用。
|
| 384 |
|
| 385 |
-
|
| 386 |
|
| 387 |
-
|
| 388 |
-
用 Python 字典实现,但除非涉及到性能优化,我们一般不会关注这方面的事情
|
| 389 |
-
,而且将来也可能会改变这种方式。命名空间的例子有:内置名称集合(包括
|
| 390 |
-
"abs()" 函数以及内置异常的名称等);一个模块的全局名称;一个函数调用中
|
| 391 |
-
的局部名��。对象的属性集合也是命名空间的一种形式。关于命名空间的一个重
|
| 392 |
-
要知识点是,不同命名空间中的名称之间绝对没有关系;例如,两个不同的模块
|
| 393 |
-
都可以定义 "maximize" 函数,且不会造成混淆。用户使用函数时必须要在函数
|
| 394 |
-
名前面加上模块名。
|
| 395 |
|
| 396 |
-
|
| 397 |
-
的属性。严格来说,对模块中名称的引用是属性引用:表达式
|
| 398 |
-
"modname.funcname" 中,"modname" 是模块对象,"funcname" 是模块的属性。
|
| 399 |
-
模块属性和模块中定义的全局名称之间存在直接的映射:它们共享相同的命名空
|
| 400 |
-
间! [1]
|
| 401 |
|
| 402 |
-
|
| 403 |
-
属性是可写的:你可以写入 "modname.the_answer = 42" 。 也可以使用
|
| 404 |
-
"del" 语句删除可写属性。 例如,"del modname.the_answer" 将从名为
|
| 405 |
-
"modname" 对象中移除属性 "the_answer"。
|
| 406 |
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
部分
|
| 412 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 413 |
'''
|
| 414 |
# Chunk the text. The prob_threshold should be between (0, 1). The lower it is, the more chunks will be generated.
|
| 415 |
# Therefore adjust it to your need, when prob_threshold is small like 0.000001, each token is one chunk,
|
| 416 |
# when it is set to 1, the whole text will be one chunk, and will be forced to choose a best possible position to chunk when it is about to exceed the max_tokens_per_chunk and no token satisfy the prob_threshold.
|
| 417 |
-
chunks, token_pos = chunk_text_with_max_chunk_size(model, doc, tokenizer, prob_threshold=0.5, max_tokens_per_chunk =
|
| 418 |
|
| 419 |
# print chunks
|
| 420 |
for i, (c, t) in enumerate(zip(chunks, token_pos)):
|
|
|
|
| 230 |
|
| 231 |
unchunk_tokens = 0
|
| 232 |
backup_pos = None
|
| 233 |
+
best_logits = torch.finfo(torch.float32).min
|
| 234 |
STEP = round(((MAX_TOKENS - 2)//2)*1.75 )
|
| 235 |
print(f"Processing {input_ids.shape[1]} tokens...")
|
| 236 |
# while windows_end <= input_ids.shape[1]:#记得改成windstart
|
|
|
|
| 335 |
return substrings, token_pos
|
| 336 |
# chunking
|
| 337 |
print("\n>>>>>>>>> Chunking...")
|
| 338 |
+
doc = r'''经典中式家常菜:红烧肉 详尽版食谱
|
|
|
|
| 339 |
|
| 340 |
+
红烧肉,作为中华美食殿堂中一颗璀璨的明珠,以其色泽红亮、肥而不腻、入口即化的独特风味,征服了无数食客的味蕾。它不仅仅是一道菜,更是一种情怀,是记忆中妈妈厨房里飘出的诱人香气,是团圆饭桌上最温暖的慰藉。要烹制出一盘完美的红烧肉,需要耐心、技巧以及对细节的专注。以下将为您详尽分解从选材到成品的每一个步骤,力求让您在家也能复刻出餐厅级别的美味。本食谱旨在深入剖析,故篇幅较长,以确保每个环节都清晰透彻。
|
|
|
|
|
|
|
| 341 |
|
| 342 |
+
一、 精选主料:奠定美味的基石
|
|
|
|
|
|
|
|
|
|
|
|
|
| 343 |
|
| 344 |
+
• 猪肉选择。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 345 |
|
| 346 |
+
◦ 首选带皮的五花肉。
|
|
|
|
|
|
|
| 347 |
|
| 348 |
+
◦ 层次分明为佳。
|
| 349 |
|
| 350 |
+
◦ 肥瘦相间是关键。
|
|
|
|
| 351 |
|
| 352 |
+
◦ 厚度约三指左右。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 353 |
|
| 354 |
+
◦ 重量约一斤半为宜。
|
| 355 |
|
| 356 |
+
◦ 确保猪皮完整无缺。
|
|
|
|
| 357 |
|
| 358 |
+
◦ 新鲜肉品呈鲜红色。
|
|
|
|
|
|
|
| 359 |
|
| 360 |
+
◦ 脂肪部分应洁白细腻。
|
| 361 |
|
| 362 |
+
• 预处理工作。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 363 |
|
| 364 |
+
◦ 用镊子拔除残留猪毛。
|
|
|
|
|
|
|
|
|
|
|
|
|
| 365 |
|
| 366 |
+
◦ 将肉块置于冷水中浸泡。
|
|
|
|
|
|
|
|
|
|
| 367 |
|
| 368 |
+
◦ 浸泡时间约三十分钟。
|
| 369 |
+
|
| 370 |
+
◦ 中途可换水一至两次。
|
| 371 |
+
|
| 372 |
+
◦ 目的是泡出部分血水。
|
| 373 |
+
|
| 374 |
+
◦ 然后用刀刮洗猪皮表面。
|
| 375 |
+
|
| 376 |
+
◦ 彻底清除污物和杂质。
|
| 377 |
+
|
| 378 |
+
◦ 最后用流动水冲洗干净。
|
| 379 |
+
|
| 380 |
+
二、 准备辅料:调配灵魂之味
|
| 381 |
+
|
| 382 |
+
• 主要调味品。
|
| 383 |
+
|
| 384 |
+
◦ 老抽:负责上色。
|
| 385 |
+
|
| 386 |
+
◦ 用量需谨慎控制。
|
| 387 |
+
|
| 388 |
+
◦ 过多会导致发黑发苦。
|
| 389 |
+
|
| 390 |
+
◦ 生抽:提供咸鲜底味。
|
| 391 |
+
|
| 392 |
+
◦ 与老抽比例约二比一。
|
| 393 |
+
|
| 394 |
+
◦ 优质花雕酒是精髓。
|
| 395 |
+
|
| 396 |
+
◦ 去腥增香效果显著。
|
| 397 |
+
|
| 398 |
+
◦ 冰糖:首选黄冰糖。
|
| 399 |
+
|
| 400 |
+
◦ 炒出的糖色更红亮。
|
| 401 |
+
|
| 402 |
+
◦ 风味也比白糖醇和。
|
| 403 |
+
|
| 404 |
+
• 香辛料组合。
|
| 405 |
+
|
| 406 |
+
◦ 生姜一大块,切片。
|
| 407 |
+
|
| 408 |
+
◦ 大葱一根,切成长段。
|
| 409 |
+
|
| 410 |
+
◦ 蒜头数瓣,轻轻拍松。
|
| 411 |
+
|
| 412 |
+
◦ 八角两至三颗,增香。
|
| 413 |
+
|
| 414 |
+
◦ 桂皮一小段,勿过多。
|
| 415 |
+
|
| 416 |
+
◦ 香叶两片,增添风味。
|
| 417 |
+
|
| 418 |
+
◦ 草果一颗,可拍裂开。
|
| 419 |
+
|
| 420 |
+
◦ 干辣椒依个人口味添加。
|
| 421 |
+
|
| 422 |
+
• 其他基础材料。
|
| 423 |
+
|
| 424 |
+
◦ 食用油适量,需耐高温。
|
| 425 |
+
|
| 426 |
+
◦ 最好使用菜籽油或花生油。
|
| 427 |
+
|
| 428 |
+
◦ 食盐少许,用于最后调味。
|
| 429 |
+
|
| 430 |
+
◦ 因为酱油已有咸度。
|
| 431 |
+
|
| 432 |
+
◦ 准备足量的开水备用。
|
| 433 |
+
|
| 434 |
+
◦ 切记不可使用冷水。
|
| 435 |
+
|
| 436 |
+
◦ 冷水会使肉质收缩变柴。
|
| 437 |
+
|
| 438 |
+
三、 精细加工:关键步骤解析
|
| 439 |
+
|
| 440 |
+
• 肉块改刀。
|
| 441 |
+
|
| 442 |
+
◦ 将洗净的五花肉捞出。
|
| 443 |
+
|
| 444 |
+
◦ 用厨房纸彻底吸干水分。
|
| 445 |
+
|
| 446 |
+
◦ 这一步非常重要。
|
| 447 |
+
|
| 448 |
+
◦ 能有效防止后续溅油。
|
| 449 |
+
|
| 450 |
+
◦ 将肉切成三厘米见方块。
|
| 451 |
+
|
| 452 |
+
◦ 大小尽量保持均匀一致。
|
| 453 |
+
|
| 454 |
+
◦ 以确保受热和入味均匀。
|
| 455 |
+
|
| 456 |
+
◦ 切面应能看到完美层次。
|
| 457 |
+
|
| 458 |
+
• 焯水去腥。
|
| 459 |
+
|
| 460 |
+
◦ 冷水下锅,放入切好的肉。
|
| 461 |
+
|
| 462 |
+
◦ 同时加入几片生姜。
|
| 463 |
+
|
| 464 |
+
◦ 倒入一汤匙花雕酒。
|
| 465 |
+
|
| 466 |
+
◦ 开大火煮沸,撇净浮沫。
|
| 467 |
+
|
| 468 |
+
◦ 浮沫是血水和杂质所致。
|
| 469 |
+
|
| 470 |
+
◦ 务必撇除干净直至汤清。
|
| 471 |
+
|
| 472 |
+
◦ 焯水时间约五到八分钟。
|
| 473 |
+
|
| 474 |
+
◦ 煮至肉块变色定型即可。
|
| 475 |
+
|
| 476 |
+
• 捞出与冲洗。
|
| 477 |
+
|
| 478 |
+
◦ 用漏勺将肉块捞出。
|
| 479 |
+
|
| 480 |
+
◦ 立即放入温水中冲洗。
|
| 481 |
+
|
| 482 |
+
◦ 洗去表面残留的浮沫。
|
| 483 |
+
|
| 484 |
+
◦ 注意水温不宜过低。
|
| 485 |
+
|
| 486 |
+
◦ 再次用厨房纸吸干水分。
|
| 487 |
+
|
| 488 |
+
◦ 防止入锅时油花四溅。
|
| 489 |
+
|
| 490 |
+
◦ 此时肉块呈灰白色。
|
| 491 |
+
|
| 492 |
+
◦ 经过焯水已无肉腥味。
|
| 493 |
+
|
| 494 |
+
四、 核心工艺:炒糖色与煸炒
|
| 495 |
+
|
| 496 |
+
• 炒制糖色。
|
| 497 |
+
|
| 498 |
+
◦ 锅烧热,倒入少量底油。
|
| 499 |
+
|
| 500 |
+
◦ 放入准备好的冰糖。
|
| 501 |
+
|
| 502 |
+
◦ 开中小火慢慢搅动。
|
| 503 |
+
|
| 504 |
+
◦ 观察冰糖融化的过程。
|
| 505 |
+
|
| 506 |
+
◦ 先从固体变为液态。
|
| 507 |
+
|
| 508 |
+
◦ 再从小泡转为密集大泡。
|
| 509 |
+
|
| 510 |
+
◦ 当大泡逐渐回落消失时。
|
| 511 |
+
|
| 512 |
+
◦ 糖液颜色开始加深。
|
| 513 |
+
|
| 514 |
+
• 观察颜色变化。
|
| 515 |
+
|
| 516 |
+
◦ 从浅黄色变为枣红色。
|
| 517 |
+
|
| 518 |
+
◦ 这个瞬间非常关键。
|
| 519 |
+
|
| 520 |
+
◦ 枣红色时立即下入肉块。
|
| 521 |
+
|
| 522 |
+
◦ 过早则甜腻,过晚则发苦。
|
| 523 |
+
|
| 524 |
+
◦ 动作务必迅速而准确。
|
| 525 |
+
|
| 526 |
+
◦ 糖色是红亮色泽的来源。
|
| 527 |
+
|
| 528 |
+
◦ 也是风味层次的基��。
|
| 529 |
+
|
| 530 |
+
• 煸炒肉块。
|
| 531 |
+
|
| 532 |
+
◦ 快速颠锅,使每块肉均匀裹上糖色。
|
| 533 |
+
|
| 534 |
+
◦ 持续翻炒约三到五分钟。
|
| 535 |
+
|
| 536 |
+
◦ 直到肉块表面微微焦黄。
|
| 537 |
+
|
| 538 |
+
◦ 部分油脂被煸炒出来。
|
| 539 |
+
|
| 540 |
+
◦ 这样吃起来肥而不腻。
|
| 541 |
+
|
| 542 |
+
◦ 同时香味物质充分释放。
|
| 543 |
+
|
| 544 |
+
◦ 煸出的猪油可倒出部分。
|
| 545 |
+
|
| 546 |
+
◦ 留作炒青菜风味极佳。
|
| 547 |
+
|
| 548 |
+
五、 炖煮入味:时间与火候的艺术
|
| 549 |
+
|
| 550 |
+
• 加入调料。
|
| 551 |
+
|
| 552 |
+
◦ 沿着锅边烹入花雕酒。
|
| 553 |
+
|
| 554 |
+
◦ 瞬间激发出浓郁酒香。
|
| 555 |
+
|
| 556 |
+
◦ 接着倒入适量生抽。
|
| 557 |
+
|
| 558 |
+
◦ 再加入少许老抽上色。
|
| 559 |
+
|
| 560 |
+
◦ 放入所有香料:姜、葱、蒜等。
|
| 561 |
+
|
| 562 |
+
◦ 与肉块一起翻炒均匀。
|
| 563 |
+
|
| 564 |
+
◦ 让酱香与肉香充分融合。
|
| 565 |
+
|
| 566 |
+
◦ 翻炒约两分钟至香气扑鼻。
|
| 567 |
+
|
| 568 |
+
• 注入开水。
|
| 569 |
+
|
| 570 |
+
◦ 务必一次性加足开水。
|
| 571 |
+
|
| 572 |
+
◦ 水量要完全没过肉块。
|
| 573 |
+
|
| 574 |
+
◦ 甚至可以略多一些。
|
| 575 |
+
|
| 576 |
+
◦ 避免中途再次加水。
|
| 577 |
+
|
| 578 |
+
◦ 大火烧开后转小火。
|
| 579 |
+
|
| 580 |
+
◦ 盖上锅盖,慢火焖炖。
|
| 581 |
+
|
| 582 |
+
◦ 这是“入口即化”的关键。
|
| 583 |
+
|
| 584 |
+
◦ 时间至少需要一小时。
|
| 585 |
+
|
| 586 |
+
• 慢炖过程。
|
| 587 |
+
|
| 588 |
+
◦ 保持汤面微沸即可。
|
| 589 |
+
|
| 590 |
+
◦ 火候切忌过大过急。
|
| 591 |
+
|
| 592 |
+
◦ 否则容易烧干且肉不烂。
|
| 593 |
+
|
| 594 |
+
◦ 期间可偶尔开盖查看。
|
| 595 |
+
|
| 596 |
+
◦ 用勺子轻轻推动一下。
|
| 597 |
+
|
| 598 |
+
◦ 防止粘锅底的情况发生。
|
| 599 |
+
|
| 600 |
+
◦ 但尽量不要频繁翻动。
|
| 601 |
+
|
| 602 |
+
◦ 以免影响肉块的完整。
|
| 603 |
+
|
| 604 |
+
六、 收汁与装盘:成就最终美味
|
| 605 |
+
|
| 606 |
+
• 大火收汁。
|
| 607 |
+
|
| 608 |
+
◦ 炖煮一小时后。
|
| 609 |
+
|
| 610 |
+
◦ 用筷子戳一下瘦肉部分。
|
| 611 |
+
|
| 612 |
+
◦ 若能轻松戳透即表示已软烂。
|
| 613 |
+
|
| 614 |
+
◦ 此时根据汤汁咸度加盐。
|
| 615 |
+
|
| 616 |
+
◦ 开大火,将汤汁收浓。
|
| 617 |
+
|
| 618 |
+
◦ 用锅铲不停搅动。
|
| 619 |
+
|
| 620 |
+
◦ 防止糊底,并让汤汁变稠。
|
| 621 |
+
|
| 622 |
+
◦ 均匀包裹在每一块肉上。
|
| 623 |
+
|
| 624 |
+
• 收汁技巧。
|
| 625 |
+
|
| 626 |
+
◦ 收到汤汁浓稠如蜜。
|
| 627 |
+
|
| 628 |
+
◦ 油亮红润的汤汁紧裹肉块。
|
| 629 |
+
|
| 630 |
+
◦ 锅中泛起密集的大泡。
|
| 631 |
+
|
| 632 |
+
◦ 即可准备关火出锅。
|
| 633 |
+
|
| 634 |
+
◦ 收汁程度依个人喜好。
|
| 635 |
+
|
| 636 |
+
◦ 喜欢拌饭可多留些汤汁。
|
| 637 |
+
|
| 638 |
+
◦ 整个过程需密切留意。
|
| 639 |
+
|
| 640 |
+
◦ 最后阶段变化非常迅速。
|
| 641 |
+
|
| 642 |
+
• 最终成品。
|
| 643 |
+
|
| 644 |
+
◦ 将红烧肉盛入预热好的盘中。
|
| 645 |
+
|
| 646 |
+
◦ 可烫几棵小油菜围边。
|
| 647 |
+
|
| 648 |
+
◦ 既点缀色彩,又解油腻。
|
| 649 |
+
|
| 650 |
+
◦ 撒上少许葱花或香菜末。
|
| 651 |
+
|
| 652 |
+
◦ 一道色香味俱全的红烧肉完成。
|
| 653 |
+
|
| 654 |
+
◦ 肉质软糯,肥而不腻。
|
| 655 |
+
|
| 656 |
+
◦ 咸中带甜,回味无穷。
|
| 657 |
+
|
| 658 |
+
◦ 配上一碗白米饭是绝配。
|
| 659 |
+
|
| 660 |
+
七、 要点总结与升华
|
| 661 |
+
|
| 662 |
+
• 成功关键。
|
| 663 |
+
|
| 664 |
+
◦ 选材是基础,务必新鲜。
|
| 665 |
+
|
| 666 |
+
◦ 焯水步骤不可省略。
|
| 667 |
+
|
| 668 |
+
◦ 炒糖色是技术核心。
|
| 669 |
+
|
| 670 |
+
◦ 火候控制是成败关键。
|
| 671 |
+
|
| 672 |
+
◦ 耐心慢炖是美味保证。
|
| 673 |
+
|
| 674 |
+
• 变化与创新。
|
| 675 |
+
|
| 676 |
+
◦ 可加入土豆、鹌鹑蛋同烧。
|
| 677 |
+
|
| 678 |
+
◦ 吸收肉汤,滋味更丰富。
|
| 679 |
+
|
| 680 |
+
◦ 也可尝试用啤酒代替水。
|
| 681 |
+
|
| 682 |
+
◦ 别有一番风味层次。
|
| 683 |
+
|
| 684 |
+
◦ 但万变不离其宗。
|
| 685 |
+
|
| 686 |
+
◦ 核心技法仍需掌握。
|
| 687 |
+
|
| 688 |
+
烹饪是一门需要实践的艺术,红烧肉更是如此。希望这份详尽的食谱能成为您厨房路上的得力助手,愿您能享受从准备到品尝的整个过程,与家人朋友分享这份由时间与匠心凝聚而成的温暖美味。每一次尝试都是一次经验的积累,祝您烹饪愉快,早日成就属于自己的招牌红烧肉!。
|
| 689 |
'''
|
| 690 |
# Chunk the text. The prob_threshold should be between (0, 1). The lower it is, the more chunks will be generated.
|
| 691 |
# Therefore adjust it to your need, when prob_threshold is small like 0.000001, each token is one chunk,
|
| 692 |
# when it is set to 1, the whole text will be one chunk, and will be forced to choose a best possible position to chunk when it is about to exceed the max_tokens_per_chunk and no token satisfy the prob_threshold.
|
| 693 |
+
chunks, token_pos = chunk_text_with_max_chunk_size(model, doc, tokenizer, prob_threshold=0.5, max_tokens_per_chunk = 100)
|
| 694 |
|
| 695 |
# print chunks
|
| 696 |
for i, (c, t) in enumerate(zip(chunks, token_pos)):
|