Sufficiency Economy
Group Blog
 
All blogs
 

ทดลอง Natural Language Toolkit

ตอนแรก กะจะศึกษาพวก NLP โดยใช้พวกภาษา prolog หรือ lisp แต่ค้นไปค้นมา มาเจอ  Natural Language Toolkit แทน และที่ชอบก็คือ base บน python นั้นเอง

ไปที่ web //www.nltk.org
แล้วก็ติดตั้งตามขั้นตอน
1 Install Setuptools: //pypi.python.org/pypi/setuptools
2 Install Pip: run sudo easy_install pip
3 Install Numpy (optional): run sudo pip install -U numpy
4 Install NLTK: run sudo pip install -U nltk
5 Test installation: run python then type import nltk

แต่ก็มาเจอปัญหาในขั้นแรกเลย ประมาณว่ามีสิทธิ์ในการลง ทั้งที่ใช้คำสั่ง sudo แล้ว เลยมั่วไปทำขั้นตอน 2-5 ก็ ok งงอีกแล้วว หุๅ

ต่อจากนั้น เราสามารถ โหลดข้อมูลตัวอย่างในหนังสือด้วยคำสั่ง
nltk.download() รอสักพัก ก็ได้ข้อมูลมา
หนังสือก็เล่มนี้


ลองค้นไปก็พบโปรแกรม ELIZA module ตามอ่านได้ที่ //en.wikipedia.org/wiki/ELIZA
โดยพิมพ์คำสั่ง

nltk.chat.eliza.demo()

แล้วก็คุยกับคอม ?? มั่วๆ ก็ประมาณในรูป น่าจะคล้าย siri แต่ siri ฉลาดกว่าเยอะ 555


และก็มี bot chat อีกหลายตัว หารายละเอียดที่

//www.nltk.org/api/nltk.chat.html#module-nltk.chat

และน่าจะเขียน bot chat ได้ด้วย แต่ภาษาไทยคง ไม่ได้มัง

ดูแล้วมีอะไรที่น่าศึกษาอีกเยอะ ค่อยแกะล่ะกัน 





 

Create Date : 14 กรกฎาคม 2557    
Last Update : 14 กรกฎาคม 2557 20:28:58 น.
Counter : 2339 Pageviews.  

python + ubuntu + japanese + write binary file ?

  ตอนนี้อยากทดสอบว่า python ที่เขียน บน windows สามารถนำไปใช้ใน linux ได้หรือไม่
จึงเกิดเป็น post นี้ขึ้นมา
1. สามารถใช้ได้โดยต้องปรับแก้นิดหน่อย เช่น
การระบุภาษา ต้องใส่ #-*-coding:utf-8-*-
เนื่องจากเป็น utf-8 จึงใส่ภาษาอื่นได้ ในที่นี้คือ ภาษาญี่ปุ่น
2. การอ่านข้อมูล binary file ก็ทำได้ โดยที่ต้องการคือการเปลี่ยนค่า byte ในตำแหน่งที่ต้องการ เช่นที่ 0x04 ต้องการเปลี่ยนเป็น 0x44  ก็ทำได้ตาม list code ด้านล่าง และที่สำคัญต้องกำหนด mode ให้เหมาะสม ในที่นี้คือ rb+ หมายถึง READ WRITE binary file โดยต้องมีไฟล์อยู่แล้ว
3. โปรแกรม bless hex editor ใช้ได้ดีทีเดียว แต่มีงงตรงการ save นิดหน่อย คือถ้าเราเพิ่มจำนวน byte (append data) จะต้องใช้ save as ใช้คำสั่ง save ไม่ได้ โปรแกรมจะฟ้องว่าพื้นที่ไม่พอ
4. ต้องติด module Tkinter โดย พิมพ์ sudo apt-get install python-tk


เพิ่มเติม วิธีตั้งค่าให้พิมพ์ภาษาญีุ่่ปุ่นได้ ทำตาม LINK นี้ครับ




 

Create Date : 04 สิงหาคม 2556    
Last Update : 4 สิงหาคม 2556 11:09:49 น.
Counter : 2543 Pageviews.  

Python + Matplotlib

พอดีมีคนมาถามเกี่ยวกับการเปิดไฟล์ .inkml แล้วนำข้อมูลมา plot ด้วย module ชื่อ matplotlib

ทำได้แล้วจึงทำมา post เพื่อมีประโยชน์ ^ ^

1. เริ่มด้วยติดตั้ง matplotlib ในwindows ส่วนลองติดตั้งใน mac แล้วไม่ work ไม่รู้เพราะอะไร

2. เรียกใช้งาน module โดย

import matplotlib.pyplot as plt;

การใช้ as plt ทำให้เราเรียกใช้ module ได้สั้นลง (เพิ่งรู้ แหะๆ)

3. ใช้ method ชื่อ plot เพื่อเขียนจุด

plt.plot(listX,listY,'r.');

โดย listX เป็นชุดข้อมูลแบบ list ของตำแหน่ง X และ

 listY เป็นชุดข้อมูลแบบ list ของตำแหน่ง Y

ส่วน r คือสีแดง ส่วน จุดคือให้ plot เป็นจุด ถ้าเปลี่ยนจุดเป็นตัวอักษรก็จะ plot เป็นตัวอักษร?

