2010年6月17日 星期四

用Python也能輕鬆玩自然語言處理(2.2)

2.2 條件次數分配(Conditional Frequency Distributions)


我們之前在1.3有先初步介紹過了次數分配的統計函數「FreqDist(mylist)」,可以幫助我們輕鬆地計算串列中各項目的出現情形,而現在我們將在這裡好好的談它。當語料庫的文本被區分各種類別(像是種類、主題、作者等),我們則可以個別地針對不同類別的文本進行次數統計,這將會讓我們有系統地去研究不同類別的差異。在之前的章節你應該已經看到不少次NLTK裡「條件次數分配」的應用了!實際上條件次數分配就是一種次數分配,只是他所強調的是特定的「條件(condition)」!而這個所謂的條件呢,則經常會是文本的類別。下圖就是要表示兩種不同條件的次數分配結果,一邊是新聞類型、一邊是言情類型。

2010年6月13日 星期日

用Python也能輕鬆玩自然語言處理(2.1)

第二章 存取語料庫與詞彙資源

當自然語言處理在實際執行時往往會使用大量的語意資料,或是所謂的語料庫(corpus)。而本章的學習目的為:
  1. 有哪些常見且有用的語料庫與詞彙資源?如何用Python去存取它們?
  2. 有哪些Python概念可以幫上大忙?
  3. 如何避免在撰寫Python程式碼時發生重複的情形(白工)

本章持續會以一連串的範例呈現程式在面對語言處理時的各式概念,我們會逐步地探索Python觀念,因此不用太擔心無法完全理解範例中的每個要素,你只需要嘗試以及觀察它的結果(把他當成一個遊戲就可以了XDD),而程式的術語阿、原理等等我們後面再談就好!

2010年6月4日 星期五

用Python也能輕鬆玩自然語言處理(1.5)

1.5 自然語言的自動學習

我們已經藉由文本與Python程式語言對語言作了一些基本的探索,然而我們更感興趣的是把這些有用的語言計算技術用到一些知識加值或產生新知識的領域,例如資料探勘的工作。因此在之後的章節,我們絕對有必要在自然語言處理中專注更多的基礎知識!

實務層面上,我們在廣大的網路世界中航行時,對於一些特定的網頁資訊的蒐集與整理是需要一些協助的。搜尋引擎當然是為此而蓬勃發展的網路工具,但它有它的限制與缺點。當我們試圖去找尋一些問題的解答,如有沒有一個旅遊網站可以提供給我一些資訊如何以有限的預算在費城與匹茲堡間旅遊?專家是如何看待數位單眼相機的...等等,我們會發現要解決這些問題是利用搜尋引擎時,是需要技巧的、知識的,甚至是運氣!我們多麼希望電腦能回答這類問題,然而這些問題明顯地涉及了各式各樣的語言處理工作,包括資訊擷取(information extraction)、推論(inference)、自動化摘要(summarization)等,要能有效地去做這些工作需要一些大規模或更加深入的知識。

而在
理論層面上,利用人工智慧發展出一套智慧型的機制一直是一項長期的挑戰,其中佔有重要角色的就是自動理解,或是說機器學習。經過了許多年的努力,這個目標的達成依舊是十分的艱難,但是自然語言處理的技術卻是越臻成熟,用自動的方法去分析非結構的文本變得是一件常見的事,這種自然語言的自動學習也成為一種公認的領域。


在這小節中,我們將介紹一些語言學習的技術,來告訴你接下來我們要走的路還有多長!