<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wittawat&#039;s Blog</title>
	<atom:link href="http://wittawat.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://wittawat.com/blog</link>
	<description>The place to share what I know</description>
	<lastBuildDate>Sat, 14 Aug 2010 01:36:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ทำไมอังกฤษแบบญี่ปุ่นฟังเข้าใจยาก</title>
		<link>http://wittawat.com/blog/?p=443</link>
		<comments>http://wittawat.com/blog/?p=443#comments</comments>
		<pubDate>Sat, 14 Aug 2010 01:36:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[japanese]]></category>
		<category><![CDATA[language]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=443</guid>
		<description><![CDATA[ต่อไปนี้เป็นความเห็นส่วนตัว อาศัยประสบการณ์ ไม่ใช่นักภาษาศาสตร์ครับ ตั้งใจเขียนให้ผู้ไม่รู้ภาษาญี่ปุ่นครับ สำหรับผู้ที่เรียนภาษาญี่ปุ่นคงรู้อยู่แล้วว่าทำไมอังกฤษแบบญี่ปุ่นฟังเข้าใจยาก ภาษาญี่ปุ่น เชื่อว่าหลายคนคงเคยสื่อสารกับคนญี่ปุ่นด้วยภาษาอังกฤษ หลายครั้งหากเราเป็นฝ่ายเริ่มคุย เขาก็เดินหนีไปเฉยๆ แต่ถ้าเขาต้องการถามเรา เขาก็จำเป็นต้องใช้ภาษาอังกฤษ ก็อย่างที่หลายคนรู้ๆกันว่าภาษาอังกฤษแบบคนญี่ปุ่นฟังแล้วเหมือนมีเสียง โต๊ะๆกุๆโดะๆ แทรกขึ้นมา ทั้งๆที่คำในภาษาอังกฤษก็ไม่จำเป็นต้องออกเสียงพวกนั้น แล้วทำไมคนญี่ปุ่นถึงออกเสียงพวกนั้นล่ะ? ก่อนอื่นมาเริ่มจากข้อควรรู้ของภาษาญี่ปุ่นก่อน แบบสั้นๆ ภาษาญี่ปุ่นมีพยัญชนะและสระเหมือนอังกฤษและไทย แต่ตัวอักษรหนึ่งตัวในภาษาญี่ปุ่นรวมทั้งพยัญชนะและสระในตัว ตัวอย่างเช่น か（ka）, き（ki）, と（to）เป็นต้น　นั่นหมายความว่าภาษาญี่ปุ่นไม่สามารถสะกดคำว่า robot ได้เป๊ะๆ เพราะว่าตัวอักษรท้ายสุดของคำว่า robot คือตัว t ซึ่ง t โดดๆไม่มีในภาษาญี่ปุ่น ฉะนั้นคำนี้จึงต้องสะกดด้วย ro-bot-to &#8220;โร-บ๊อต-โตะ&#8221; ไม่ใช่แค่ &#8220;โร-บอต&#8221; ภาษาญี่ปุ่นไม่มี ti มีแต่ ち(chi) , ไม่มี tu มีแต่ つ(tsu) (อ่านคล้ายๆซึ แต่ใส่ จ เข้าไปด้วย เสียงนี้ไม่มีในภาษาไทย) , ไม่มี yi [...]]]></description>
			<content:encoded><![CDATA[<p>ต่อไปนี้เป็นความเห็นส่วนตัว อาศัยประสบการณ์ ไม่ใช่นักภาษาศาสตร์ครับ ตั้งใจเขียนให้ผู้ไม่รู้ภาษาญี่ปุ่นครับ สำหรับผู้ที่เรียนภาษาญี่ปุ่นคงรู้อยู่แล้วว่าทำไมอังกฤษแบบญี่ปุ่นฟังเข้าใจยาก</p>
<h1>ภาษาญี่ปุ่น</h1>
<p>เชื่อว่าหลายคนคงเคยสื่อสารกับคนญี่ปุ่นด้วยภาษาอังกฤษ หลายครั้งหากเราเป็นฝ่ายเริ่มคุย เขาก็เดินหนีไปเฉยๆ แต่ถ้าเขาต้องการถามเรา เขาก็จำเป็นต้องใช้ภาษาอังกฤษ ก็อย่างที่หลายคนรู้ๆกันว่าภาษาอังกฤษแบบคนญี่ปุ่นฟังแล้วเหมือนมีเสียง โต๊ะๆกุๆโดะๆ แทรกขึ้นมา ทั้งๆที่คำในภาษาอังกฤษก็ไม่จำเป็นต้องออกเสียงพวกนั้น แล้วทำไมคนญี่ปุ่นถึงออกเสียงพวกนั้นล่ะ? ก่อนอื่นมาเริ่มจากข้อควรรู้ของภาษาญี่ปุ่นก่อน แบบสั้นๆ</p>
<ol>
<li>ภาษาญี่ปุ่นมีพยัญชนะและสระเหมือนอังกฤษและไทย แต่ตัวอักษรหนึ่งตัวในภาษาญี่ปุ่นรวมทั้งพยัญชนะและสระในตัว ตัวอย่างเช่น か（ka）, き（ki）, と（to）เป็นต้น　นั่นหมายความว่าภาษาญี่ปุ่นไม่สามารถสะกดคำว่า robot ได้เป๊ะๆ เพราะว่าตัวอักษรท้ายสุดของคำว่า robot คือตัว t ซึ่ง t โดดๆไม่มีในภาษาญี่ปุ่น ฉะนั้นคำนี้จึงต้องสะกดด้วย ro-bot-to &#8220;โร-บ๊อต-โตะ&#8221; ไม่ใช่แค่ &#8220;โร-บอต&#8221;</li>
<li>ภาษาญี่ปุ่นไม่มี ti มีแต่ ち(chi) , ไม่มี tu มีแต่ つ(tsu) (อ่านคล้ายๆซึ แต่ใส่ จ เข้าไปด้วย เสียงนี้ไม่มีในภาษาไทย) , ไม่มี yi และ ye, ไม่มีอักษรวรรค v ทั้งหมด</li>
<li>ตัวสะกดโดดๆเพียงตัวเดียวของญี่ปุ่นคือ ん(n) นั่นแปลว่าญี่ปุ่นสามารถสะกดคำ เช่น กิน ได้เป๊ะ ไม่ต้อง &#8220;กิน-โน๊ะ&#8221; เพิ่มเติมคือตัว ん　นี้เขียนแทนด้วย　n ก็จริง แต่ออกเสียงได้ 3 แบบขึ้นอยู่กับว่าตัวถัดจากตัว n เป็นตัวอะไร ขอไม่กล่าวถึงที่นี้ อยากให้รู้เฉยๆว่าเสียง 3 แบบนั้นคือ n (น) , m (ม), และ ng (ง)</li>
<li>ภาษาญี่ปุ่นไม่มีวรรณยุกต์ อันนี้บอกเฉยๆ ภาษาอังกฤษก็ไม่มีเหมือนกัน</li>
<li>ภาษาญี่ปุ่นไม่มีตัว l อะไรที่เป็น l จะกลายเป็น r หมด จึงไม่แปลกที่คนญี่ปุ่นมักสะกดคำที่มีตัว l ผิด</li>
<li>ภาษาญี่ปุ่นไม่มีการแยก &#8220;ท&#8221; กับ &#8220;ต&#8221; เป็น 2 ตัว จุดนี้เหมือนภาษาอังกฤษ</li>
</ol>
<h1>การแปลงเสียงญี่ปุ่นให้เป็นอังกฤษ</h1>
<p>ถึงจุดนี้คิดว่าคงพอเข้าใจว่าทำไมภาษาอังกฤษแบบญี่ปุ่นถึงมีเสียงแปลกๆเข้ามา ต่อไปนี้เป็นหลักง่ายๆที่ช่วยในการฟังอังกฤษแบบญี่ปุ่นได้</p>
<ol>
<li>คำอังกฤษที่มีตัวสะกดด้วย t หรือ d เวลาออกเสียงจะกลายเป็น to หรือ do หลักง่ายๆคือถ้าได้ยินเสียงพวกนี้ตอนท้ายคำ ก็ไม่ต้องสนใจมาก</li>
<li>คำที่มีตัวสะกดเป็น k จะกลายเป็น ku เช่น นุ้ก จะกลายเป็น &#8220;นุ้ก-ขุ&#8221; ถ้าได้ยินเสียงอะไร ขุๆคุๆ ก็ไม่ต้องสนใจมาก คำที่สะกดด้วย b, p จะกลายเป็น bu, pu เช่นกัน</li>
<li>คำอะไรที่มีเสียง &#8220;เออ&#8221; จะกลายเป็นเสียง &#8220;อา&#8221; เช่น inter เป็น &#8220;อิน-ตา&#8221; , barber ก็กลายเป็น &#8220;บา-บ้า&#8221;</li>
<li>เสียง th คนไทยมักบอกว่าใกล้กับ t แต่ญี่ปุ่นบอกใกล้กับ &#8220;ส&#8221; ไม่ก็ &#8220;ฟ&#8221; มากกว่า ฉะนั้นคำว่า mother ใช้กฏข้อนี้กับข้อที่แล้วจึงได้เป็น &#8220;มา-ซ่า&#8221; คำที่คนได้ยินแล้วงงบ่อยคงเป็นคำว่า the คนไทยออกเสียง &#8220;เดอะ&#8221; คนญี่ปุ่นออกเสียง&#8230;. ใช่แล้วเขาออกเสียงว่า &#8220;สะ&#8221; (เสียงสั่นๆนิดหน่อยเหมือน z)</li>
<li>คำที่มีตัว v จะกลายเป็นตัว b ฉะนั้นคำเช่น love &#8230; เปลี่ยนเสียงเออเป็นเสียงอา เปลี่ยน v เป็น b และเปลี่ยน l เป็น r คำว่า love ในภาษาญี่ปุ่นจึงกลายเป็น &#8220;รา-บุ&#8221; （ラブ）</li>
<li>อะไรที่มีเสียง ble (&#8220;เบิ้ล&#8221;) เช่น table จะกลายเป็น &#8220;เท-บุ-รุ&#8221; （テーブル）　คล้ายกันอะไรที่มีเสียง　tle (&#8220;เติ้ล&#8221;) เช่น little จะกลายเป็น &#8220;ริ-โตะ-รุ&#8221; （リトル）</li>
</ol>
<p>หลักคร่าวๆเพียงเท่านี้คิดว่าน่าจะช่วยให้ฟังอังกฤษแบบญี่ปุ่นได้ง่ายขึ้นครับ เอาไว้นึกออกจะมาเขียนต่อ</p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=443</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu เสียงหาย</title>
		<link>http://wittawat.com/blog/?p=437</link>
		<comments>http://wittawat.com/blog/?p=437#comments</comments>
		<pubDate>Sun, 18 Jul 2010 05:58:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=437</guid>
		<description><![CDATA[ใช้งาน Ubuntu อยู่ดีๆแล้วเสียงก็หายไป กลายเป็นไม่ว่าจะเล่นเพลงอะไรก็ได้ยินแต่ noise ซ่าๆ วิธีแก้ให้ลองใช้คำสั่ง sudo /etc/init.d/alsa-utils reset เพื่อ reset ALSA ซะ ทำได้โดยไม่ต้องปิดโปรแกรมที่กำลังใช้งานเสียงอยู่ ที่มา http://ubuntuforums.org/showthread.php?p=2742327]]></description>
			<content:encoded><![CDATA[<p>ใช้งาน Ubuntu อยู่ดีๆแล้วเสียงก็หายไป กลายเป็นไม่ว่าจะเล่นเพลงอะไรก็ได้ยินแต่ noise ซ่าๆ วิธีแก้ให้ลองใช้คำสั่ง</p>
<pre class="brush: bash;">sudo /etc/init.d/alsa-utils reset </pre>
<p>เพื่อ reset ALSA ซะ ทำได้โดยไม่ต้องปิดโปรแกรมที่กำลังใช้งานเสียงอยู่</p>
<p>ที่มา</p>
<ul>
<li>ht<a href="http://ubuntuforums.org/showthread.php?p=2742327">tp://ubuntuforums.org/showthread.php?p=2742327</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=437</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การเรียนรู้ด้วยวิธี linear least squares</title>
		<link>http://wittawat.com/blog/?p=411</link>
		<comments>http://wittawat.com/blog/?p=411#comments</comments>
		<pubDate>Sat, 10 Jul 2010 15:12:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[least squares]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[supervised learning]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=411</guid>
		<description><![CDATA[ช่วงนี้ได้มีโอกาสเรียนรู้เรื่อง machine learning แบบลึกกว่าที่ผ่านมา ที่ผ่านมาต้องเรียกว่าไม่รู้อะไรเลยมากกว่า ได้แต่ใช้ tool ของชาวบ้าน ไหนๆ ก็เรียนมาแล้วก่อนที่จะลืมก็อยากเขียนเอาไว้ซะหน่อย เผื่อคนที่เพิ่งเริ่มเหมือนกันด้วย เป้าหมายหนึ่งของงานในด้าน supervised learning หรือการเรียนรู้แบบมีผู้สอน ก็คือการประมาณค่าของ function (real-valued function) จริงจากข้อมูลที่สุ่มมาได้ (sample) จากภาพ (จาก http://en.wikipedia.org/wiki/Least_squares) จุดแดงคือข้อมูลที่สุ่มมา เส้นน้ำเงินคือ function ที่ประมาณขึ้นมาได้จากข้อมูล วิธีหนึ่งในการประมาณค่า function คือ Linear least-squares ไอเดียคือ พยายามหา function ที่ทำให้ผลรวมของระยะห่างจากจุดแต่ละจุดมายัง function นั้นน้อยที่สุด (จริงๆแล้วคือระยะห่างกำลังสอง) ระยะห่างแต่ละจุดมาถึง function พูดง่ายๆก็คือ error นั่นเอง ถ้าระยะห่างทุกจุดเป็น 0 ก็แปลว่า function เราผ่านทุกจุดเป๊ะๆ สมมติว่าเรามี จุด (ตัวอย่าง) กำหนดให้ เป็นตัวอย่างที่ [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-4638272377097864";
/* 468x60, created 9/9/09 */
google_ad_slot = "4376118837";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>ช่วงนี้ได้มีโอกาสเรียนรู้เรื่อง machine learning แบบลึกกว่าที่ผ่านมา ที่ผ่านมาต้องเรียกว่าไม่รู้อะไรเลยมากกว่า ได้แต่ใช้ tool ของชาวบ้าน ไหนๆ ก็เรียนมาแล้วก่อนที่จะลืมก็อยากเขียนเอาไว้ซะหน่อย เผื่อคนที่เพิ่งเริ่มเหมือนกันด้วย</p>
<p>เป้าหมายหนึ่งของงานในด้าน supervised learning หรือการเรียนรู้แบบมีผู้สอน ก็คือการประมาณค่าของ function (real-valued function) จริงจากข้อมูลที่สุ่มมาได้ (sample) <img class="aligncenter" title="Least squares" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Linear_least_squares2.png/499px-Linear_least_squares2.png" alt="" width="346" height="415" />จากภาพ (จาก <a href="http://en.wikipedia.org/wiki/Least_squares">http://en.wikipedia.org/wiki/Least_squares</a>) จุดแดงคือข้อมูลที่สุ่มมา เส้นน้ำเงินคือ function ที่ประมาณขึ้นมาได้จากข้อมูล วิธีหนึ่งในการประมาณค่า function คือ Linear least-squares ไอเดียคือ พยายามหา function ที่ทำให้ผลรวมของระยะห่างจากจุดแต่ละจุดมายัง function นั้นน้อยที่สุด (จริงๆแล้วคือระยะห่างกำลังสอง) ระยะห่างแต่ละจุดมาถึง function พูดง่ายๆก็คือ error นั่นเอง ถ้าระยะห่างทุกจุดเป็น 0 ก็แปลว่า function เราผ่านทุกจุดเป๊ะๆ</p>
<p>สมมติว่าเรามี <img src='http://s.wordpress.com/latex.php?latex=n%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='n ' title='n ' class='latex' /> จุด (ตัวอย่าง) กำหนดให้ <img src='http://s.wordpress.com/latex.php?latex=%20%28x_i%2C%20y_i%29&#038;bg=T&#038;fg=000000&#038;s=0' alt=' (x_i, y_i)' title=' (x_i, y_i)' class='latex' /> เป็นตัวอย่างที่ i เราพยายามจะหา function ในรูปของ</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%5Chat%7Bf%7D%28x%29%20%3D%20%5Csum_%7Bj%3D1%7D%5Eb%20%5Calpha_j%20%5Cvarphi_j%28x%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \hat{f}(x) = \sum_{j=1}^b \alpha_j \varphi_j(x) ' title=' \hat{f}(x) = \sum_{j=1}^b \alpha_j \varphi_j(x) ' class='latex' /></p>
<p style="text-align: left;">เมื่อ <img src='http://s.wordpress.com/latex.php?latex=%20%5Cvarphi_j%28x%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \varphi_j(x) ' title=' \varphi_j(x) ' class='latex' /> คือสิ่งที่เรียกว่า basis function ที่รับ x แล้วคืนค่าเป็นจำนวนจริง ซึ่งเราสามารถเลือกเป็นอะไรก็ได้ มีทั้งหมด b basis function จากไอเดียของ lineat least-squares เราอยากหา <img src='http://s.wordpress.com/latex.php?latex=%20%5Chat%7Bf%7D%28x%29&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \hat{f}(x)' title=' \hat{f}(x)' class='latex' /> ที่ทำให้ผลรวม error น้อยสุด ในเมื่อ basis function ของเรากำหนดตายตัวไปแล้ว ปัญหาจึงลดลงไปเป็นการหา <img src='http://s.wordpress.com/latex.php?latex=%20%5Calpha_j&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \alpha_j' title=' \alpha_j' class='latex' /> ทั้งหมดที่ทำให้ผลรวม error น้อยสุด ดังนี้ (เรียก <img src='http://s.wordpress.com/latex.php?latex=%20%5Calpha_j&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \alpha_j' title=' \alpha_j' class='latex' /> ดังกล่าวว่า <img src='http://s.wordpress.com/latex.php?latex=%20%5Chat%7B%5Calpha%7D_j&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \hat{\alpha}_j' title=' \hat{\alpha}_j' class='latex' />)</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%5Chat%7B%5Cboldsymbol%20%5Calpha%7D%20%3D%20%5Carg%20%5Cmin_%7B%5Cboldsymbol%20%5Calpha%7D%20%5Csum_%7Bi%3D1%7D%5En%20%28%5Chat%7Bf%7D%28x_i%29%20-%20y_i%29%5E2%20&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \sum_{i=1}^n (\hat{f}(x_i) - y_i)^2 ' title=' \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \sum_{i=1}^n (\hat{f}(x_i) - y_i)^2 ' class='latex' /></p>
<p style="text-align: left;">ในสมการข้างบน <img src='http://s.wordpress.com/latex.php?latex=%5Carg%20%5Cmin_%7B%5Cboldsymbol%20%5Calpha%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\arg \min_{\boldsymbol \alpha}' title='\arg \min_{\boldsymbol \alpha}' class='latex' />  แปลว่า หา <img src='http://s.wordpress.com/latex.php?latex=%5Cboldsymbol%20%5Calpha&#038;bg=T&#038;fg=000000&#038;s=0' alt='\boldsymbol \alpha' title='\boldsymbol \alpha' class='latex' /> ที่ทำให้สิ่งที่ตามมามีค่าน้อยที่สุด ในที่นี้ <img src='http://s.wordpress.com/latex.php?latex=%5Cboldsymbol%20%5Calpha%20%3D%20%28%5Calpha_1%2C%20%5Calpha_2%2C%20%5Cldots%2C%20%5Calpha_b%29%5ET&#038;bg=T&#038;fg=000000&#038;s=0' alt='\boldsymbol \alpha = (\alpha_1, \alpha_2, \ldots, \alpha_b)^T' title='\boldsymbol \alpha = (\alpha_1, \alpha_2, \ldots, \alpha_b)^T' class='latex' /> เป็น vector ของ <img src='http://s.wordpress.com/latex.php?latex=%5Calpha_j&#038;bg=T&#038;fg=000000&#038;s=0' alt='\alpha_j' title='\alpha_j' class='latex' /> ทั้งหมด เขียนเป็น vector จะได้สะดวก ต่อมาจากข้างบนแทนนิยามของ function ลงไปเราจะได้</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%20%5Chat%7B%5Cboldsymbol%20%5Calpha%7D%20%3D%20%5Carg%20%5Cmin_%7B%5Cboldsymbol%20%5Calpha%7D%20%5Csum_%7Bi%3D1%7D%5En%20%28%5Csum_%7Bj%3D1%7D%5Eb%20%5Calpha_j%20%5Cvarphi_j%28x_i%29%20-%20y_i%29%5E2%20%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='  \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \sum_{i=1}^n (\sum_{j=1}^b \alpha_j \varphi_j(x_i) - y_i)^2  ' title='  \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \sum_{i=1}^n (\sum_{j=1}^b \alpha_j \varphi_j(x_i) - y_i)^2  ' class='latex' /></p>
<p style="text-align: left;">ถ้าเรากำหนดให้ <img src='http://s.wordpress.com/latex.php?latex=%20%5Cboldsymbol%20X_%7Bi%2Cj%7D%20%3D%20%5Cvarphi_j%28x_i%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \boldsymbol X_{i,j} = \varphi_j(x_i) ' title=' \boldsymbol X_{i,j} = \varphi_j(x_i) ' class='latex' /> โดยที่ <img src='http://s.wordpress.com/latex.php?latex=%20%5Cboldsymbol%20X_%7Bn%20%5Ctimes%20b%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt=' \boldsymbol X_{n \times b} ' title=' \boldsymbol X_{n \times b} ' class='latex' /> เป็น matrix แล้วสมการข้างบนจะสามารถเขียนได้เป็น</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%20%5Chat%7B%5Cboldsymbol%20%5Calpha%7D%20%3D%20%5Carg%20%5Cmin_%7B%5Cboldsymbol%20%5Calpha%7D%20%5C%7C%20%28%5Cboldsymbol%20X%20%5Cboldsymbol%20%5Calpha%20-%20%5Cboldsymbol%20y%29%20%5C%7C%5E2%20%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='  \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \| (\boldsymbol X \boldsymbol \alpha - \boldsymbol y) \|^2  ' title='  \hat{\boldsymbol \alpha} = \arg \min_{\boldsymbol \alpha} \| (\boldsymbol X \boldsymbol \alpha - \boldsymbol y) \|^2  ' class='latex' /></p>
<p style="text-align: left;">โดยที่ <img src='http://s.wordpress.com/latex.php?latex=%5Cboldsymbol%20y%20%3D%20%28y_1%2C%20y_2%2C%20%5Cldots%2C%20y_n%29%5ET%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\boldsymbol y = (y_1, y_2, \ldots, y_n)^T ' title='\boldsymbol y = (y_1, y_2, \ldots, y_n)^T ' class='latex' /> เป็น vector ของค่า y ทั้งหมด ต่อไปเราก็ diff ค่าข้างบนนั่นเทียบกับ <img src='http://s.wordpress.com/latex.php?latex=%5Cboldsymbol%20%5Calpha%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\boldsymbol \alpha ' title='\boldsymbol \alpha ' class='latex' /> แล้วจับเท่ากับ 0 (การ diff เทียบกับ vector สามารถหาดูได้ที่ <a href="http://matrixcookbook.com">matrixcookbook.com</a><span class="f"><cite></cite></span>) เราจะได้</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%202%5Cboldsymbol%20X%5ET%20%28%5Cboldsymbol%20X%20%5Cboldsymbol%20%5Calpha%20-%20%5Cboldsymbol%20y%29%20%3D%200%20%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='  2\boldsymbol X^T (\boldsymbol X \boldsymbol \alpha - \boldsymbol y) = 0  ' title='  2\boldsymbol X^T (\boldsymbol X \boldsymbol \alpha - \boldsymbol y) = 0  ' class='latex' /></p>
<p style="text-align: left;">จัดรูปไปมา เราจะได้</p>
<p style="text-align: center;"><img src='http://s.wordpress.com/latex.php?latex=%20%20%5Chat%7B%5Cboldsymbol%20%5Calpha%7D%20%3D%20%28%5Cboldsymbol%20X%5ET%20%5Cboldsymbol%20X%29%5E%7B-1%7D%20%5Cboldsymbol%20X%5ET%20%5Cboldsymbol%20y%20%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='  \hat{\boldsymbol \alpha} = (\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X^T \boldsymbol y  ' title='  \hat{\boldsymbol \alpha} = (\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X^T \boldsymbol y  ' class='latex' /></p>
<p style="text-align: left;">จะเห็นว่าเราสามารถหา parameter ที่ดีที่สุดในแง่ของ Least-squares ได้โดยการคูณ matrix เมื่อเราได้ <img src='http://s.wordpress.com/latex.php?latex=%5Chat%7B%5Cboldsymbol%20%5Calpha%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\hat{\boldsymbol \alpha}' title='\hat{\boldsymbol \alpha}' class='latex' /> แล้วที่เหลือก็แค่แทนลงไปในนิยามของ <img src='http://s.wordpress.com/latex.php?latex=%5Chat%7Bf%7D%28x%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\hat{f}(x)' title='\hat{f}(x)' class='latex' /> ข้างบน เราก็ได้ function แล้ว สังเกตว่าถึงเราจะเรียกว่า linear least squares แต่ <img src='http://s.wordpress.com/latex.php?latex=%5Cvarphi_j%28x%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\varphi_j(x)' title='\varphi_j(x)' class='latex' /> จะเป็น function ที่ไม่ linear กับ x ก็ได้ เช่น log คำว่า linear least squares ในที่นี้คือ function ที่ได้นั้น linear เมื่อเทียบกับ parameter นั่นคือ <img src='http://s.wordpress.com/latex.php?latex=%5Cboldsymbol%20%5Calpha&#038;bg=T&#038;fg=000000&#038;s=0' alt='\boldsymbol \alpha' title='\boldsymbol \alpha' class='latex' /></p>
<p style="text-align: left;">ถ้าเลือก basis function ดีๆหลากหลายหน่อย เราสามารถประมาณค่า function ได้หลากหลายมาก วิธีนี้ดูเผินๆแล้วน่าจะดี แต่จริงๆแล้ว function ที่ได้มักจะมีปัญหาที่เรียกว่า overfit หรือประมาณค่าใกล้กับข้อมูลมากจนเกินไป (เกิดขึ้นเมื่อมี basis function เยอะ จนสามารถประมาณค่า function อะไรก็ได้) นั่นหมายความว่าถ้าข้อมูลที่เราได้มามี noise มาก เช่น ได้จากเครื่องมือวัดค่าที่เก่าแล้ว คลาดเคลื่อนบ่อย function ที่เราได้มันก็จะซิกแซกไปตามจุดพวกนั้นด้วย ซึ่งในความเป็นจริงเราไม่อยากได้</p>
<p style="text-align: left;">ตัวอย่างคือรูปนี้ <a href="http://upload.wikimedia.org/wikipedia/commons/5/5d/Overfit.png">http://upload.wikimedia.org/wikipedia/commons/5/5d/Overfit.png</a> จะเห็นว่ามี 2 เส้น เส้นโค้งกับเส้นตรง ซึ่งได้จากข้อมูลชุดเดียวกันแต่ basis function ต่างกัน ในความเป็นจริงเราอยากได้เส้นตรง ถึงแม้เส้นโค้งจะผ่านทุกจุดเป๊ะ แต่เห็นได้ชัดว่าข้อมูลมีโครงสร้างเชิงเส้น ที่จุดพวกนั้นไม่เรียงเป็นแนวเส้นตรงน่าจะเกิดจาก noise มากกว่า ด้วยเหตุนี้เราจึงกล่าวว่าเส้นโค้งฟิตกับข้อมูลมากไปหรือ overfit นั่นเอง วันหลังจะมีพูดถึงวิธีแก้ปัญหา overfit</p>
<p style="text-align: left;">จบแล้ว หากผู้รู้จริงผ่านมาแล้วมีคำแนะนำก็เชิญ comment ครับ</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 758px; width: 1px; height: 1px;">\sum_{j=1}^b \alpha_i \varphi_j(x)[</div>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=411</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ncftp: FTP Client with Recursive Transfers</title>
		<link>http://wittawat.com/blog/?p=398</link>
		<comments>http://wittawat.com/blog/?p=398#comments</comments>
		<pubDate>Sat, 05 Jun 2010 08:06:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=398</guid>
		<description><![CDATA[I have searched for a FTP client with recursive transfers for a while. By recursive transfers, I mean transfering the whole directory at once. For many GUI clients, this feature is quite common. What I mean here is a FTP command-line client. FTP command-line clients rarely provide such feature. A good client I have come [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-4638272377097864";
/* 468x60, created 9/9/09 */
google_ad_slot = "4376118837";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>I have searched for a FTP client with recursive transfers for a while. By recursive transfers, I mean transfering the whole directory at once. For many GUI clients, this feature is quite common. What I mean here is a FTP command-line client. FTP command-line clients rarely provide such feature. A good client I have come across which can do that is <strong>ncftp</strong> . If you use Ubuntu, you can get it by</p>
<pre class="brush: bash;">sudo apt-get install ncftp</pre>
<p>You can start ncftp with</p>
<pre class="brush: bash;">ncftp -u &lt;your_ftp_user&gt; -p &lt;your_ftp_password&gt; &lt;yourhostname.here.com&gt; </pre>
<p>After you are in the ncftp interface, normal FTP commands work here. To transfer the whole folder, use</p>
<pre class="brush: bash;">mget -R folder_name </pre>
<p>If you need more information, issue the command</p>
<pre class="brush: bash;">help</pre>
<p>to see all available commands.</p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=398</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phrases I don&#8217;t like that are often used in text books</title>
		<link>http://wittawat.com/blog/?p=394</link>
		<comments>http://wittawat.com/blog/?p=394#comments</comments>
		<pubDate>Tue, 25 May 2010 10:43:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[complaint]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=394</guid>
		<description><![CDATA[I am sure that people who read technical books related to mathematics have come across the following phrases at least once. &#8220;It is easy to show that &#8230; &#8220; &#8220;The derivation of &#8230; is left as an exercise.&#8221; &#8220;The blah blah problem therefore amounts to &#8230;.(some long formula) &#8230;&#8221; &#8220;Clearly, blah blah of this is [...]]]></description>
			<content:encoded><![CDATA[<p>I am sure that people who read technical books related to mathematics have come across the following phrases at least once.</p>
<ul>
<li>&#8220;It is easy to show that &#8230; &#8220;</li>
<li>&#8220;The derivation of &#8230; is left as an exercise.&#8221;</li>
<li>&#8220;The blah blah problem therefore amounts to &#8230;.(some long formula) &#8230;&#8221;</li>
<li>&#8220;Clearly, blah blah of this is blah blah of that &#8230;&#8221;</li>
</ul>
<p>There is nothing wrong about the mentioned phrases. The problem is that these phrases are often used without any justification or clear explanation. Around 80% of the time I found &#8220;It is easy to show that&#8230;&#8221;, it is NOT easy for me.  Around 90% of the time I found &#8220;The derivation of &#8230; is left as an exercise.&#8221;, I cannot derive the thing I want. Almost every time I found &#8220;The blah blah problem therefore amounts to &#8230;.(some long formula) &#8230;&#8221;, I do not know why the given formula is related to the original problem. Finally, every time I found &#8220;Clearly, &#8230;.&#8221;, it is NOT that obvious for me to figure out. It takes some time.</p>
<p>This post is just a complaint from a stupid man like me. Just think about it. If you can easily derive a long formula, what is the point of reading the book ? You are already able to do it by your own. This implies that many students read the book because they do not know how to derive those. They want to know it. That is why they read the book! In the end, I still wonder why the book is often written in that way. Is it so troublesome to add more details .. ?</p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=394</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>กู้ข้อมูลที่ลบไปแล้วจาก iphone โดยใช้ Ubuntu</title>
		<link>http://wittawat.com/blog/?p=306</link>
		<comments>http://wittawat.com/blog/?p=306#comments</comments>
		<pubDate>Sun, 23 May 2010 05:07:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=306</guid>
		<description><![CDATA[เรื่องนี้เคยเขียนไปครั้งหนึ่งแล้วที่ http://wittawat.com/blog/?p=84 แต่ไม่ค่อยละเอียด เลยเอามาขยายความที่นี่อีกครั้ง ครั้งนี้มีรูปประกอบเพื่อให้เป็นประโยชน์มากขึ้น ต้องขอบอกก่อนว่าผมไม่ใช่ผู้เชี่ยวชาญ iPhone แต่อย่างใด ไม่รู้ว่าเขามีวิธีกู้ข้อมูลด้วย iTune หรือโปรแกรมอื่นๆอะไรรึป่าว แต่ผมค่อนข้างมั่นใจว่าวิธีที่ใช้นี้สามารถใช้ได้กับ iPhone ทุกรุ่น เพราะวิธีนี้เป็นวิธีที่ไม่ต้องการอะไรพิเศษจากเครื่อง iphone เลย เป็นวิธีค่อนข้างจะโบราณ แต่อาจจะยุ่งยากซักหน่อยครับ บทความนี้จะกล่าวถึงการกู้ข้อมูลโดยใช้ Ubuntu มาช่วย (ผู้ใช้ Linux รุ่นอื่นก็สามารถทำได้เช่นกัน) สิ่งที่ต้องการสำหรับการกู้ข้อมูลด้วยวิธีนี้คือ iPhone ที่มี terminal (สำหรับผู้ไม่คุ้นเคย Terminal ก็คือโปรแกรมบน iphone ที่เปิดมาแล้วเห็นแต่หน้าจอดำๆมีปุ่ม keyboard ให้พิมพ์คำสั่ง เหมือน dos บน Windows ) โปรแกรมชื่อ vterminal หรือ MobileTerminal สาย USB กับปลั๊กไฟเพื่อชาร์จไฟ อันนี้จำเป็นครับเพราะต้อง copy ข้อมูลนาน เดี๋ยวแบตหมดกลางทาง (copy ผ่าน wireless [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-4638272377097864";
/* 468x60, created 9/9/09 */
google_ad_slot = "4376118837";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>เรื่องนี้เคยเขียนไปครั้งหนึ่งแล้วที่ <a href="http://wittawat.com/blog/?p=84">http://wittawat.com/blog/?p=84</a> แต่ไม่ค่อยละเอียด เลยเอามาขยายความที่นี่อีกครั้ง ครั้งนี้มีรูปประกอบเพื่อให้เป็นประโยชน์มากขึ้น</p>
<p>ต้องขอบอกก่อนว่าผมไม่ใช่ผู้เชี่ยวชาญ iPhone แต่อย่างใด ไม่รู้ว่าเขามีวิธีกู้ข้อมูลด้วย iTune หรือโปรแกรมอื่นๆอะไรรึป่าว แต่ผมค่อนข้างมั่นใจว่าวิธีที่ใช้นี้สามารถใช้ได้กับ iPhone ทุกรุ่น เพราะวิธีนี้เป็นวิธีที่ไม่ต้องการอะไรพิเศษจากเครื่อง iphone เลย เป็นวิธีค่อนข้างจะโบราณ แต่อาจจะยุ่งยากซักหน่อยครับ บทความนี้จะกล่าวถึงการกู้ข้อมูลโดยใช้ Ubuntu มาช่วย (<strong>ผู้ใช้ Linux รุ่นอื่นก็สามารถทำได้เช่นกัน</strong>) สิ่งที่ต้องการสำหรับการกู้ข้อมูลด้วยวิธีนี้คือ</p>
<ol>
<li>iPhone ที่มี terminal (สำหรับผู้ไม่คุ้นเคย Terminal ก็คือโปรแกรมบน iphone ที่เปิดมาแล้วเห็นแต่หน้าจอดำๆมีปุ่ม keyboard ให้พิมพ์คำสั่ง เหมือน dos บน Windows ) โปรแกรมชื่อ vterminal หรือ MobileTerminal</li>
<li>สาย USB กับปลั๊กไฟเพื่อชาร์จไฟ อันนี้จำเป็นครับเพราะต้อง copy ข้อมูลนาน เดี๋ยวแบตหมดกลางทาง (copy ผ่าน wireless LAN)</li>
<li>คอมอีกหนึ่งเครื่องที่มีสิ่งต่อไปนี้
<ol>
<li>Wireless LAN เพื่อติดต่อกับ iPhone  (จะเป็นคอมตั้งโต๊ะแล้วเชื่อมกับ Wireless router ก็ได้ ขอแค่ wireless กับคอม)</li>
<li>เนื้อที่บนเครื่องนั้นอย่างน้อยเท่ากับความจุของ iPhone คุณ (ของผมใช้ iPhone รุ่นเก่าจุ 8GB ฉะนั้นเครื่องคอมอีกเครื่องต้องเตรียมไว้ 8 GB) รุ่นใหม่อาจต้องใช้ 32 GB</li>
<li>SSH Server ซึ่งเป็นโปรแกรมที่ผู้ใช้สามารถ login เข้าไปเพื่อรันคำสั่งได้  SSH Server นี้ต้องอยู่บนคอมเครื่องนั้น เพราะเราจะให้ iPhone login เข้าไปแล้วถ่ายข้อมูลเก็บไว้</li>
<li>โปรแกรม Photorec (<a href="http://www.cgsecurity.org/wiki/PhotoRec">http://www.cgsecurity.org/wiki/PhotoRec</a>) สามารถโหลดได้ฟรี มีทั้ง Windows และ Linux</li>
</ol>
</li>
<li>เวลาหลายชั่วโมง</li>
</ol>
<p><strong>เรากำลังจะทำอะไรกัน?</strong></p>
<p>หลักการของการกู้ข้อมูลนี้คือเราจะทำการคัดลอกข้อมูลทั้งหมดใน disk ของ iphone ออกมา การคัดลอกนี้ไม่ใช่ copy ทุกไฟล์ แต่เราจะต้องคัดลอกทุกส่วนทุกมุมของ disk เลยเพื่อจะได้เอามาวิเคราะห์ทีหลังว่าส่วนไหนมุมไหนของ disk มีร่องรอยไฟล์เหลืออยู่บ้าง การทำแบบนี้มีข้อดีคือเรามีโอกาสกู้ไฟล์คืนมาได้แม้ format ไปแล้ว ที่ทำแบบนี้ได้ผลเพราะโดยปกติเวลาเรากดลบไฟล์ ไฟล์หรือข้อมูลนั้นๆไม่ได้หายไปจริงๆ แต่ระบบแค่บันทึกไว้บน disk ว่าส่วนนี้ได้ถูกสั่งลบแล้ว สามารถถูกแทนที่ด้วยข้อมูลอื่นๆได้ ก็หมายความว่าถ้าเราสั่งลบอะไรบางอย่าง แล้วเราไม่ได้บันทึกอะไรเพิ่มเลย ก็มีโอกาสที่ disk ส่วนนั้นยังไม่ได้โดนแทนที่ด้วยอะไรใหม่ๆ เราเลยสามารถกู้ได้ ฉะนั้นหากต้องการจะกู้สิ่งที่ลบแล้ว ก็ไม่ควรใช้งานเครื่องจนกว่าจะถึงเวลากู้ เพราะส่วนเก็บข้อมูลอาจโดนอย่างอื่นทับแล้วจะกู้ของเก่าไม่ได้อีก</p>
<p>กลับมาเรื่องการคัดลอก disk ของ iPhone แน่นอนว่าเราไม่สามารถคัดลอกไปใส่ disk เดิมได้ เพราะการคัดลอกนี้เราจะได้ไฟล์ 1 ไฟล์ซึ่งมีขนาดเท่า disk เดิมเลย  เป็น raw image ของ disk (เหมือนตอน burn image ของ CD ) นั่นเอง ฉะนั้นเราต้องคัดลอกไปที่อื่นซึ่งก็คือคอมอีกเครื่องที่เตรียมไว้</p>
<p>การคัดลอก disk image ไปอีกเครื่องเราจะใช้ SSH (Secure Shell) บน iPhone โดยใช้ Terminal แล้ว login ไปที่อีกเครื่องหนึ่งซึ่งมี SSH server ลงไว้แล้ว ทำผ่าน wireless LAN เมื่อเชื่อมต่อกันได้แล้วที่เหลือก็แค่รอให้ข้อมูลทั้ง disk ของ iPhone ไปอยู่อีกเครื่องหนึ่ง ขั้นตอนนี้จะนานมาก จากนั้นก็ค่อยใช้โปรแกรม PhotoRec มาหาร่องรอยของไฟล์จาก disk image ที่ได้มาซึ่งอยู่บนคอมอีกเครื่อง PhotoRec เป็นโปรแกรมที่เขียนมาค่อนข้างดี สามารถใช้กู้ไฟล์ได้หลายชนิดมาก รวมถึง รูป เพลง และหนังด้วย ถึงตรงนี้คิดว่าผู้อ่านคงได้ไอเดียแล้วว่าเรากำลังทำอะไร</p>
<p><strong>เตรียมโปรแกรม</strong></p>
<ol>
<li>เตรียม terminal บน iPhone วิธีลงก็ลงเหมือนที่ลงโปรแกรมอื่นๆบน iPhone ครับ ขอไม่กล่าวถึง ลองหาด้วยคำว่า terminal, MobileTerminal, vterminal ดู เมื่อลงเสร็จแล้วเปิดโปรแกรมขึ้นมาจะได้แบบนี้<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/iphone_terminal.png"><img class="aligncenter size-full wp-image-370" title="iphone_terminal" src="http://wittawat.com/blog/wp-content/uploads/2010/05/iphone_terminal.png" alt="" width="320" height="480" /></a></li>
<li>เนื่องจากเราจะใช้คำสั่ง ssh บน iPhone ซึ่งผมไม่แน่ใจว่ามันมีมาให้กับ terminal หรือยัง วิธีเช็คก็เปิด terminal ขึ้นมาแล้วพิมพ์คำสั่ง
<pre class="brush: bash;">ssh -V</pre>
<p>(V ตัวใหญ่) ถ้าได้คล้ายๆรูปข้างล่างนี้ก็แปลว่าใช้ได้แล้ว ให้ข้ามไปข้อต่อไปได้เลย<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/ssh_ver.png"><img class="aligncenter size-full wp-image-372" title="ssh_ver" src="http://wittawat.com/blog/wp-content/uploads/2010/05/ssh_ver.png" alt="" width="480" height="320" /></a>แต่ถ้ามันขึ้นคำว่า &#8220;command not found&#8221; แทนแสดงว่ายังไม่มีคำสั่ง ssh <strong>ให้ลงโปรแกรมชื่อ OpenSSH</strong> วิธีลงก็แบบเดียวกับที่ลง terminal เมื่อลงเสร็จแล้ว กลับมาลองคำสั่งนี้อีกครั้ง มันควรขึ้นเหมือนภาพด้านบนครับ</li>
<li>เช็คว่ามี SSH Server บนเครื่องคอมมั้ย เนื่องจากบนความนี้เขียนสำหรับคอมที่เป็น Linux วิธีเช็คว่ามี SSH Server มั้ย ก็ให้เปิด terminal ขึ้นมา (ผู้ใช้ Ubuntu ให้ไปที่ Application -&gt; Accessories-&gt; Terminal) แล้วพิมพ์คำสั่ง
<pre class="brush: bash;">netstat -an | less</pre>
<p>จะได้ประมาณรูปข้างล่าง<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/ssh_port1.png"><img class="aligncenter size-full wp-image-375" title="ssh_port" src="http://wittawat.com/blog/wp-content/uploads/2010/05/ssh_port1.png" alt="" width="650" height="231" /></a>ให้เล็งบรรทัดที่ด้านขวาเป็นคำว่า LISTEN ถ้าเห็น 0.0.0.0:22 แปลว่าเครื่องคอมมี SSH Server แล้ว พร้อมที่จะให้ iPhone login เข้ามา แต่ถ้าหา 22 ไม่เจอแปลว่าเครื่องคอมยังไม่มี SSH Server ให้กด q เพื่อกลับมาที่ terminal เหมือนเดิมแล้วพิมพ์ (สำหรับ Ubuntu )</p>
<pre class="brush: bash;">sudo apt-get install  openssh-server</pre>
<p>กด Enter จะให้ใส่ password ของ root ก็ใส่ไปรอซักพักจนมันติดตั้งเสร็จแล้วลงพิมพ์คำสั่งด้านบนเพื่อเช็คใหม่อีกครั้ง ครั้งนี้ควรเห็นเลข 22</li>
<li>ลงโปรแกรม photorec โดยพิมพ์
<pre class="brush: bash;">sudo apt-get install testdisk</pre>
<p>หากติดตั้งเสร็จให้ลอง</p>
<pre class="brush: bash;">photorec -v</pre>
<p>ถ้าเห็นคล้ายๆรูปข้างล่างแปลว่า photorec ใช้ได้แล้ว (ตัวเลข version ไม่เหมือนกัน ไม่เป็นไร)<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/photorec_ver.png"><img class="aligncenter size-full wp-image-377" title="photorec_ver" src="http://wittawat.com/blog/wp-content/uploads/2010/05/photorec_ver.png" alt="" width="690" height="176" /></a></li>
</ol>
<p><strong>ขั้นตอนการกู้ข้อมูล</strong></p>
<p>ถึงขั้นตอนนี้คิดว่าคงเตรียมโปรแกรมต่างๆพร้อมแล้ว เราจะเริ่มโดยการเชื่อมต่อคอมกับ iPhone ผ่าน wireless LAN กันก่อน สำหรับผู้ที่มี router ที่บ้านก็ง่ายหน่อย ก็ให้เข้าไปที่หน้าเลือก wi-fi ของ iPhone แล้วเลือกชื่อ network ของที่บ้านตัวเองก็เสร็จแล้ว สำหรับผู้ใช้คอมที่มี wireless แต่ไม่มี router ก็ให้สร้าง ad-hoc network (ไม่ค่อยถูกแต่พูดแบบง่ายๆ คือ network ที่ไม่มี router ครับ ) ขึ้นมา โดยทำตามขั้นตอนนี้</p>
<ol>
<li>คลิกที่รูปคอมสองเครื่องด้านขวาบน ดังภาพ<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/nm_start.png"><img class="aligncenter size-full wp-image-378" title="nm_start" src="http://wittawat.com/blog/wp-content/uploads/2010/05/nm_start.png" alt="" width="454" height="81" /></a></li>
<li>จะมีเมนูขึ้นมา ให้เลือกอันสุดท้าย น่าจะประมาณว่า Create a new network &#8230;</li>
<li>ใส่ชื่อ network ที่ต้องการลงไป เช่น iphonerec</li>
<li>เข้าไปที่หน้าเลือก network ของ iPhone แล้วเลือก wi-fi network ที่ชื่อ iphonerec ขั้นตอนนี้บางทีอาจจะมองไม่เห็น iphonerec ขอให้ลองทำเร็วๆ คือสร้าง network ใหม่เสร็จแล้วรีบเปิด iPhone แล้ว connect</li>
<li>เมื่อเชื่อมต่อสำเร็จ รูปคอมสองเครื่องจะเปลี่ยนเป็นรูปสัญญาณ wi-fi แบบนี้<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/wiki_connected.png"><img class="aligncenter size-full wp-image-379" title="wiki_connected" src="http://wittawat.com/blog/wp-content/uploads/2010/05/wiki_connected.png" alt="" width="388" height="53" /></a></li>
</ol>
<p><strong>เช็คการเชื่อมต่อไร้สายของคอมกับ iPhone</strong></p>
<p>อันดับแรกไปที่ terminal <strong>ของคอม</strong> แล้วลองพิมพ์</p>
<pre class="brush: bash;">ifconfig</pre>
<p>จะมีรายการของอุปกรณ์การเชื่อมต่อขึ้นมาพรอ้ม IP address ของแต่ละอัน โดยปกติแล้ว wireless LAN card ของคอมจะชื่อ wlan0 ส่วน LAN card แบบสายจะชื่อ eth0 เครื่องคอมส่วนใหญ่จะขึ้นมาแค่ 2 อันนี้ ก็ให้ลองดูส่วนของ wlan0 ซึ่งจะเห็นประมาณนี้<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/ifconfig.png"><img class="aligncenter size-full wp-image-380" title="ifconfig" src="http://wittawat.com/blog/wp-content/uploads/2010/05/ifconfig.png" alt="" width="738" height="161" /></a>ถ้าตรงคำว่า inet address มีเลข IP adress แสดงว่าการเชื่อมต่อฝั่งคอมใช้ได้แล้ว (ad-hoc network บางทีจะเป็น 10.42.43.xx หรือบางทีก็ 169.245.xxx.xx ก็ไม่ได้สำคัญอะไร เป็นแค่เลข IP) <strong>ให้จดเลข IP นี้เอาไว้</strong> ต่อไปนี้จะเรียกว่า <strong>IP ของคอม</strong></p>
<p>มาลองดูการเชื่อมต่อฝั่ง iPhone บ้าง ให้ไปที่ terminal ของ iPhone แล้วลองพิมพ์</p>
<pre class="brush: bash;">ping 192.168.1.21</pre>
<p>แน่นอนให้เปลี่ยน 192.168.1.21 เป็น IP ของคอม ที่จดไว้นะครับ ถ้าได้แบบภาพข้างล่าง<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/05/iphone_ping.png"><img class="aligncenter size-full wp-image-382" title="iphone_ping" src="http://wittawat.com/blog/wp-content/uploads/2010/05/iphone_ping.png" alt="" width="480" height="320" /></a>แปลว่า iPhone สามารถมองเห็นเครื่องคอมแล้ว การเชื่อมต่อสมบูรณ์</p>
<p><strong>เริ่มคัดลอก disk image</strong></p>
<p>เริ่มคัดลอก disk image ของ iPhone โดยไปที่ terminal ของ iPhone แล้วพิมพ์ (เปลี่ยนบางจุดตามคำอธิบายด้านล่าง)</p>
<pre class="brush: bash;">dd if=/dev/disk0 | ssh nook@192.168.1.21 'dd of=/home/nook/Desktop/iphonedisk.img'</pre>
<p>คำสั่งด้านบนมีจุดที่ต้องระวังดังนี้</p>
<ul>
<li>คำว่า nook คือ username ที่ใช้ login เข้า Linux ให้เปลี่ยนเป็น user ของตัวเอง</li>
<li>192.168.1.21 คือ IP ของคอม ให้เปลี่ยนเป็น IP ของคอมตัวเองที่จดไว้</li>
<li><code>/home/nook/Desktop/iphonedisk.img</code> คือตำแหน่งของ disk image ที่อยากได้ ให้เปลี่ยนตรงคำว่า nook เป็น user ตัวเอง ตำแหน่งที่ใช้นี้คือ Desktop แปลว่าเมื่อคัดลอง disk image เสร็จแล้ว จะมีไฟล์ชื่อ iphonedisk.img ปรากฏขึ้นบน Desktop ของคอม และมีขนาดใกล้เคียงกับความจุของ iPhone (ไฟล์ใหญ่ โปรดเตรียมเนื้อที่ไว้ให้พร้อม)</li>
<li>อย่าลืมเครื่องหมาย &#8216; ที่ท้ายคำสั่ง สั่งเกตุได้จากถ้ากด Enter แล้วมีเครื่องหมาย &gt; ขึ้นมาแปลว่าลืมปิด &#8216; ที่ท้ายคำสั่ง</li>
<li>ถ้ามีคำถามขึ้นมาว่า &#8220;Are you sure you want to continue connecting (yes/no)?&#8221; ให้พิมพ์ yes แล้ว Enter</li>
</ul>
<p>ถ้าทำถูกมันจะถาม password ก็ให้พิมพ์ password ที่ใช้ login เข้า Linux ตัวเองลงไป แล้วมันจะนิ่งไปเฉยๆ ซึ่งถือว่าปกติ ถ้าที่ Desktop ของคอมมีไฟล์ชื่อ iphonedisk.img ขึ้นมา ถือว่ามาถูกทางแล้ว ไฟล์นี้จะใหญ่ขึ้นเรื่อยๆเมื่อมัน copy ไปเรื่อยๆ และจะใช้เวลานานมาก (หลายชั่วโมง)</p>
<p><strong>เริ่มกู้ข้อมูลจาก iphonedisk.img ด้วย photorec</strong></p>
<p>เมื่อมี disk image ของ iPhone แล้ว ก็สามารถเริ่มขุดคุ้ยร่องรอยของไฟล์ได้ ขั้นตอนกู้ข้อมูลนี้<strong>สามารถทำได้แม้ตอนที่ไฟล์ disk image ยัง copy ไม่เสร็จ</strong> ข้อดีคือถ้าเรากู้ข้อมูลจาก disk image ที่ยัง copy ไม่เสร็จ แล้วเราได้ไฟล์ที่เราต้องการครบแล้ว เราก็สามารถยกเลิกการ copy disk image ได้เลย เพราะเราได้ของครบแล้ว</p>
<p>รัน photorec ด้วยคำสั่ง</p>
<pre class="brush: bash;">photorec /home/nook/Desktop/iphonedisk.img</pre>
<p>ขั้นตอนการใช้งาน photorec สามารถดูได้จาก <a href="http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step">http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step </a></p>
<p>เพิ่มเติม</p>
<ul>
<li><a href="http://smart-mobile.com/forum/viewtopic.php?f=88&amp;t=198542">http://smart-mobile.com/forum/viewtopic.php?f=88&amp;t=198542</a> ผมเองก็ไม่รู้ว่า iPhone รุ่นใหม่ๆทำขั้นตอนไหนได้ไม่ได้ ที่นี่คิดว่ามีคำตอบ</li>
<li>หลายท่านบอกเข้ามาว่าอ่านแล้วก็ งง ผมก็คงต้องเรียนว่าผมก็พยายามเขียนเป็นขั้นตอนเต็มที่แล้ว จะบอกความเป็นมาของทุก step หรือจะให้บอกดักแก้ error ที่เป็นไปได้ทั้งหมดก็คงจะทำให้บทความยืดเยื้อ เอาไว้จะค่อยๆปรับปรุงครับ</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=306</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New Gadget: SHARP pc-z1 NetWalker</title>
		<link>http://wittawat.com/blog/?p=364</link>
		<comments>http://wittawat.com/blog/?p=364#comments</comments>
		<pubDate>Wed, 19 May 2010 11:31:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gadget]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=364</guid>
		<description><![CDATA[Recently, I just bought a new SHARP pc-z1 NetWalker, a palm-size mini netbook. Before I decided, iPad (48,000 yen) was also interesting to me. But, the main reason I chose this gadget (34,000 yen) was because it runs Ubuntu 9.04! The followings are what I noticed after playing with it for 2 days. Its optical [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I just bought a new <a href="http://www.sharp.co.jp/netwalker/pcz1j/index.html">SHARP pc-z1 NetWalker</a>, a palm-size mini netbook. Before I decided, iPad (48,000 yen) was also interesting to me. But, the main reason I chose this gadget (34,000 yen) was because it runs Ubuntu 9.04! The followings are what I noticed after playing with it for 2 days.</p>
<ul>
<li>Its optical point feature (a little nail-size button used to move mouse pointer) does not work with my finger as my hand normally has some sweat. This is just a personal issue. Anyway, I can move the mouse pointer by touching the screen.</li>
<li>The specification says it has 512 MB of RAM. The Ubuntu task monitor sees it 471.4 MB.</li>
<li>The specification says it has 4 GB of flash-memory space. Ubuntu can see 3.6 GB.</li>
<li>Suspending does consume some battery.</li>
<li>The screen size (5 inches) is a bit small but acceptable.</li>
<li>Since I bought a black model, I can see my own fingerprints when I touch it. White one should be fine in this case.</li>
</ul>
<p>Regardless of those listed, I am satisfied with it. I am now using it as an ebook reader when I am in the train. The next target would be iPad. But, I will have to wait until the price drops down first.</p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=364</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JTCC: library ตัดกลุ่มของตัวอักษรไทย</title>
		<link>http://wittawat.com/blog/?p=357</link>
		<comments>http://wittawat.com/blog/?p=357#comments</comments>
		<pubDate>Fri, 19 Mar 2010 15:03:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jtcc]]></category>
		<category><![CDATA[nlp]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[tcc]]></category>
		<category><![CDATA[thai]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=357</guid>
		<description><![CDATA[TCC คือกลุ่มของตัวอักษรไทยที่ไม่สามารถแยกจากกันได้ตามหลักการเขียนของภาษาไทย เสนอครั้งแรกใน paper Character Cluster Based Thai Information Retrieval TCC หนึ่งอาจจะไม่เป็นคำหรือไม่เป็นพยางค์ด้วยซ้ำ ตัวอย่างต่อไปนี้เป็น TCC ทั้งสิ้น จะ, กับ, เข้, เพราะ, อื้อ, รู้, ใส่ เป็นต้น จะเห็นว่าแต่ละ TCC ที่ยกตัวอย่างไปไม่สามารถแยกตัวอักษรใดออกมาได้เลย เพราะถ้าแยกแล้วจะไม่สามารถอ่านได้ เช่น &#8220;ใส่&#8221; มี 3 ตัวอักษรแยก &#8220;ใ&#8221; ออกมาก็ไม่มีความหมายเพราะ &#8220;ใ&#8221; ต้องตามด้วยพยัญชนะบางอย่าง แยกไม้เอกยิ่งไม่ได้ใหญ่เพราะไม้เอกอยู่ตัวเดียวโดดๆ ไม่ได้ แบบนี้เป็นต้น มาดูตัวอย่างการแบ่ง TCC ที่ยาวขึ้นบ้าง Input: ฉันฝากขวดขี้ผึ้งใส่ถุงให้เศรษฐี Output TCCs: ฉัน&#124;ฝา&#124;ก&#124;ข&#124;ว&#124;ด&#124;ขี้&#124;ผึ้&#124;ง&#124;ใส่&#124;ถุ&#124;ง&#124;ให้&#124;เศ&#124;ร&#124;ษ&#124;ฐี&#124; สังเกตตรงคำว่า &#8220;ฝาก&#8221; เราไม่แยก TCC เป็น &#8220;ฝาก&#124;&#8221; แต่แยกเป็น &#8220;ฝา&#124;ก&#124;&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>TCC คือกลุ่มของตัวอักษรไทยที่ไม่สามารถแยกจากกันได้ตามหลักการเขียนของภาษาไทย เสนอครั้งแรกใน paper <a name="What_is_TCC_?"> </a><a rel="nofollow" href="http://portal.acm.org/citation.cfm?id=355225">Character Cluster Based Thai Information Retrieval</a> TCC หนึ่งอาจจะไม่เป็นคำหรือไม่เป็นพยางค์ด้วยซ้ำ ตัวอย่างต่อไปนี้เป็น TCC ทั้งสิ้น</p>
<p>จะ, กับ, เข้, เพราะ, อื้อ, รู้, ใส่</p>
<p>เป็นต้น จะเห็นว่าแต่ละ TCC ที่ยกตัวอย่างไปไม่สามารถแยกตัวอักษรใดออกมาได้เลย เพราะถ้าแยกแล้วจะไม่สามารถอ่านได้ เช่น &#8220;ใส่&#8221; มี 3 ตัวอักษรแยก &#8220;ใ&#8221; ออกมาก็ไม่มีความหมายเพราะ &#8220;ใ&#8221; ต้องตามด้วยพยัญชนะบางอย่าง แยกไม้เอกยิ่งไม่ได้ใหญ่เพราะไม้เอกอยู่ตัวเดียวโดดๆ ไม่ได้ แบบนี้เป็นต้น มาดูตัวอย่างการแบ่ง TCC ที่ยาวขึ้นบ้าง</p>
<ul>
<li><a name="TCC_Examples">Input: ฉันฝากขวดขี้ผึ้งใส่ถุงให้เศรษฐี </a></li>
<li><a name="TCC_Examples">Output TCCs: ฉัน|ฝา|ก|ข|ว|ด|ขี้|ผึ้|ง|ใส่|ถุ|ง|ให้|เศ|ร|ษ|ฐี| </a></li>
</ul>
<p>สังเกตตรงคำว่า &#8220;ฝาก&#8221; เราไม่แยก TCC เป็น &#8220;ฝาก|&#8221; แต่แยกเป็น &#8220;ฝา|ก|&#8221; เพราะเราไม่สามารถบอกได้ว่า &#8220;ก&#8221; จะเป็นตัวสะกดหรือจะเป็นพยัญชนะต้นให้กับ TCC ตัวถัดไป จึงต้องแบ่งย่อยไว้ก่อน คำว่า &#8220;ขวด&#8221; ที่แบ่งแบบนั้นก็ด้วยเหตุผลเดียวกัน สำหรับผู้ที่ทำงานด้านการประมวลผลภาษาธรรมชาติคงรู้จัก TCC ดีอยู่แล้ว แล้วอาจจะเขียนโปรแกรมตัดได้ไม่ยากเย็นนัก เช่นใช้ regular expression</p>
<p>เร็วๆนี้ เพิ่งนำตัวตัด TCC ที่พัฒนาขึ้นมาปล่อยเป็น library (open-source) ชื่อ JTCC พัฒนาด้วยภาษา Java โดยใช้ parser generator ที่ชื่อ ANTLR ช่วยเพื่อสร้าง parser จาก grammar ของ TCC ที่เขียนไว้  หากสนใจก็เชิญนำไปใช้ได้ด้วย license GPLv3 ตัว library ยังไม่สมบูรณ์มากนัก แน่นอนยังมีจุดบกพร่อง (ดูได้ที่<a href="http://code.google.com/p/jtcc/issues/list">หน้า issue</a> ในเว็บของ JTCC) หากมีข้อเสนอแนะหรือคำถามก็เชิญได้เลยครับ <img src='http://wittawat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>เว็บหลักของ JTCC :  <a href="http://jtcc.googlecode.com">http://jtcc.googlecode.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=357</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Executable Jar กับ Netbeans 6.x</title>
		<link>http://wittawat.com/blog/?p=353</link>
		<comments>http://wittawat.com/blog/?p=353#comments</comments>
		<pubDate>Fri, 19 Mar 2010 03:15:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=353</guid>
		<description><![CDATA[ปกติหากใช้ Netbeans ในการเขียน Java จะเห็นว่าทุกครั้งที่ build จะมีโฟลเดอร์ชื่อ dist เกิดขึ้นมาในโฟลเดอร์โปรเจค ซึ่งในนั้นจะมี jar ที่เกิดจากการ compile code ในโปรเจคของเรา และจะสามารถ double click เพื่อรันได้เลย (หรือใช้ java -jar บน command line) หากมีการตั้ง main class ไว้ ปัญหาคือว่าบางทีถึงแม้มีการตั้ง main class ใน Netbeans ไว้แล้ว แต่เจ้า jar ที่มันสร้างให้ดันไม่สามารถรันได้ นั่นคือ double click ก็ไม่ได้ ใช้ java -jar ก็บอกหา main class ไม่เจอ หากลองเปิดไฟล์ manifest ใน jar ดูจะพบว่ามันไม่ได้เขียน entry [...]]]></description>
			<content:encoded><![CDATA[<p>ปกติหากใช้ Netbeans ในการเขียน Java จะเห็นว่าทุกครั้งที่ build จะมีโฟลเดอร์ชื่อ dist เกิดขึ้นมาในโฟลเดอร์โปรเจค ซึ่งในนั้นจะมี jar ที่เกิดจากการ compile code ในโปรเจคของเรา และจะสามารถ double click เพื่อรันได้เลย (หรือใช้ java -jar บน command line) หากมีการตั้ง main class ไว้</p>
<p>ปัญหาคือว่าบางทีถึงแม้มีการตั้ง main class ใน Netbeans ไว้แล้ว แต่เจ้า jar ที่มันสร้างให้ดันไม่สามารถรันได้ นั่นคือ double click ก็ไม่ได้ ใช้ java -jar ก็บอกหา main class ไม่เจอ หากลองเปิดไฟล์ manifest ใน jar ดูจะพบว่ามันไม่ได้เขียน entry &#8220;Main-Class&#8221; ไว้ จึงไม่แปลกที่มันรันไม่ได้</p>
<p>เหตุผลที่มันไม่ใส่ไว้ให้มีหลายกรณี</p>
<ul>
<li>import project มาจาก Eclipse มีที อาจมี config อะไรบางอย่างไม่ตรง</li>
<li>ตอนสร้างโปรเจคใน Netbeans เลือกเป็น Java library ไม่ได้เลือก Java application</li>
</ul>
<h1>วิธีแก้</h1>
<p>เปิดไฟล์ PROJECTPATH/nbproject/project.properties เพิ่ม
<pre class="brush: plain;">manifest.file=manifest.mf</pre>
<p>ลงไป แค่นี้ก็จะมี entry &#8220;Main-Class&#8221; ขึ้นมาใน manifest แล้ว jar ก็จะรันได้</p>
<h1>อ้างอิง</h1>
<ul>
<li><a href="http://wiki.netbeans.org/FaqNoMainClass">http://wiki.netbeans.org/FaqNoMainClass</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=353</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>เทคโนโลยีร้อยสัมพันธ์ข่าวบนเว็บ</title>
		<link>http://wittawat.com/blog/?p=340</link>
		<comments>http://wittawat.com/blog/?p=340#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:54:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[allnews]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://wittawat.com/blog/?p=340</guid>
		<description><![CDATA[เทคโนโลยีร้อยสัมพันธ์ข่าวบนเว็บ (http://allnews.in.th) เป็นระบบนำเสนอข่าวที่พัฒนาโดยสถาบันเทคโนโลยีนานาชาติ สิรินธร มหาวิทยาลัยธรรมศาสตร์ โดยมีจุดเด่นตรงที่สามารถหาความสัมพันธ์ข่าวจากหลายสำนักพิมพ์ได้อย่างอัตโนมัติ ทุกขั้นตอนตั้งแต่การหาข่าว การตัดคำ การหาคำสำคัญ (tag) การหาความเกี่ยวข้องของข่าว จนสุดท้ายนำเสนอขึ้นเว็บไม่มีการใช้คน ทั้งหมดเป็นไปอย่างอัตโนมัติ ช่วงนี้เป็นช่วงที่เพิ่งเปิดให้ลองใช้งานดู ในขั้นแรกนี้มี feature เด่นๆอยู่ดังนี้ หาคำสำคัญในข่าวอัตโนมัติ โดยระบบสามารถหาชื่อคนและชื่อสถานที่ในข่าวได้ หาความสัมพันธ์ของข่าวได้ โดยระบบจะแยกความสัมพันธ์เป็น 3 ระดับจากน้อยไปมาก คือ ข่าวเกี่ยวข้อง ข่าวคล้าย และข่าวเหมือน แสดงสถิติของคำสำคัญได้ โดยผู้ใช้สามารถเลือกได้ว่าจะดูคำสำคัญจากหมวดใด ดูคำประเภทอะไร (กริยา บุคคลหรือสถานที่) และช่วงเวลาจากวันไหนถึงวันไหน รูปแบบจะออกมาเป็น tag cloud โดยคำที่สำคัญจะเป็นตัวใหญ่ ลองเข้าชมได้ที่ http://allnews.in.th]]></description>
			<content:encoded><![CDATA[<p>เทคโนโลยีร้อยสัมพันธ์ข่าวบนเว็บ (<a href="http://allnews.in.th">http://allnews.in.th</a>) เป็นระบบนำเสนอข่าวที่พัฒนาโดยสถาบันเทคโนโลยีนานาชาติ สิรินธร มหาวิทยาลัยธรรมศาสตร์ โดยมีจุดเด่นตรงที่สามารถหาความสัมพันธ์ข่าวจากหลายสำนักพิมพ์ได้อย่างอัตโนมัติ ทุกขั้นตอนตั้งแต่การหาข่าว การตัดคำ การหาคำสำคัญ (tag) การหาความเกี่ยวข้องของข่าว จนสุดท้ายนำเสนอขึ้นเว็บไม่มีการใช้คน ทั้งหมดเป็นไปอย่างอัตโนมัติ</p>
<p>ช่วงนี้เป็นช่วงที่เพิ่งเปิดให้ลองใช้งานดู ในขั้นแรกนี้มี feature เด่นๆอยู่ดังนี้</p>
<ol>
<li>หาคำสำคัญในข่าวอัตโนมัติ โดยระบบสามารถหาชื่อคนและชื่อสถานที่ในข่าวได้<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/03/news_tags1.png"><img class="aligncenter size-full wp-image-342" title="news_tags" src="http://wittawat.com/blog/wp-content/uploads/2010/03/news_tags1.png" alt="news_tags" width="579" height="147" /></a></li>
<li>หาความสัมพันธ์ของข่าวได้ โดยระบบจะแยกความสัมพันธ์เป็น 3 ระดับจากน้อยไปมาก คือ ข่าวเกี่ยวข้อง ข่าวคล้าย และข่าวเหมือน<br />
<a href="http://wittawat.com/blog/wp-content/uploads/2010/03/relations.png"><img class="aligncenter size-full wp-image-343" title="relations" src="http://wittawat.com/blog/wp-content/uploads/2010/03/relations.png" alt="relations" width="589" height="156" /></a></li>
<li>แสดงสถิติของคำสำคัญได้ โดยผู้ใช้สามารถเลือกได้ว่าจะดูคำสำคัญจากหมวดใด ดูคำประเภทอะไร (กริยา บุคคลหรือสถานที่) และช่วงเวลาจากวันไหนถึงวันไหน รูปแบบจะออกมาเป็น tag cloud โดยคำที่สำคัญจะเป็นตัวใหญ่</li>
</ol>
<p>ลองเข้าชมได้ที่ <a href="http://allnews.in.th/">http://allnews.in.th</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wittawat.com/blog/?feed=rss2&amp;p=340</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