4. ส่วนที่เหลือก็คือการเปิดไฟล์ อ่านข้อมูล มาตัดให้เหมาะสม แล้วยัดใส่ list ล่ะ

code ก็ตามนี้ click เลย

ผลลัพธ์ ก็ประมาณนี้




 

Create Date : 26 พฤษภาคม 2556    
Last Update : 26 พฤษภาคม 2556 11:10:28 น.
Counter : 2024 Pageviews.  

Python อ่าน และการเขียนข้อมูลลงใน binary file

สืบเนื่องจากต้องการแปลเกม จึงจำเป็นต้องแก้ไข binary file ตอนแรกนึกว่าง่ายๆ คล้ายๆกับการอ่าน text file แต่มันไม่เหมือนส่ะทีเดียว เมื่อไปค้นใน google ก็พบวิธีทำดังนี้

กรณี1 เขียนข้อมูล 1 byte ลงไปใน binary file เริ่มจาก ...
fp = open("test1.smc","r+b") เปิดไฟล์แบบอ่านและเขียน
fp.seek(0x17,0) เลื่อนไปตำแหน่งที่ต้องการจากจุดเริ่มต้น
fp.write("x5F") ก็จะเขียนค่า 0x5F ลงไปที่ตำแหน่งนั้น
fp.close() แล้วก็ปิดไฟล์ส่ะ

กรณี2 ถ้าข้อมูลเยอะ ทำไงดี ก็...
import binascii
hb = binascii.a2b_hex("ABCAA1234B") เพื่อแปลงค่าก่อน และก็ทำเดิมคือ
fp.write(hb)
ก็เรียบร้อย ^ ^




 

Create Date : 03 ตุลาคม 2555    
Last Update : 3 ตุลาคม 2555 19:37:17 น.
Counter : 2139 Pageviews.  

ตัวอย่างการ load ไฟล์ จาก web mangareader.net

ที่จริงได้อธิบายวิธีการไปแล้ว แต่การปรับให้ load การ์ตูนเรื่องอื่นๆ ต้องแก้ code อย่างไร มีคนอยากรู้ ?? ^ ^

เลยขออธิบายอีกครั้ง

1. สร้างไฟล์ fileList01.txt สำหรับเก็บ link ทั้งหมดของการ์ตูนเรื่องนั้นๆ โดยใช้โปรแกรมcollectLink01.py โดยจุดที่ต้องปรับเปลี่ยนคือ

1.1 #url = "//www.mangareader.net/105/dragon-ball.html"
      url = "//www.mangareader.net/207/hunter-x-hunter.html"

1.2 #startFromLine = 157
      startFromLine = 150 ตัวเลข 150 คือ เลขบรรทัด ก่อนจะมี link ถ้าขี้เกียจก็กำหนดเป็น 20 ก็ได้

1.3  #if "dragon-ball" in line:
       if "hunter-x-hunter/chapter" in line:

อันนี้ต้องเก่งหน่อย คือหาลักษณะเฉพาะของ link ได้อะไร เพื่อจะได้เลือกบรรทัดได้ถูกต้อง

แล้วก็ทำการ run program จะได้ file ชื่อ fileList01.txt ซึ่งรวบรวม linkทั้งหมด

2. หาว่าแต่ละ chapter มีกี่หน้า และเก็บในรูปแบบ 10:20 แปลว่า chapter 10 มี 20 หน้า โดย run โปรแกรม collectLink02.py

3. โปรแกรมหลัก loadFileVer3.py ก็แก้ไขนิดหน่อยคือ

3.1    #url = ListCh[0] + "-" + ListCh[1] + "-" + str(num)+"/dragon-ball/chapter-" + List[0] + ".html"
         url = ListCh[0] + "-" + ListCh[1] + "-" + str(num)+"/hunter-x-hunter/chapter-" + List[0] + ".html"

ดูเองว่าต้องแก้ไขตรงไหน

3.2    #filename = "DragonBall-chapter" + List[0] +"-"+str(num)+".png"
         filename = "HxH-chapter" + List[0] +"-"+str(num)+".png"

กำหนดชื่อ file ที่จะเก็บ

3.3 #L1 = Label(tk, text="Dragonball ระบุ chapter ที่ต้องการ download มีค่า 1 ถึง 520 ", justify = LEFT)
L1 = Label(tk, text="Hunter x Hunter ระบุ chapter ที่ต้องการ download มีค่า 1 ถึง 310 ", justify = LEFT)

อันนี้ไม่มีอะไรมา แค่บอก จำนวน chapter ให้ถูกต้องเท่านั้น

บรรทัดที่มีเครื่องหมาย # หมายถึง comment  บรรทัดนั้นจะไม่ run เน้อ ^ ^

และตัวอย่างนี้เป็นของ การ์ตูนเรื่อง hunter x hunter

file โปรแกรม load ที่นี้ หรือใน blog เก่าๆ




 

Create Date : 04 กันยายน 2555    
Last Update : 4 กันยายน 2555 20:36:00 น.
Counter : 2042 Pageviews.  

1  2  3  4  5  6  7  

wink99_th
Location :
พิษณุโลก Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [?]




New Comments
Friends' blogs
[Add wink99_th's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.