diff --git a/make-dataset.ipynb b/make-dataset.ipynb new file mode 100644 index 00000000..353143ff --- /dev/null +++ b/make-dataset.ipynb @@ -0,0 +1,480 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import glob\n", + "import os\n", + "import pandas as pd\n", + "import re\n", + "from unicodedata import normalize\n", + "from tqdm.auto import tqdm\n", + "import re\n", + "# as per recommendation from @freylis, compile once only\n", + "CLEANR = re.compile('<.*?>') \n", + "\n", + "def cleanhtml(raw_html):\n", + " cleantext = re.sub(CLEANR, '', raw_html)\n", + " return cleantext" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# def clean(path):\n", + "# text = ''\n", + "# page_view_line=0\n", + "# with open(path,\"r\",encoding=\"utf-8-sig\") as f:\n", + "# for n, line in enumerate(f):\n", + "# line = line.strip()\n", + "# if n == 0:\n", + "# text = line + '\\n'\n", + "# else:\n", + "# if line:\n", + "# if re.match(r'^[\\d,]+$', line):\n", + "# page_view_line = n\n", + "# continue\n", + "# if line == 'พิมพ์' and page_view_line and page_view_line < n: # skip 'print'\n", + "# continue\n", + "# if re.match(r'^ที่มา : http', line):\n", + "# text = text + '\\n\\n' + line + '\\n'\n", + "# else:\n", + "# text = text + '\\n' + line\n", + "# return cleanhtml(normalize('NFKD', text)).strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def clean(path):\n", + " text={\"title\":\"\",\"context\":\"\",\"url\":\"\"}\n", + " page_view_line = 0\n", + " with open(path, 'r', encoding='utf-8-sig') as f:\n", + " for n, line in enumerate(f):\n", + " line = line.strip()\n", + " if n == 0: # title line\n", + " text[\"title\"] = line.strip()\n", + " else:\n", + " if line:\n", + " if re.match(r'^[\\d,]+$', line):\n", + " page_view_line = n\n", + " continue\n", + " if line == 'พิมพ์' or page_view_line and page_view_line < n: # skip 'print'\n", + " continue\n", + " if re.match(r'^ที่มา : http', line):\n", + " text[\"url\"] = line.strip().split(\" \")[-1]\n", + " else:\n", + " text[\"context\"] +=line.strip().replace(\"\\xa0\",\"\")+\"\\n\"\n", + " text[\"context\"]=cleanhtml(normalize('NFKD', text[\"context\"])).strip()\n", + " return text" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'title': 'รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-6 Trick ธุรกิจร้านอาหาร ปรับตัวต้าน COVID -19 [กระทรวงอุตสาหกรรม]',\n", + " 'context': 'วันอังคารที่ 14 เมษายน 2563\\n6 Trick ธุรกิจร้านอาหาร ปรับตัวต้าน COVID -19 [กระทรวงอุตสาหกรรม]\\n6 Trick ธุรกิจร้านอาหาร ปรับตัวต้าน COVID -19\\nในช่วงที่ไวรัสCOVID-19กําลังระบาดอย่างหนัก ธุรกิจร้านอาหารเป็นหนึ่งในธุรกิจที่ได้รับผลกระทบมากที่สุด เนื่องจากมาตรการต่าง ๆ ที่ลดการพบปะของผู้คนและการตระหนักระวังตัวมากขึ้นของลูกค้า วันนี้เราจึงมี6 Trickที่จะเป็นแนวทางให้ผู้ประกอบการธุรกิจร้านอาหารปรับตัวสู้กับภัยCOVID-19ได้ มาดูพร้อม ๆ กันว่ามีแนวทางใดที่เหมาะสมและสามารถนําไปปรับใช้ได้บ้าง\\n1.บริการจัดส่งแบบDelivery\\nเมื่อลูกค้าต่างหลีกเลี่ยงการเดินทางออกจากที่พักอาศัย การจัดส่งถึงบ้านแบบDeliveryจึงถือเป็นตัวเลือกที่ทุกร้านจําเป็นต้องทําในช่วงวิกฤตนี้ ร้านอาหารรายย่อยที่ไม่เคยสมัครใช้บริการธุรกิจจัดส่งอาหารจึงควรดําเนินการสมัครในทันที เนื่องจากต้องใช้เวลาประมาณ7วันจึงสามารถเริ่มต้นใช้งานได้หรืออาจทําการจัดส่งด้วยตัวเองก็ได้เช่นกัน นอกจากนั้น ร้านอาหารควรต้องเพิ่มสัดส่วนบริการจัดส่ง ตระเตรียมบรรจุภัณฑ์สําหรับใส่อาหารเพื่อการจัดส่งให้เหมาะสมอีกด้วย\\n2.การจัดส่งแบบไร้สัมผัส (Contactless Delivery)\\nสําหรับร้านค้าที่ดําเนินการจัดส่งด้วยตัวเอง เช่น ร้านปาท่องโก๋ที่มีบริการจัดส่งให้ลูกค้าทุกเช้า ควรเพิ่มมาตรการจัดส่งแบบไร้สัมผัส เพื่อสร้างความมั่นใจและปลอดภัยให้กับทั้งลูกค้าและคนจัดส่งเอง โดยมีวิธีการคือให้ลูกค้าชําระเงินด้วยบัตรเครดิตหรือช่องทางการชําระเงินออนไลน์ต่าง ๆ และเชิญลูกค้าหยิบถุงบรรจุอาหาร\\nออกจากกระเป๋าจัดส่งเอง โดยเว้นระยะห่างในการยืนรอของผู้ส่งประมาณ1-2เมตร\\n3.การขายเฉพาะหน้าร้าน (Take Home only)\\nจากมาตรการลดการพบปะกันในสังคม ส่งผลให้ร้านอาหารต้องปรับรูปแบบการบริการใหม่โดยไม่ให้ลูกค้านั่งรับประทานในร้านและให้ลูกค้าซื้อกลับไปรับประทานที่บ้านเท่านั้น แต่ขณะเดียวกันก็อาจจัดให้มีโปรโมชั่นจูงใจมากขึ้น เนื่องจากการซื้อกลับบ้านเป็นการลดค่าใช้จ่ายในการจัดเก็บและให้บริการของร้านอาหารอยู่แล้ว\\n4.ปรับพื้นที่ให้เป็นSocial Distancing\\nร้านอาหารควรจัดพื้นที่สําหรับการต่อแถวซื้ออาหารที่กลับบ้าน (Take Home only)ให้สอดคล้องกับการทําSocial Distancingหรือการเว้นระยะห่างทางสังคม โดยกําหนดพื้นที่ยืนต่อแถวซึ่งแต่ละตําแหน่งควรมีระยะห่างกันอย่างน้อย1–2เมตร พร้อมทั้งปรับพื้นที่ต่อแถวให้โล่งเพื่อให้อากาศถ่ายเทได้สะดวก\\n5.เพิ่มมาตรการทําความสะอาด\\nเพื่อให้เกิดความปลอดภัยและมั่นใจทั้งต่อตัวลูกค้าและพนักงานในร้าน ผู้ประกอบการควรเพิ่มมาตรการทําความสะอาดที่เข้มงวดมากขึ้น ด้วยการฉีดพ่นแอลกอฮอล์ ล้างน้ํายาฆ่าเชื้อ แจกหน้ากากอนามัยและถุงมือให้กับพนักงาน รวมถึงการทําความสะอาดภาชนะให้ดีเป็นพิเศษ โดยทางร้านควรประชาสัมพันธ์มาตรการเหล่านี้ผ่านช่องทางต่าง ๆ เพื่อสร้างความมั่นใจให้กับลูกค้าและพนักงานได้ด้วย\\n6.จัดทําVoucherพิเศษ สําหรับใช้บริการหลังสิ้นสุดวิกฤต\\nหนึ่งไอเดียที่จะช่วยเพิ่มรายได้ให้ร้านอาหารในยามวิกฤต คือการจัดทําบัตรVoucherขายให้แก่ลูกค้าเพื่อให้ลูกค้าสามารถนํากลับมาใช้บริการได้เมื่อสถานการณ์ดีขึ้น โดยจัดเป็นราคาโปรโมชั่นที่ถูกกว่าปกติเพื่อดึงดูดให้ลูกค้าซื้อเก็บไว้ใช้ เพื่อให้ผู้ประกอบการสามารถนํารายได้ในส่วนนี้มาแบ่งเบาภาระค่าใช้จ่ายต่าง ๆ ที่เกิดในปัจจุบัน ทั้งนี้ผู้ประกอบการจําเป็นต้องบริหารจัดการเงินทุนให้ดี เพื่อให้มีทุนสํารองไว้ดําเนินกิจการต่อหลังจากฟื้นจากวิกฤตแล้วด้วย\\nอ้างอิง:\\nhttps://www.smethailandclub.com/marketing-5583-id.html',\n", + " 'url': 'https://www.thaigov.go.th/news/contents/details/29063'}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clean(\"./thaigov2-9/ข่าวทันสถานการณ์โควิด-19_1.txt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "list_text = list(glob.glob(os.path.join(\"*\",\"*.txt\")))+list(glob.glob(os.path.join(\"*\",\"*\",\"*.txt\")))+list(glob.glob(os.path.join(\"*\",\"*\",\"*\",\"*.txt\")))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "list_text=list(set(list_text))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "28555" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(list_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8dd821c37a04492e8652a3ea6be3ffce", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/28555 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlecontexturl
0รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-“O2O-Village Groce...วันอังคารที่ 23 ตุลาคม 2561\\n“O2O-Village Groc...https://www.thaigov.go.th/news/contents/detail...
1รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-กระทรวงเกษตรและสหก...วันพุธที่ 14 มีนาคม 2561\\nกระทรวงเกษตรและสหกรณ...http://www.thaigov.go.th/news/contents/details...
2รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-รองนายกรัฐมนตรี อน...วันอังคารที่ 17 มีนาคม 2563\\nรองนายกรัฐมนตรี อ...https://www.thaigov.go.th/news/contents/detail...
3รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-นายกรัฐมนตรีกล่าวถ...วันจันทร์ที่ 29 มกราคม 2561\\nนายกรัฐมนตรีกล่าว...http://www.thaigov.go.th/news/contents/details...
4รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-รัฐมนตรีเกษตรฯ เผย...วันพฤหัสบดีที่ 27 เมษายน 2560\\nรัฐมนตรีเกษตรฯ ...http://www.thaigov.go.th/news/contents/details...
............
28550รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-พาณิชย์เผยญี่ปุ่นน...วันจันทร์ที่ 30 ตุลาคม 2560\\nพาณิชย์เผยญี่ปุ่น...http://www.thaigov.go.th/news/contents/details...
28551รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-ปิดประชุมผู้นำอาชี...วันอังคารที่ 6 สิงหาคม 2562\\nปิดประชุมผู้นําอา...https://www.thaigov.go.th/news/contents/detail...
28552รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-ม.ล.ปนัดดาฯ เสริมส...วันพุธที่ 23 พฤษภาคม 2561\\nม.ล.ปนัดดาฯ เสริมสร...http://www.thaigov.go.th/news/contents/details...
28553รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-เปิดตัวหุ่นยนต์บริ...วันอังคารที่ 27 ธันวาคม 2559\\nเปิดตัวหุ่นยนต์บ...http://www.thaigov.go.th/news/contents/details...
28554รัฐบาลไทย-ข่าวทำเนียบรัฐบาล- ปลัด พม. เปิดงาน ...วันอาทิตย์ที่ 2 เมษายน 2560\\nปลัด พม. เปิดงาน ...http://www.thaigov.go.th/news/contents/details...
\n", + "

