2010-08-09 66 views
1

假設我對一切都一竅不通,而且我正在開始編程今天,爲了開始使用自然語言處理,我認爲你需要什麼來學習?NLP需要什麼?

我一直在努力使用一些字符串解析方法,但到目前爲止,它只是令人討厭我,使我創建醜陋的代碼。我正在尋找一些關於如何創建Remember The Milk API的新想法,以便解析用戶的輸入,以便爲不基於字段的快速數據輸入提供輸入表單,而只需簡單的一行代碼即可。

編輯:RTM是待辦事項列表系統。所以爲了輸入一個任務,你不需要輸入每個字段來填充值(任務名稱,截止日期,位置等)。你可以簡單地輸入一個短語,比如「在WhateverPlace下午2點的牙醫預約星期一」,它將解析它,併爲你填充所有字段。

我沒有任何技術限制,因爲它將成爲一個個人項目,但我更熟悉.NET世界。其實,我不確定這是語言問題,但如果有必要,我更願意學習一門新語言來完成它。

我的項目與個人理財有關,所以短語更像是「昨晚和我的女友在咖啡上消費了10美元」,它會填充位置,金額$$$,標籤和其他東西。

非常感謝您爲我提供的任何指導!

+0

我保證我試圖幫助,而不是迂腐 - NLP代表「自然語言處理」。 – 2010-08-09 22:10:26

+0

您需要更好地指定您要分析的內容。我不知道RtM解析什麼,也不知道你想解析什麼,但這不是一個NLP項目,而是一個非常小的NLP子集,可能更簡單一些。 – msw 2010-08-09 22:12:01

+0

如果您提供有關您的要求的更多詳細信息,它可能會有所幫助。例如,你是否僅限於某些編程語言?您的程序是否需要嚴格處理鬆散約束的輸入,或者您是否期望它的語法高度受限? – 2010-08-09 22:15:06

回答

1

看看NLTK,它對於對NLP感興趣的初學者程序員來說是一個很好的資源。 http://www.nltk.org/
它是用python編寫的,它是一種更簡單的編程語言。

現在,我明白你的問題,這裏是我的解決方案:

可以開發出一種受限制的詞彙,所有金額必須結束難熬$符號或任何時間必須在00:00和形式/或以AM/PM結尾,關於檢測項目,您可以使用本體對象列表,例如Open Cyc。 Open Cyc可以爲您提供所有對象的列表,如啤酒,咖啡,麪包和牛奶等,這將幫助您在短語中檢測對象。它仍然是一個非常模糊的方法。

+0

兩個簡單的問題。你是否認爲我需要一個完整的NLP方法來做類似的事情?此資源是否也適用於非英語語言? – tucaz 2010-08-09 22:02:56

+1

取決於您想實現多少深度解析。解析自由形式的文本,即使是短語也很困難,你需要某種NLP模型。但是,如果你限制用戶使用較小的詞彙量,比如短語中的數字總是時間或者任何數字後面必須跟着一個$符號,那麼我認爲你不需要NLP解決方案。這取決於...有NLP模型可用於其他語言,我認爲NLTK可能會處理至少所有歐洲語言。 – 2010-08-09 22:59:51

3

這似乎並不需要完整的NLP。簡單的基於模式的information extraction可能就足夠了。基本思想是標記文本,然後識別/分類某些關鍵字,最後識別模式/短語。

在你的例子中,標記賦予你「牙醫」,「約會」,「星期一」,「at」,「2PM」,「in」,「WhateverPlace」。你的工具會識別出「星期一」是一週中的某一天,「2PM」是一個時間等等。最後,你可以找到[at] [TIME]和[in] [Place]等模式並使用它們來填充田野。

GATE這樣的框架可能會有幫助,但即使這可能是一個比你真正需要更大的錘子。