File size: 18,494 Bytes
97127e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c459055
 
 
97127e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23c84eb
97127e6
 
 
 
7b7098a
23c84eb
97127e6
23c84eb
97127e6
 
4c80179
97127e6
 
 
 
 
 
 
23c84eb
97127e6
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import gradio as gr

import json
from functools import partial
from typing import Callable, Dict, List
import transformers
from transformers import (
    BartForConditionalGeneration,
    AutoTokenizer,
    pipeline
)

model = BartForConditionalGeneration.from_pretrained(
    'airesearch/wangchanbart-large',
    revision='finetuned@xl-sum',
)
tokenizer = AutoTokenizer.from_pretrained(
    'airesearch/wangchanbart-large',
)

text_summarize_pipeline = pipeline('text2text-generation',
                                    tokenizer=tokenizer,
                                    model=model)
         
css_text = """<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">"""

# def render_html(items: List[Dict]):
#     html_text = ''
#     for item in items:

#         label, score = item['label'], item['score']
#         label_id =  LABEL_MAPPING_REVERSED[label]
        
#         progress_bar_class_text = CSS_PROGRESS_BAR_MAPPING[label_id]

#         html_text += f'<span>{label.replace(" ", "&nbsp;")}:&nbsp;&nbsp;{(score*100):8.2f}%<span>' + \
#             f'<div class="w3-light-grey w3-round"><div class="{progress_bar_class_text} w3-round" style="height:19px;width:{round(score*100,2)}%"></div></div><div style="height:8px;"></div>'

#     return '<div class="w3-container">' + html_text + '</div>'

def summarize(text: str):
    
    results = text_summarize_pipeline(text, max_length=128)[0]
    print(f'results:\n {results}')
    # for i, result in enumerate(results):
    #     results[i]['label'] = LABEL_MAPPING[result['label']]
    #     results[i]['score'] = float(round(float(result['score']), 4))
    # html_text = 'css_text + results'
    html_text = '<p>' + results['generated_text'] +  '</p>'
    print(html_text)
    return html_text