28555 rows × 3 columns

\n", + "" + ], + "text/plain": [ + " title \\\n", + "0 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-“O2O-Village Groce... \n", + "1 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-กระทรวงเกษตรและสหก... \n", + "2 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-รองนายกรัฐมนตรี อน... \n", + "3 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-นายกรัฐมนตรีกล่าวถ... \n", + "4 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-รัฐมนตรีเกษตรฯ เผย... \n", + "... ... \n", + "28550 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-พาณิชย์เผยญี่ปุ่นน... \n", + "28551 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-ปิดประชุมผู้นำอาชี... \n", + "28552 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-ม.ล.ปนัดดาฯ เสริมส... \n", + "28553 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล-เปิดตัวหุ่นยนต์บริ... \n", + "28554 รัฐบาลไทย-ข่าวทำเนียบรัฐบาล- ปลัด พม. เปิดงาน ... \n", + "\n", + " context \\\n", + "0 วันอังคารที่ 23 ตุลาคม 2561\\n“O2O-Village Groc... \n", + "1 วันพุธที่ 14 มีนาคม 2561\\nกระทรวงเกษตรและสหกรณ... \n", + "2 วันอังคารที่ 17 มีนาคม 2563\\nรองนายกรัฐมนตรี อ... \n", + "3 วันจันทร์ที่ 29 มกราคม 2561\\nนายกรัฐมนตรีกล่าว... \n", + "4 วันพฤหัสบดีที่ 27 เมษายน 2560\\nรัฐมนตรีเกษตรฯ ... \n", + "... ... \n", + "28550 วันจันทร์ที่ 30 ตุลาคม 2560\\nพาณิชย์เผยญี่ปุ่น... \n", + "28551 วันอังคารที่ 6 สิงหาคม 2562\\nปิดประชุมผู้นําอา... \n", + "28552 วันพุธที่ 23 พฤษภาคม 2561\\nม.ล.ปนัดดาฯ เสริมสร... \n", + "28553 วันอังคารที่ 27 ธันวาคม 2559\\nเปิดตัวหุ่นยนต์บ... \n", + "28554 วันอาทิตย์ที่ 2 เมษายน 2560\\nปลัด พม. เปิดงาน ... \n", + "\n", + " url \n", + "0 https://www.thaigov.go.th/news/contents/detail... \n", + "1 http://www.thaigov.go.th/news/contents/details... \n", + "2 https://www.thaigov.go.th/news/contents/detail... \n", + "3 http://www.thaigov.go.th/news/contents/details... \n", + "4 http://www.thaigov.go.th/news/contents/details... \n", + "... ... \n", + "28550 http://www.thaigov.go.th/news/contents/details... \n", + "28551 https://www.thaigov.go.th/news/contents/detail... \n", + "28552 http://www.thaigov.go.th/news/contents/details... \n", + "28553 http://www.thaigov.go.th/news/contents/details... \n", + "28554 http://www.thaigov.go.th/news/contents/details... \n", + "\n", + "[28555 rows x 3 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "ds = Dataset.from_pandas(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0ee92ce25fd245408246a3c086c3eb7f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Uploading the dataset shards: 0%| | 0/1 [00:00