2010-04-03 38 views
12

我是NLP和NLTK的初學者。我對NLP非常感興趣,因此 加入了一個本地機構的AI週末課程,這需要我 完成課程的一個項目,我決定在NLP中完成。問題是,這位教練對這門課不太好(根據我的觀點,她 只是一個騙子)(或者可能對 的教學不感興趣,這是她最後一批在此之後該研究所要發送她出去了)。所以我被困在一個月到一個半月期間完成 這個項目的情況,但作爲一個天真的 這個領域的人,我感覺很難理解 決定所需的東西項目。 (另外,因爲我正在全力工作,所以我沒有足夠的時間專注於此)。自然語言處理 - 初學者項目的想法

我考慮在項目中使用Python中的NLTK工具包,原因如下。 (1)Python以易用性,快速原型設計和非常活躍的社區而着稱(考慮到我擁有非常短的時間,並且由於我是專業的C程序員,所以我需要一門可以快速學習的語言,並且很簡單使用)。

(2)NLTk有很好的評論,廣泛的文檔和一個非常活躍的社區。

所以問題是我應該採取什麼樣的項目,這樣我才能學到一些東西,並且能夠及時完成項目。 (我知道NLP幾乎沒有,甚至不知道到底語料庫是什麼... :()

所以,請建議我一些話題,我應該考慮的項目。

問候,

微內核:)

+0

你看過http://www.nltk.org/projects? – miku 2010-04-03 19:09:19

+0

是的,我看到,但問題是作爲一個初學者,我不知道哪一個會適合我(考慮到我在1個月的時間內完成它) 你可以PLZ建議什麼適合像我這樣的初學者。 – Microkernel 2010-04-04 03:55:58

+3

「我可以做什麼項目」是一種問題。 – alvas 2014-02-11 15:53:27

回答

11

最「初學者」項目旨在重新實現公知的算法,所以初學者可以通過驗證與已知的解決方案,他們的結果學習。爲此,我會推薦一些簡單的東西,比如垃圾郵件過濾器。

text|is_spam 
hi bob! how are you?|0 
what time are you coming over|0 
how to buy viagra now!|1 

接下來,你需要創建一個測試:你會通過創建培訓文件,即幾個真正電子郵件的文本複製到一個CSV文件,手動標記它們垃圾郵件或不是垃圾郵件,就像啓動文件,格式與培訓文件相同,但顯然有不同的例子。

然後,您會創建分類器/垃圾郵件過濾器。實現垃圾郵件過濾器有很多種不同的方法,但最基本的方法是簡單地計算一個字出現的頻率,其中is_spam = 0且is_spam = 1。例如,根據上面的培訓文件,「viagra」一詞與1個垃圾郵件分類相關,但與0個非垃圾郵件分類相關,所以未來可能包含單詞「viagra」的電子郵件也將被歸類爲垃圾郵件。同樣,1個垃圾郵件和1個非垃圾郵件電子郵件中都會出現「如何」一詞,因此不太可能指明明確的分類。

然後,您會在訓練文件上訓練您的分類器,並通過在測試文件上運行它來計算它的準確性。

如果上面的方法太簡單了,可以通過計算n-gram(詞組)組來增加其複雜性,或者通過首先標記詞類來增加其複雜性(例如,大量垃圾郵件通常是隨機垃圾填充關鍵字,非垃圾郵件通常有一定意義)。你可能會實現幾個不同的分類器,並比較它們的準確性。

當然,還有一點比它強,但這些方法在互聯網上都有很好的記錄,而且這是您的項目,所以您需要進一步研究它。祝你好運。

+0

非常感謝你:) 這是一個非常有趣的項目,供我考慮。 (要了解隨着時間推移的垃圾郵件模式,從過去幾個月起,我一直在收集我收到的所有垃圾郵件(將它們放在一個單獨的文件夾中)),現在我收集了超過2000多個垃圾郵件,猜測它的足夠大的培訓數據:)。現在它已經到了一些用處。哇!!! 感謝您的幫助隊友:) – Microkernel 2010-04-05 10:25:51

7

一些想法:

  • 是猜測輸入文件是寫在你會需要不同語言的一些樣品的語言的程序;維基百科是一個很好的來源。

  • 一個基於文本語料庫的程序,構造類似於語料庫中的單詞或句子。

  • 找到一件與Voynich Manuscript有趣的事情。你可以找到抄錄here

(順便說一句,「文集」僅僅是「一大堆文字」一個奇特的詞語,從Wikipedia:「一個龐大而結構化集合文本(現在通常以電子方式存儲和處理)」這個詞通常是指用於訓練和測試算法的文本,而不是它在現場遇到的未知文本。)

+0

太謝謝你了:) 第一個看起來是在我抵達(猜這是谷歌工具欄用來findout網頁的語言,並要求翻譯的幫助)。 最後一個也看起來很有趣,但在目前的情況下,我是,我不能這樣做我猜... 感謝您的建議:) – Microkernel 2010-04-05 10:30:14

0

您可以使用NLP在VOIP上記錄客戶支持呼叫的某些部分電話。用戶輸入的其他選項可以從鍵盤上獲得。有了這個系統,您就不需要支持人員了。例如 - 將密碼重置爲組織中具有基於語音授權的電子郵件ID。