demo = gr.Interface(fn=summarize,
inputs=gr.Textbox(lines=5, placeholder='Input text in Thai', label='Input text'),
examples=[
        ['แผ่นบันทึกข้อมูลทองคำที่ส่งไปกับยานวอยเอเจอร์ 1 และ 2 เมื่อกว่า 40 ปีก่อน ศ. รีเบกกา ออร์ชาร์ด และ ศ. เชรี เวลส์-เจนเซน จากมหาวิทยาลัย Bowling Green State University ในรัฐโอไฮโอของสหรัฐฯ เสนอต่อที่ประชุมสมาคมอวกาศแห่งชาติในนครลอสแอนเจลิสเมื่อวันเสาร์ (26 พ.ค.) ที่ผ่านมาว่า แทนที่ข้อมูลในแผ่นบันทึกดังกล่าวจะช่วยยืนยันว่ามนุษย์เป็นผู้รักสงบและมีภูมิปัญญาสูงส่ง ความสับสนในการสื่อสารและการแปลความหมายของสัญลักษณ์ต่าง ๆ อาจทำให้สิ่งมีชีวิตต่างดาวเข้าใจคลาดเคลื่อนไปจากที่มนุษย์ต้องการเป็นอย่างมาก "แผ่นบันทึกข้อมูลทองคำแสดงถึงภาพลักษณ์ในแบบที่มนุษย์ปรารถนาจะให้ผู้อื่นมองตนเช่นนั้น แต่เราต้องไม่ลืมว่าสิ่งมีชีวิตที่จะเข้าใจข้อมูลนี้ได้ จะต้องมีความสามารถในการรับรู้และประสาทสัมผัสเทียบเท่ากับมนุษย์โดยทั่วไป หากขาดประสาทสัมผัสทางใดทางหนึ่งเช่นการได้ยิน หรือมีประสาทสัมผัสพิเศษอื่น ๆ เพิ่มมา การตีความจะคลาดเคลื่อนทันที" ศ. ออร์ชาร์ดกล่าว แผ่นบันทึกข้อมูลนี้ทำจากแผ่นทองแดงที่เคลือบผิวด้วยทองคำ ขนาดเส้นผ่านศูนย์กลาง 30 เซนติเมตร บันทึกข้อมูลภาพ 117 ภาพ และเสียงต่าง ๆ ที่เป็นตัวแทนของธรรมชาติบนโลกและอารยธรรมของมนุษย์ ซึ่งรวมถึงเสียงร้องเรียกของวาฬหลังค่อม เสียงคนกล่าวทักทายในภาษาต่าง ๆ 54 ภาษา และเสียงดนตรีจากวัฒนธรรมต่าง ๆ ทั่วโลกนาน 90 นาที หากเอเลียนที่ทรงภูมิปัญญามีอยู่จริง และได้เปิดอ่านข้อมูลจากแผ่นบันทึกดังกล่าว หนึ่งในความผิดพลาดที่อาจเกิดขึ้นคือเข้าใจไปว่าเสียงกล่าวทักทายในภาษาต่าง ๆ คือเสียงคนโต้เถียงกัน เนื่องจากมีการเรียบเรียงบันทึกเสียงไว้ในลักษณะที่คล้ายโครงสร้างบทสนทนาโต้แย้ง ทำให้อาจตีความไปได้ว่า มนุษย์คือเผ่าพันธุ์ที่ชอบทะเลาะถกเถียงกัน และมีภาษาพูดซึ่งไม่มีแบบแผนไวยากรณ์ที่แน่นอน นอกจากนี้ อาจมีการจับคู่ข้อมูลภาพและเสียงซึ่งบันทึกแยกด้านกันไว้ผิด จนทำให้มีการตีความได้ว่า ดอกไม้ที่งดงามบนโลกอาจส่งเสียงร้องดังลั่นเหมือนเลื่อยยนต์ได้ ศ. ออร์ชาร์ดยังกล่าวอีกว่า "เสียงดนตรีจากทั่วโลกที่มีตั้งแต่ดนตรีคลาสสิก ไปจนถึงวงกาเมลันของชาวเกาะชวานั้น ยิ่งสร้างความสับสนและยากจะตีความได้ สำหรับผู้ที่ไม่คุ้นเคยกับมนุษย์และเสียงที่มนุษย์สร้างขึ้น" ขณะนี้แผ่นบันทึกข้อมูลทองคำที่อยู่กับยานวอยเอเจอร์ 1 อยู่ห่างจากโลกไป 12,000 ล้านไมล์ และเป็นวัตถุที่มนุษย์สร้างขึ้นซึ่งอยู่ห่างจากโลกมากที่สุด โดยต้องใช้เวลาอีกราว 40,000 ปี กว่าที่ยานนี้จะเข้าใกล้ระบบสุริยะอื่น ๆ ที่ไม่ใช่ของเราได้'],
        ['นักวิจัยซึ่งเผยแพร่งานวิจัยในวารสาร Psychological Science ศึกษาเรื่องนี้โดยการใช้แบบสำรวจและสแกนสมองคน 264 คน เพื่อดูว่าเป็นคนที่มีแนวโน้มจะรีบจัดการกับภารกิจตรงหน้าอย่างรวดเร็วแค่ไหน นักวิจัยพบว่ามีสมองอยู่สองส่วนที่เป็นตัวกำหนดว่าเราจะลงมือทำภารกิจตรงหน้าให้เสร็จ หรือเลื่อนเวลาออกไปเรื่อย ๆ งานวิจัยพบว่าคนที่ชอบผัดวันประกันพรุ่งนั้น มีสมองส่วนที่เรียกว่า อมิกดาลา (amygdala) ซึ่งมีลักษณะคล้ายเมล็ดอัลมอนด์ ทำหน้าที่ควบคุมเหตุผลและอารมณ์ ใหญ่กว่า และการเชื่อมต่อของสมองส่วนที่เรียกว่าอมิกดาลา กับส่วนล่างของสมองบริเวณที่เรียกว่า anterior cingulate cortex ไม่ดีเท่าคนอื่น ซึ่งจะมีผลให้สามารถจัดการกับอารมณ์และสิ่งเร้าที่เข้ามารบกวนน้อยกว่า อันจะส่งผลต่อความแน่วแน่ในการจัดการกับภารกิจตรงหน้า การผัดวันประกันพรุ่งเป็นเรื่องการจัดการ "อารมณ์" ไม่ใช่ "เวลา" แอร์ฮัน เก็นค์ หนึ่งในผู้เขียนงานวิจัยนี้ ซึ่งประจำอยู่ที่มหาวิทยาลัยรัว เมืองโบคุม ระบุว่า คนที่มีสมองส่วนอมิกดาลาใหญ่กว่าคนอื่นอาจจะวิตกกังวลว่าหากตัวเองลงมือทำอะไรแล้วจะเกิดผลลัพธ์ที่ไม่ดีตามมา ดังนั้นคนเหล่านี้จึงมีแนวโน้มที่จะลังเลและผัดวันประกันพรุ่ง ศ. ทิม พิชชิล จากมหาวิทยาลัยคาร์ลตัน ที่เมืองออตตาวา ผู้ศึกษาเรื่องการผัดวันประกันพรุ่งมาหลายทศวรรษ เชื่อว่า นี่เป็นปัญหาของการจัดการกับอารมณ์มากกว่าจัดการเวลา โดยบอกว่า งานวิจัยชิ้นนี้ได้ชี้ให้เห็นว่า ผู้ที่ชอบผัดวันประกันพรุ่งมีปัญหาเรื่องการควบคุมอารมณ์ และสมองส่วนที่ใช้ในการจัดการอารมณ์สามารถครอบงำความสามารถในการจัดระเบียบตัวเองได้ ศ.พิชชิล บอกต่ออีกว่า การเปลี่ยนแปลงของสมองเกิดขึ้นได้ และเคยมีงานวิจัยที่ชี้ให้เห็นว่าการฝึกสติและทำสมาธิมีความเกี่ยวข้องกับการหดตัวของสมองส่วนอมิกดาลา และการขยายตัวของส่วนหน้าของสมองกลีบหน้าผาก (pre-frontal cortex) และทำให้การเชื่อมต่อระหว่างสมองทั้งสองส่วนนั้นอ่อนแอลง ดร.แคโรไลน์ ชลึทเทอร์ หัวหน้าทีมวิจัยในครั้งนี้ บอกว่า สมองของคนเรามีความสามารถในการตอบสนอง และเปลี่ยนแปลงได้ตลอดชีวิต คำแนะนำสำหรับผู้ชอบผัดวันประกันพรุ่ง -หากคุณไม่มีกำหนดเส้นตาย ก็ให้กำหนดเวลาในการทำงานแทน เช่น ทำงาน 25 นาที และหยุดพัก 5 นาที หรือพักนานกว่านั้น หากกำหนดเวลาทำงานไว้ 90 นาที -เขียนภารกิจที่คุณต้องทำทั้งหมด จากนั้นแบ่งภารกิจแต่ละอย่างออกเป็นส่วน ๆ เพื่อให้ทำงานแต่ละชิ้นเสร็จง่ายขึ้น -พยายามลดสิ่งที่จะมารบกวนความสนใจ เช่น ปิดเสียงเตือนอีเมล ปรับโทรศัพท์มือถือให้เป็นโหมดสำหรับขึ้นเครื่องบิน หรือไปทำงานในที่ ๆ คุณจะไม่ถูกรบกวน -แทนที่จะทำงานที่ต้องทำ เราอาจจะเอาเวลาไปทำอย่างอื่น และบอกตัวเองว่าเราไม่ว่าง แต่หากจริง ๆ แล้วคุณมีเวลา คุณก็ต้องลงมือทำงานนั้นเสีย'],
        ['ลิงกังญี่ปุ่นหรือ "ลิงหิมะ" เป็นตัวดึงดูดนักท่องเที่ยวให้มาชมความน่ารักขณะแช่ตัวในบ่อน้ำพุร้อน เจ้าหน้าที่ของสวนสัตว์ชี้แจงว่า จำต้องฉีดยาให้ลิงกลุ่มนี้ตายเพื่อปกป้องระบบนิเวศของท้องถิ่น เพราะลิงวอกนั้นถือเป็นสัตว์ต่างถิ่นที่ต้องห้ามไม่ให้นำมาเลี้ยงหรือครอบครองตามกฎหมายของญี่ปุ่น นอกจากนี้ การเลี้ยงสัตว์ที่เกิดจากการผสมข้ามพันธุ์กับสัตว์ต่างถิ่นก็ถือว่าผิดกฎหมายด้วย ทางสวนสัตว์จัดให้มีการทำบุญอุทิศส่วนกุศลแก่ลิงหิมะกลุ่มนี้ ที่วัดพุทธแห่งหนึ่งในบริเวณใกล้เคียง โดยผู้คนต่างมองว่าเป็นเรื่องน่าเศร้าอย่างยิ่งที่ต้องกำจัดลิงกลุ่มนี้ เพราะลิงหิมะนั้นเป็นลิงที่ชาวญี่ปุ่นและชาวต่างประเทศรู้จักกันเป็นอย่างดี จนภาพฝูงลิงแช่ตัวในบ่อน้ำพุร้อนกลางหิมะของฤดูหนาวกลายเป็นสัญลักษณ์หนึ่งของญี่ปุ่นที่โด่งดังไปทั่วโลก และเป็นสิ่งดึงดูดให้นักท่องเที่ยวเดินทางมาชมความน่ารักของพวกมันปีละเป็นจำนวนมาก เจ้าหน้าที่จากสำนักงานบริหารจัดการสัตว์สายพันธุ์ต่างถิ่น สังกัดกระทรวงสิ่งแวดล้อมของญี่ปุ่นชี้แจงว่า ไม่อาจหลีกเลี่ยงการกำจัดลิงพันธุ์ผสมกลุ่มนี้ด้วยการทำให้ตายได้ เพราะลิงอาจหลบหนีจากสวนสัตว์เปิดเข้าไปแพร่พันธุ์ในธรรมชาติ จนสร้างความเสียหายต่อระบบนิเวศในวงกว้างตามมาได้ ด้านนายจุนคิจิ มิมะ ผู้แทนกองทุนสัตว์ป่าโลก (WWF) บอกกับสำนักข่าวเอเอฟพีว่า กรณีที่เกิดขึ้นนั้นมาจากสายพันธุ์ต่างถิ่นที่เป็นปัญหา โดยสัตว์ต่างถิ่นที่บุกรุกเข้ามานี้อาจผสมพันธุ์กับสัตว์สายพันธุ์ประจำถิ่น ซึ่งนับว่าเป็นภัยต่อสภาพแวดล้อมตามธรรมชาติและระบบนิเวศของญี่ปุ่น'],
    ],

outputs=[gr.HTML()])

print(f'\nINFO: transformers.__version__: {transformers.__version__}')

demo.launch()