<?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>Mr./Ms. Days (MMDays) - 網路, 資訊, 觀察, 生活MMDays &#8211; Information Retrieval</title>
	<atom:link href="http://mmdays.com/tag/information-retrieval/feed/" rel="self" type="application/rss+xml" />
	<link>http://mmdays.com</link>
	<description>網路, 產業, 資訊, 觀察, 生活, 電影, 技術, 新知, 科技, 媒體, 趨勢, Web 2.0</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:35:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>微網誌上訊息是如何發送的？以 Twitter 為例，一窺即時搜尋的可能性</title>
		<link>http://mmdays.com/2009/07/29/twitter_datase/</link>
		<comments>http://mmdays.com/2009/07/29/twitter_datase/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 02:10:37 +0000</pubDate>
		<dc:creator>Mr. Friday</dc:creator>
				<category><![CDATA[Mr. Friday]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[專欄]]></category>
		<category><![CDATA[資訊視覺化]]></category>
		<category><![CDATA[Information Retrieval]]></category>
		<category><![CDATA[real-time search]]></category>
		<category><![CDATA[SIGIR]]></category>
		<category><![CDATA[即時搜尋]]></category>
		<category><![CDATA[微網誌]]></category>
		<category><![CDATA[新聞]]></category>

		<guid isPermaLink="false">http://mmdays.com/?p=7539</guid>
		<description><![CDATA[Twitter推出即時搜尋功能之後，一時之間吸引了相當多人的目光。可是就如同我曾經在 Twitter 引爆即時搜尋風潮，但是目前的即時搜尋到底解決了什麼問題？這裡面提到過的，其實現在的即時搜尋還有很多可待改進之處，其中一個大問題就是如何將訊息排名。我當時是這樣寫的：

排序是一個搜尋引擎的重要課題，因為人們只想要看『重要的資訊』，沒有排序過的資訊根本是一堆垃圾。而像Twitter這樣用時間排序，也不能說是不行，只能說是一種偷懶的方法而已。]]></description>
			<content:encoded><![CDATA[<p><strong>Posted by </strong><a href="http://mmdays.com/category/mr-friday/"><strong>Mr. Friday</strong></a></p>
<p>美國知名的部落格 ReadWriteWeb，日前發表了一篇<a href="http://www.readwriteweb.com/archives/evolution_revolution_visualizing_millions_iran_tweets.php">來自 Infoharmoni 這家自稱研究即時搜尋的 startup 的文章</a>，看了以後很有回到學校裡面和教授討論paper、研究理論的興奮感覺。趁感覺還在，趕快地跟大家分享一下。</p>
<p>Twitter推出即時搜尋功能之後，一時之間吸引了相當多人的目光。可是就如同我曾經在 <a href="http://mmdays.com/2009/06/15/realtime_search/">Twitter 引爆即時搜尋風潮，但是目前的即時搜尋到底解決了什麼問題？</a>這裡面提到過的，其實現在的即時搜尋還有很多可待改進之處，其中一個大問題就是如何將訊息排名。我當時是這樣寫的：</p>
<blockquote><p>排序是一個搜尋引擎的重要課題，因為人們只想要看『重要的資訊』，沒有排序過的資訊根本是一堆垃圾。而像Twitter這樣用時間排序，也不能說是不行，只能說是一種偷懶的方法而已。</p></blockquote>
<p>即時訊息的排序，或者說Ranking，我們要怎麼做呢？或者，除了排序，我們還能從即時訊息裡面挖掘出來什麼？要回答這個問題，我們應該先觀察一下即時訊息的資料特性，以及它是如何傳播的，會有比較清楚的頭緒。</p>
<p><span id="more-7539"></span></p>
<p><strong>研究標的</strong></p>
<p><a title="Flickr 上 itia4u 的 iran_revolution_jul09a" href="http://www.flickr.com/photos/itia4u/3767777470/"><img src="http://farm4.static.flickr.com/3436/3767777470_b84ef4df0a_o.jpg" alt="iran_revolution_jul09a" width="610" height="109" /></a></p>
<p>上圖是今年六月伊朗大選時，在Twitter上討論”Iran”這個關鍵字的tweet，單位是一小時。可以看得出資料量相當龐大，最高峰時每小時的討論量可以超過8000則推，多到你根本看不完。不過也因此，如何在當中篩選重要的推，並以適當的方法呈現出來，就變得格外有價值。</p>
<p><strong>訊息特性</strong></p>
<p><a title="Flickr 上 itia4u 的 iran_revolution_jul09b" href="http://www.flickr.com/photos/itia4u/3767777472/"><img src="http://farm3.static.flickr.com/2606/3767777472_7ba86e6448_o.jpg" alt="iran_revolution_jul09b" width="570" height="375" /></a></p>
<p>一個熱門的新聞關鍵字，隨著更多新訊息的出現，會隨時改變它的資訊內容，以及跟其他關鍵字的交互關係。這樣講有點抽象，我舉個例：如果我們現在去plurk上面，搜尋”戴爾”這個字，那我們可以大概的觀察到討論內容的關鍵字會隨著新聞的不斷出現而改變：</p>
<ul>
<li>6/26：螢幕、好便宜</li>
<li>6/30：說好的螢幕呢</li>
<li>7/4：電腦、E4300、明翰、泡沫網</li>
<li>7/7：總經理、折價券</li>
</ul>
<p>光是從新關鍵字的出現，我們就可以察覺到有新聞有新進展出現，研究也證實了這一點。上圖是 infoharmoni 研究伊朗事件的相關 tweet 時，發現每當伊朗選舉有新的進展/消息出現時，與 #iranelection 一起出現的關鍵字就會改變，而且在事件發生後的當下會大量出現。</p>
<p><strong>傳遞路徑</strong></p>
<p>那Twitter上面訊息是怎麼傳遞的？誰看了你的推？這個訊息原是有點難回答，不過要感謝”retweet銳推”這個功能的出現。Retweet 這個功能像是說『我看了你訊息，而且我也推薦這個訊息，要給我認識的朋友看』，因此作為即時訊息傳遞路徑的觀察對象，可以說再合適也不過了。</p>
<p>如果A、B這兩個人分別代表地圖上的兩個點，而A推了一則來自B的推文，就等於在A點與B點間建立一條連線，那麼可以用下圖代表伊朗事件裡，Twitter上即時訊息的傳輸關係：</p>
<p><a title="Flickr 上 itia4u 的 iran_revolution_jul09d" href="http://www.flickr.com/photos/itia4u/3767777480/"><img src="http://farm3.static.flickr.com/2509/3767777480_d924b9dd58_o.jpg" alt="iran_revolution_jul09d" width="610" height="732" /></a></p>
<p>這張圖真是再清楚不過地說明了伊朗事件Tweet的特性了。</p>
<p>首先，只有極少數的五個人〈五個白點〉，他們的推會大量的被其他人〈周圍的紅色圓點〉retweet。這相當符合我之前寫過的另外一篇：<a href="http://mmdays.com/2009/07/01/power_law_5/">淺談網路世界的 Power Law 現象〈五〉──Plurk的名人效應與酪梨壽司的一千噗</a> 裡面談到的現象，就是微網誌裡有相當大的群聚效應，群聚在 Infoharmoni 所謂的『Information Elite』的這一小撮人上。</p>
<p>再者，雖說是群聚效應，但是這張圖的群聚比例未免也太懸殊了，看起來就像是五個不同的人、對著五群各自不認識的群眾發言。如果這五個人的發言效應這麼大、又都是針對同一事件發言，那應該會有很多網友是同時會關注這五個人的推才是。但從圖表來看，同時關注這五個人的網友〈位在中間的點〉反倒不如各自的關注者多？怎會這樣？</p>
<p>Infoharmoni 認為，這是因為新聞事件與媒體報導的關係，Twitter 上關注伊朗的人突然爆增，以至於這群人還來不及形成完整的社交結構所致。</p>
<p><a title="Flickr 上 itia4u 的 iran_revolution_jul09e" href="http://www.flickr.com/photos/itia4u/3767777494/"><img src="http://farm4.static.flickr.com/3531/3767777494_77134a7572_o.jpg" alt="iran_revolution_jul09e" width="610" height="734" /></a></p>
<p>相比之下，這是分析同時提到伊朗與 ”obama” 兩個關鍵字的RT關係，所畫出來的圖。你可以從圖上觀察到，雖然仍然有群聚效應，但是單一支持者的規模小得多，連線間呈現複雜的交錯關係，代表這些討論者之間已經形成一個比較完整的社交結構。猜想，或許在伊朗事件裡提到 obama 的人，多半是美國人，由於他們使用twitter的時間比較久，所以在上面的社交結構也比較複雜些。</p>
<p><strong>分析即時訊息可以做什麼？</strong></p>
<p>這幾張圖表不只是炫而已，這篇文章已經相當清楚的暗示了 Twitter 上的即時訊息可以做什麼應用出來。前面關鍵字變化的部分，讓我想起了 Google News 這種自動偵測新聞事件、判斷新聞的半衰期、自動排序新聞的服務。而後面關於 Retweet 的研究，則跟 Google 最擅長的超連結分析與搜尋有異曲同工之妙。</p>
<p>但是 Twitter 比起一般的網頁，更為棘手的是新訊息會一直不斷湧入，因此如果要在上面發展搜尋或 Data Mining 的技巧，必須考慮如何快速更新搜尋結果的問題。</p>
<p>總而言之，即時訊息的分析與搜尋、甚至從中挖掘出隱藏的社交結構，可以說是目前最熱門的話題之一。透過 infoharmoni 的資料特性分析，或許能一窺即時搜尋的可能性。<a href="http://www.readwriteweb.com/archives/evolution_revolution_visualizing_millions_iran_tweets.php">infoharmoni 稱</a>，如何動態地、有系統地挖掘出隱藏的新社交結構，可能是個價值百萬美金、甚至是上兆美金的大哉問。那該怎麼做？或許先仔細研究  Twitter 上的訊息特性，就能有一些頭緒。</p>
<p>==</p>
<p>什麼時候SIGIR 會出現微網誌搜尋的相關文章呢？看起來可能快了…<br/>
<div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="http://plurktop.mmdays.com/replurkdetail/?link=93195005fe23ebcfc4af8ae87248f819" title="看看其他人討論內容" target="_blank"><img src="http://plurktop.mmdays.com/images/replurk_1.png" style="border:0"></a></td>
</tr>
<tr>
<td><a href="http://plurk.com/?qulaifier=shares&#038;status=http%3A%2F%2Fmmdays.com%2F2009%2F07%2F29%2Ftwitter_datase%2F+%28%E5%BE%AE%E7%B6%B2%E8%AA%8C%E4%B8%8A%E8%A8%8A%E6%81%AF%E6%98%AF%E5%A6%82%E4%BD%95%E7%99%BC%E9%80%81%E7%9A%84%EF%BC%9F%E4%BB%A5+Twitter+%E7%82%BA%E4%BE%8B%EF%BC%8C%E4%B8%80%E7%AA%BA%E5%8D%B3%E6%99%82%E6%90%9C%E5%B0%8B%E7%9A%84%E5%8F%AF%E8%83%BD%E6%80%A7%29+-+%E8%BD%89%E5%99%97%E6%8E%92%E8%A1%8C%E6%A6%9C+http%3A%2F%2Fplurktop.mmdays.com%2Freplurk" title="推到噗浪" target="_blank"><img style="border:0" src="http://plurktop.mmdays.com/images/replurk_2.png" /></a></td>
</tr>
</table>
</div>
<p><br/><a href="http://www.facebook.com/MMDays" target="_blank">加入MMDays在facebook的粉絲團 隨時閱讀最新文章</a><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://mmdays.com/2009/07/29/twitter_datase/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>字字珠璣: TF 和 IDF</title>
		<link>http://mmdays.com/2007/10/19/tf_idf/</link>
		<comments>http://mmdays.com/2007/10/19/tf_idf/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 16:49:36 +0000</pubDate>
		<dc:creator>Mr. Thursday</dc:creator>
				<category><![CDATA[Mr. Thursday]]></category>
		<category><![CDATA[專欄]]></category>
		<category><![CDATA[電腦科學]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Chinese Room]]></category>
		<category><![CDATA[IDF]]></category>
		<category><![CDATA[Information Retrieval]]></category>
		<category><![CDATA[TF]]></category>

		<guid isPermaLink="false">http://mmdays.com/2007/10/19/tf_idf/</guid>
		<description><![CDATA[Posted By Mr. Thursday 在今日我們可以從網路上吸收大量資訊，有時候一堆文章看不完。如果我們想要吸收資訊，時間卻又不夠的時候，使用電腦幫我們過濾資訊，或是用電腦幫我們做個總整理，是個方法。如果今天手中有一篇文章，我們想要用電腦幫我們找出這篇文章最重要的關鍵字，要怎麼做呢？在資訊檢索 (IR: Information Retrieval)領域裡面，有個基礎的方法，入門必學的方法，就是使用 TF 和 IDF (TF: Term Frequency, IDF: Inverse Document Frequency)。使用這兩個估計值，可以讓電腦具有計算重要關鍵字的能力，進而節省我們的時間。 接下來讓我們看看，TF 和 IDF 個是甚麼東西呢？TF 全名是Term Frequency，也就是某個關鍵字出現的次數，譬如說某篇文章裡面，「電腦」這個詞出現很多次，或是「使用者需求」這個詞出現很多次，那麼這些詞句的出現頻率，就會很高。一篇文章中出現很多次的詞句，必定有其重要性。譬如說一篇論述「人工智慧」的文章，「人工智慧」這個詞句再文章中出現的頻率也一定很高。然而為甚麼除了 TF  (Term Frequency) 以外，還要有 IDF (Inverse Document Frequency) 呢？ 讓我們先想想，如果單使用某個字詞出現的頻率，來判斷一篇文章最重要的關鍵字，會有甚麼困難。首先，我們會遇到一些常用字詞，出現的頻率也很高，會和重要字詞出現的頻率一樣高，讓電腦因此無法分辨出，哪些是常用字詞，那些是重要字詞。如果就英文來說，有個規則是語言學家 (linguist) 歸納出來的規則，叫做 Zipf&#8217;s Law。 引述中文維基百科的一段介紹如下： 從根本上講, 齊夫定律 可以表述為, 在自然語言的 語素庫 里, 一個單詞出現的頻率與它在頻率表裡的排名成 反比. 所以, 頻率最高的單詞出現的頻率大約是出現頻率第二位的單詞的 2 倍，而出現頻率第二位的單詞則是出現頻率第四位的單詞的2倍。這個定律被作為任何與 power law probability distributions [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Posted By <font color="#008000">Mr. Thursday</font></strong></p>
<p>在今日我們可以從網路上吸收大量資訊，有時候一堆文章看不完。如果我們想要吸收資訊，時間卻又不夠的時候，使用電腦幫我們<strong>過濾</strong>資訊，或是用電腦幫我們做個<strong>總整理</strong>，是個方法。如果今天手中有一篇文章，我們想要用電腦幫我們找出這篇文章最重要的關鍵字，要怎麼做呢？在<strong>資訊檢索 </strong>(IR: Information Retrieval)領域裡面，有個基礎的方法，入門必學的方法，就是使用 <strong>TF </strong>和<strong> IDF</strong> (TF: <strong>Term Frequency</strong>, IDF: <strong>Inverse Document Frequency</strong>)。使用這兩個估計值，可以讓電腦具有計算重要關鍵字的能力，進而節省我們的時間。</p>
<p>接下來讓我們看看，<strong>TF </strong>和 <strong>IDF </strong>個是甚麼東西呢？<strong>TF</strong> 全名是Term Frequency，也就是某個<strong>關鍵字出現的次數</strong>，譬如說某篇文章裡面，「電腦」這個詞出現很多次，或是「使用者需求」這個詞出現很多次，那麼這些詞句的出現頻率，就會很高。一篇文章中出現很多次的詞句，必定有其重要性。譬如說一篇論述「人工智慧」的文章，「人工智慧」這個詞句再文章中出現的頻率也一定很高。然而為甚麼除了 TF  (Term Frequency) 以外，還要有 IDF (Inverse Document Frequency) 呢？</p>
<p><span id="more-4888"></span></p>
<p>讓我們先想想，如果單使用某個字詞出現的頻率，來判斷一篇文章最重要的關鍵字，會有甚麼困難。首先，我們會遇到一些<strong>常用字詞</strong>，出現的頻率也很高，會和<strong>重要字詞</strong>出現的頻率一樣高，讓電腦因此無法分辨出，哪些是<strong>常用字詞</strong>，那些是<strong>重要字詞</strong>。如果就英文來說，有個規則是語言學家 (linguist) 歸納出來的規則，叫做 <a href="http://en.wikipedia.org/wiki/Zipf's_law" target="_blank">Zipf&#8217;s Law</a>。</p>
<p style="text-align:center;"><img src="http://www.acm.org/crossroads/xrds13-4/gfx/zipfplot.jpg" border="0" height="251" width="347" /></p>
<p>引述中文維基百科的一段介紹如下：</p>
<blockquote><p>從根本上講, <strong>齊夫定律</strong> 可以表述為, 在<a href="http://zh.wikipedia.org/w/index.php?title=%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80&amp;variant=zh-tw" title="自然诨??">自然語言</a>的 <a href="http://zh.wikipedia.org/w/index.php?title=%E8%AF%AD%E7%B4%A0%E5%BA%93&amp;action=edit" title="诧??库" class="new">語素庫</a> 里, 一個單詞出現的頻率與它在頻率表裡的排名成 <a href="http://zh.wikipedia.org/w/index.php?title=%E5%8F%8D%E6%AF%94&amp;action=edit" title="反比" class="new">反比</a>. 所以, 頻率最高的單詞出現的頻率大約是出現頻率第二位的單詞的 2 倍，而出現頻率第二位的單詞則是出現頻率第四位的單詞的2倍。這個定律被作為任何與 <a href="http://zh.wikipedia.org/w/index.php?title=Power_law&amp;action=edit" title="Power law" class="new">power law</a> <a href="http://zh.wikipedia.org/w/index.php?title=Probability_distribution&amp;action=edit" title="Probability distribution" class="new">probability distributions</a> 有關的事物的參考。 這個 &#8220;定律&#8221; 是 <a href="http://zh.wikipedia.org/w/index.php?title=Harvard&amp;action=edit" title="Harvard" class="new">Harvard</a> <a href="http://zh.wikipedia.org/w/index.php?title=Linguist&amp;action=edit" title="Linguist" class="new">linguist</a> <a href="http://zh.wikipedia.org/w/index.php?title=George_Kingsley_Zipf&amp;action=edit" title="George Kingsley Zipf" class="new">George Kingsley Zipf</a> (<a href="http://zh.wikipedia.org/w/index.php?title=%E5%9C%8B%E9%9A%9B%E9%9F%B3%E6%A8%99&amp;variant=zh-tw" title="國際音標">IPA</a> <span class="IPA">[zɪf]</span>)發表的.</p>
<p>比如, 在 <a href="http://zh.wikipedia.org/w/index.php?title=Brown_%E8%AF%AD%E5%BA%93&amp;action=edit" title="Brown 该??" class="new">Brown 語庫</a>中， &#8220;the&#8221; 是最常見的單詞，它在這個語庫中出現了大約 7 %（10 萬單詞中出現 69971 次）。正如齊夫定律中所描述的一樣，出現次數為第二位的單詞 &#8220;of&#8221; 占了整個語庫中的 3.5% (36411次), 之後的是&#8221;and&#8221; (28852次). 僅僅 135 但此項就占了 Brown 語庫的一半。</p></blockquote>
<p>所以我們現在知道問題在哪邊了。如果只用詞句出現的頻率來判斷某一篇文章裡面最重要的關鍵字，我們可能會找到<strong>常用字</strong>，而不是<strong>最重要的字</strong>，像是英文裡面的 &#8220;the&#8221;、&#8221;a&#8221;、&#8221;it&#8221;，都是常常出現的字，但是通常一篇文章裡面最重要的字不是這些字，即使那些重要的字出現的頻率也很高。</p>
<p>這個時候我們要怎麼辦呢？IDF 在這個時候就幫上忙了。在了解 IDF 之前，我們先了解 DF 是甚麼。<strong>DF</strong> 就是Document Frequency，也就是說，如果今天我們手中有固定 N 篇文章，某個關鍵字的 Document Frquency (<strong>DF</strong>)，就是說這個關鍵字在 N 篇文章裡面出現了幾次。Inverse Document Frequency (<strong>IDF</strong>) 則是把 DF 取倒數，如此一來，一個數字乘以<strong> IDF</strong>，就等於是除以 <strong>DF </strong>的意思。</p>
<p>有了<strong> TF </strong>和 <strong>IDF </strong>以後，我們就可以計算<strong> TF 乘上 IDF</strong>，<strong>對每一個關鍵字都算出一個分數</strong>。這個分數的高低，就代表了這個關鍵字在某篇文章中的重要程度。為甚麼我們說這樣子可以找出重要的字，而不是常出現的字呢？因為 TF 會把某篇文章中，出現最多次的排在第一位，其次的排在第二位，以此類推。然而乘上 IDF 以後，也就是除以 DF，那些常常出現的字，像是英文中的 &#8220;the&#8221;、&#8221;a&#8221;、&#8221;it&#8221;，因為每一篇文章都會出現，所以 DF 就大。DF 大，取倒數之後的 IDF 就小，IDF 小，乘上 TF 以後，雖然&#8221;the&#8221;、&#8221;a&#8221;、&#8221;it&#8221;在某篇文章中出現的頻率很高，但是因為 IDF 小，TF * IDF 一相乘，重要性就變低了，我們 (電腦程式) 就不會把這些<strong>常出現的字</strong>，誤認為是<strong>重要的字</strong>了！</p>
<p>真正<strong>重要的字</strong>會得到甚麼樣子的分數呢？如果這篇文章剛好在講 AI，&#8221;AI&#8221; 出現很多次，因此 &#8220;AI&#8221; 在這篇文章裡面的 TF 很高。然而我們電腦資料庫裡面的 N 篇文章，並不是每一篇都在講  AI，也因此&#8221;AI&#8221;可能只有在 N 篇文章裡面的某 3 篇文章出現，因此 <strong>DF </strong>只有 3，<strong>IDF </strong>變成 0.33，假設我們 N = 100 有 100 篇文章在資料庫裡面，其他常出現字像是 &#8220;the&#8221; 每一篇都出現，<strong>DF </strong>就是 100，<strong>IDF </strong>就是 0.01。所以 &#8220;AI&#8221; 的 IDF 會比 &#8220;the&#8221; 的 IDF 高，假設這篇文章中 &#8220;AI&#8221; 和 &#8220;the&#8221; 兩個字出現的次數剛好一樣，乘上<strong> IDF </strong>以後，&#8221;AI&#8221; 這個字的分數就比 &#8220;the&#8221; 這個字的分數來的高，電腦也就會判斷 &#8220;AI&#8221; 是這篇文章重要的關鍵字，而 &#8220;the&#8221; 這個字並不是這篇文章的重要關鍵字。</p>
<p>所以經由 <strong>TF * IDF</strong>，我們可以計算某個關鍵字，在某篇文章裡面的重要性。從這一個方向，我們可以計算一篇文章中重點的字有哪些，幫我們做一篇文章的總整理。從相反的方向，我們可以給定關鍵字，然後再每一篇文章裡面為這個關鍵字計算一次 TF * IDF，然後比較哪一篇文章，這個關鍵字是最具重要性的，用這個方法找出和一個關鍵字最相關的文章。不管是<strong>從文章找出重點字詞</strong>，或是<strong>由關鍵字找相關文章</strong>，<strong>TF * IDF </strong>都是個基本且不錯的方法。會寫程式又還沒嚐試過這個方法的讀者，或許可以親自試試看，不過可能要先自己準備文章資料庫 (corpus)，或是從網際網路上面用網頁擷取器 (crawler) 存幾篇有興趣的網頁，然後把 HTML 標籤清理乾淨，剩下純文字，就可以用這個方法來小試身手囉！</p>
<p>我們也可以比較一下人類和電腦的不同。電腦做<strong>數學數字的計算</strong>，或是<strong>執行固定的步驟</strong> ，非常擅長，速度也很快。人類可以了解一個字的<strong>意思</strong>，讀完一篇文章以後，了解了意思，之後要找這篇文章最重要的關鍵字，是從「<strong>意義</strong>」開始，回憶出或做出結論，這篇文章重要的關鍵字是甚麼。</p>
<p>然而如果要電腦也遵照這個方向，先了解字的意義，再了解文章的意義，然後在做出結論，這篇文章的重要關鍵字，反而困難，因為要了解字的意義，電腦需要先有一個語意網路 (<strong>Semantic Network</strong>)，或是知識的分類關係樹 (<strong>Ontology</strong>)，把字句依照語意分門別類，有如生物裡面的「界門綱目科屬種」一般的關係分類，才有辦法了解一個字和其他字的關係。之後要了解一篇文章，又必須要了解一個句子，牽涉到自然語言處理 (<strong>NLP: Natural language Processing</strong>) 的問題，像是從句子裡面找出主詞、動詞、和受詞，以及補語，分辨出子句和主句，代名詞的指稱，以及前後文判斷產生不同的剖析 (<strong>parsing</strong>)。了解完一句，才能了解整篇文章。</p>
<p>因此，<strong>TF * IDF </strong>對於電腦來說，計算速度快，工程也不浩大，不用大型計算機就可以計算。這邊也可以順便提到 strong AI 和 weak AI 的關係。如果就工程的角度，<strong>TF * IDF </strong>是個好方法，it works! 節省我們的時間，或是解決大問題中的一個小環節。然而 strong AI 在這邊會提出「<strong>中文房間</strong>」(Chinese Room) 的論證，也就是說，電腦能夠找出重要關鍵字，是否就代表電腦真的「<strong>知道</strong>」(understand) 關鍵字的意義呢？</p>
<p><strong>中文房間</strong> (<a href="http://en.wikipedia.org/wiki/Chinese_room" target="_blank">Chinese Room</a>) 簡單地說，就是一個人關在房間裡面，只留兩個窗口，一個地方會送紙條出來，另一個地方會送紙條出去。房間裡面有一本手冊，裡面寫滿對照表，記載者看到甚麼英文字，就應該輸出甚麼中文字，以及一些指令的對照，譬如說窗口送一個指令說 COMBINE，就把兩個中文字寫在一起才送出去。接著我們在外面就開始送英文句子進去這個房間，另一個窗口就會有這句話的中文翻譯跑出來。然而這個論證想要坦討的就是，雖然這個房間<strong>看起來像是會把英文翻譯成中文</strong>，但是在房間裡面的那個<strong>操作人員並不懂中文</strong>，他指是按照指令，還有手冊裡面的對照表，<strong>機械式</strong>地動作，可是外面看起來像是這個房間會英翻中，因此這個<strong>房間應該懂得中文</strong>才對。</p>
<p>在這邊我的看法是，也許就近程來看，我們只要有可以解決問題的解答就可以，不管電腦是否真的<strong>懂</strong> (understand) 字的意義。然而長期來說，如果我們真的需要具有人類的智力的電腦出現，能夠真的懂而不是<strong>行為上</strong>看起來懂，那麼就要仔細探討<strong>中文房間</strong>這種論證。也許生物的方法，像是<strong>計算神經科學</strong>的方法，是一個方向。</p>
<p>我們可能又會問，神經元只有動作電位和靜止兩個狀態，怎麼能了解<strong>意義</strong>？但是只有一個神經元，或許沒辦法了解意義，<strong>全部大腦的神經元交互作用</strong>，<strong>意義</strong>可能就因此被了解了！其中的奧妙，就是計算神經科學嚐試要解答的問題之一。有興趣的讀者也可以一起從人腦開始，解決 strong AI 的問題。或是有數學的高手，也許某一個數學理論，可以很漂亮地解決意義了解的問題也說不定，像是 manifolds，具有一個集合使用<strong>不同面向</strong>來觀看的特性，同時具有 Global 和 Local 的性質，是個不錯的候選選項。從這個方向去解決 strong AI 也是另一個可能性。總之，繼續努力研究就是了！</p>
<p>相關連結</p>
<ul>
<li>(Wikipedia) <a href="http://en.wikipedia.org/wiki/Zipf's_law" target="_blank">Zipf&#8217;s Law</a>, <a href="http://acm.uva.es/p/v101/10126.html" target="_blank">ACM10126</a></li>
<li>(Wikipedia) <a href="http://en.wikipedia.org/wiki/Tf-idf" target="_blank">tf*idf</a></li>
<li>(Wikipedia) <a href="http://en.wikipedia.org/wiki/Information_retrieval" target="_blank">Information Retrieval</a></li>
<li>(Wikipedia) <a href="http://en.wikipedia.org/wiki/Chinese_room" target="_blank">Chinese Room</a></li>
</ul>
<p><br/>
<div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="http://plurktop.mmdays.com/replurkdetail/?link=1e926d8ad6891c6fb0f6435a82dcd92b" title="看看其他人討論內容" target="_blank"><img src="http://plurktop.mmdays.com/images/replurk_1.png" style="border:0"></a></td>
</tr>
<tr>
<td><a href="http://plurk.com/?qulaifier=shares&#038;status=http%3A%2F%2Fmmdays.com%2F2007%2F10%2F19%2Ftf_idf%2F+%28%E5%AD%97%E5%AD%97%E7%8F%A0%E7%92%A3%3A+TF+%E5%92%8C+IDF%29+-+%E8%BD%89%E5%99%97%E6%8E%92%E8%A1%8C%E6%A6%9C+http%3A%2F%2Fplurktop.mmdays.com%2Freplurk" title="推到噗浪" target="_blank"><img style="border:0" src="http://plurktop.mmdays.com/images/replurk_2.png" /></a></td>
</tr>
</table>
</div>
<p><br/><a href="http://www.facebook.com/MMDays" target="_blank">加入MMDays在facebook的粉絲團 隨時閱讀最新文章</a><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://mmdays.com/2007/10/19/tf_idf/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

