import streamlit as st import pandas as pd import numpy as np import ast from step1 import clean_oscar_text, clean_mc4_text from step2_perplexity import sample_text_back, classify_spam, load_model load_model() TEXT_AREA_HEIGHT = 520 def filter_pattern(x): return x st.title('System DEMO') sample_text = """[ 'แจกโปรโมชั่นพิเศษ! เพียงสมัครสมาชิกใหม่และฝากเงินเข้ามาเริ่มต้นที่ 500 บาท คุณก็จะได้รับโบนัสเครดิตฟรีเพิ่มอีก 200 บาทจากเราทันที ไม่ต้องรอนาน พร้อมรับสิทธิพิเศษลุ้นรับของรางวัลพรีเมี่ยมมากมาย อาทิ รถยนต์ คอนโดฯ หรือทริปท่องเที่ยวสุดหรู เพียงโทร 088-345-7890 (คุณแพร จิตร์มณี) กดปุ่มรับสิทธิ์วันนี้', 'นี่คือภาพสุดเร้าร้อนจากการถ่ายแบบนิตยสาร Maxim ฉบับล่าสุด ของนางเอกสาว "มิลาวดี หวานนาง" สวย เป๊ะ ปัง ร้อนแรงแซ่บจับใจทุกสัดส่วน อย่าพลาดกับเบอร์ติดต่อสั่งซื้อ 098-765-4321 (คุณน้องนุช มารศรี) ให้ส่งรูปไฟลำบากตามาด้วยนะจ๊ะ', 'ขายนมผึ้งป่าดิบจากเมืองลำปางแท้ 100% ไม่มีผสมน้ำตาลหรือสารปนเปื้อนแม้แต่น้อย สดใหม่จากรังผึ้งดอยสูง อร่อยถึงรสถึงกลิ่น บำรุงร่างกายสุขภาพดีเยี่ยม สนใจสั่งซื้อติดต่อคุณชายเฉลิมชัย โทร. 089-222-4567 หรือทางไลน์ iD: chaleamchaihoney ราคาพิเศษ 690 บาท/กระปุก', 'สาวๆสายแก้มมุ้งมิ้ง เตรียมพร้อมสำหรับเทศกาลผิวกระจ่างใสที่กำลังจะมาถึงนี้! โปรเด็ดสุดคุ้มจากร้าน Glowlicious Skincare แนะนำผลิตภัณฑ์ทำความสะอาดผิวหน้าขั้นเทพ ล้างสิ่งสกปรกและซิลิโคนได้อย่างหมดจด เนื้อแนบเนียนนุ่มลื่น ปราศจากน้ำมันส่วนเกิน มีวิตามินเอสูง เหมาะสำหรับผิวมันและผิวผสม ราคาเพียง 499 บาท จากปกติ 799 บาท เพื่อนๆสนใจสอบถามรายละเอียดเพิ่มเติมได้ที่ ไลน์ glowliciousskin หรือดูจากแคตตาล็อกที่แนบมา', 'โปรดระวัง! ข้อความและลิงก์ที่คุณได้รับนั้นเป็นการหลอกลวงและมิจฉาชีพ บริษัทมากระดกรายได้ไม่ได้จัดโปรโมชั่นดังกล่าวแต่อย่างใด ขอให้อภัยในความไม่สะดวกครับ ทางเราจะไม่ยอมรับข้อเสนอจากหมายเลขที่ไม่ระบุชื่อผู้ติดต่อที่แน่ชัดและไม่ได้เป็นพนักงานของทางบริษัท โปรดงดโอนเงินหรือทำธุรกรรมใดๆ จากที่ไม่เชื่อถือได้ และติดต่อเจ้าหน้าที่ของเราเพื่อรับข้อมูลที่ถูกต้องต่อไป', 'ถ้าอยากรวยเร็ว ลองมาเล่นพนันกับ ขุนพลอดุลย์คาสิโน สนุกครบรสได้ทั้งเงินและบริการนวดฟรีจากสาวสวย โทร. 099-888-7777', 'สวัสดีจ๊ะ! วันนี้ขายส้มโอนะคะ ส้มโอสดป้ายแดง อร่อยมากค่า ดูมั่งมี้ทั้งภาพและวิดีโอลามกห้ามพลาดเด็ดขาดจร้า', 'สื่อลามกออนไลน์คุณภาพสูงสุด XXX69 ถ่ายทำเองโดยนางเอกจริงๆ พร้อมเบอร์ติดต่อสั่งซื้อ 088-123-4567 (นางสาวก๊กเอ้ย)', 'พลาดไม่ได้ ผลิตภัณฑ์อาหารเสริมดัชชี่วิตตาไก่ขาย 390 บาท ผสมน้ำเปล่าสำหรับผู้หญิง ไลน์ไอดีduchayfc สนใจสั่งซื้อด่วน', 'หนีความจริงได้ที่นี่ สิทธิพิเศษพนันบอลฟรีทั้งวัน เราให้เครดิตแรกเข้า 1,000 คะแนน 0-222-33444 (คุณก้อยนวล) กดวันนี้ด่วน', 'ในยามเช้าที่สดใส พร้อมแสงอรุณอันงดงามของดวงอาทิตย์ ฉันรู้สึกได้ถึงพลังสดชื่นและความหวังใหม่ที่จะเติมเต็มวันนี้ด้วยความสำเร็จและความสุขที่ยั่งยืน ช่างเป็นภาพที่สวยงามและทรงพลังจริงๆ ที่ได้ต้อนรับวันใหม่อันน่าตื่นเต้นนี้', 'หนังสือเล่มนี้ได้พรรณนาเรื่องราวชีวิตของนักเดินทางผู้กล้าหาญที่ได้ผจญภัยข้ามพรมแดนไปยังดินแดนห่างไกล เขาได้สัมผัสกับวัฒนธรรมและประเพณีที่แตกต่าง ได้เห็นธรรมชาติที่งดงามและสมบูรณ์แบบ รวมถึงได้พบกับความท้าทายและอุปสรรคนานัปการ แต่ด้วยความมุ่งมั่นและพลังใจที่เข้มแข็ง เขาสามารถฟันฝ่าอุปสรรคเหล่านั้นไปได้', 'ในสวนผลไม้แห่งนี้ มีต้นไม้นานาพันธุ์ที่ออกผลสุกงอมในทุกฤดูกาล เราสามารถเก็บเกี่ยวผลไม้สดใหม่จากธรรมชาติได้ตลอดทั้งปี ไม่ว่าจะเป็นส้ม กล้วย ชมพู่ มะม่วง หรือทุเรียนอร่อยนัว เราจะได้ลิ้มรสความหวานกรุ่นและรสชาติดั้งเดิมที่แสนจะน่าปลื้ม', 'เมืองนี้มีประวัติศาสตร์ความเป็นมาที่ยาวนานและน่าสนใจ ตั้งแต่สมัยโบราณกาลที่เคยเป็นอาณาจักรใหญ่ มีอารยธรรมรุ่งเรืองสมบูรณ์พูนสุข จนกระทั่งถึงยุคปัจจุบันที่ก้าวสู่ความทันสมัยอย่างมั่นคง เรายังสามารถชมร่องรอยแห่งอดีตที่ปรากฏในสถาปัตยกรรมและศิลปวัฒนธรรมดั้งเดิม ซึ่งหลอมรวมกับเทคโนโลยีสมัยใหม่อย่างลงตัว', ]""" input_texts = st.text_area("input a list of texts", value=sample_text, key="input", height=TEXT_AREA_HEIGHT) st.write(f'You wrote {len(input_texts)} characters.') input_texts = ast.literal_eval(input_texts) with st.expander("See Cleansing Steps"): st.header('STEP 1: Pattern Filtering') texts = [clean_oscar_text(clean_mc4_text(text_)) for text_ in input_texts] st.text_area("after process", value=texts, key="step1", disabled=True, height=TEXT_AREA_HEIGHT) st.header('STEP 2: Perplexity Filtering') log_prob = [classify_spam(text_)[1] for text_ in texts] step2_sample = sample_text_back(texts, log_prob) st.text_area("after process", value=texts, key="step2", disabled=True, height=TEXT_AREA_HEIGHT) st.header('STEP 3: Deduplicated by Similarity') texts = [filter_pattern(t) for t in input_texts] st.text_area("after process", value=texts, key="step3", disabled=True, height=TEXT_AREA_HEIGHT) st.header('STEP 4: Deduplicated by Exact Matching') texts = [filter_pattern(t) for t in input_texts] st.text_area("after process", value=texts, key="step4", disabled=True, height=TEXT_AREA_HEIGHT) st.header('STEP 5: Decontamination') texts = [filter_pattern(t) for t in input_texts] st.text_area("after process", value=texts, key="step5", disabled=True, height=TEXT_AREA_HEIGHT) st.header('STEP 6: Anonymization') texts = [filter_pattern(t) for t in input_texts] st.text_area("after process", value=texts, key="step6", disabled=True, height=TEXT_AREA_HEIGHT) st.header('Output') st.text_area("output after cleansing", value=sample_text, key="output", height=TEXT_AREA_HEIGHT)