2011-03-15 72 views
2

我需要做一個實驗,我是NLP中的新成員。我已經閱讀了解釋理論問題的書籍,但在實際操作中,我發現很難找到指南。所以請誰知道NLP中的任何內容,特別是實際問題告訴我,並指向正確的道路,因爲我覺得我迷路了(有用的書籍,有用的工具和有用的網站)文本挖掘從文本中提取動物類型

我想要做的是採取文本並找到特定的單詞,例如動物,如狗,貓,等等,然後我需要提取這個單詞和兩個單詞。 例如

I was watching TV with my lovely cat last night. 

提取的文本將

(my lovely cat last night) 

這將是我的訓練爲例,機牀

Q1:會有類似於我解釋大約100訓練實例以上。我用tocknizer來提取單詞,但我怎樣才能提取特定的單詞(對於我們的例子所有類型的動物),每個單詞有兩個單詞。我是否需要使用標籤,或者您的想法是什麼?第二季度:如果我有這些訓練示例,我該如何準備適當的數據集,以便將其交給機牀進行訓練?我應該在這個數據集中寫什麼來指定動物,並且我是否需要提供其他功能?以及如何將它安排在數據集中。

從你很多的話可能會幫助我很多,請不要猶豫,告訴你所知道的

回答

0

你所試圖做的是有時被稱爲「本體收購」或「自動本體」,是一個漂亮的難題。大多數方法歸結爲「類似的詞會傾向於用在類似的語境中。」這樣做的問題在於,雖然有些算法可以成功地從諸如你的數據中提取語義上有意義的關係,但從「這裏有一些統計上與你的種子術語共享一個共同分佈的術語」到「你的種子術語是動物名稱,這裏有一些其他的動物名稱「是具有挑戰性的。例如,對貓,狗,蛇,鳥的訓練可能最終會給你類似「哺乳動物,臘腸,生物,兩足動物」的結果在類似的環境中使用,但取決於你的要求,可能並不完全符合你的需要。

下面是一個研究論文的鏈接,該論文完全實現了你正在嘗試做的事情。他們描述了他們對數據表示和算法的使用方法,並至少在動物名稱問題上取得了一定程度的成功。此外,跟蹤它們的引用可能是一個富有成果的實踐..

http://www.cl.cam.ac.uk/~ah433/cluk.pdf

0

讓我首先要說,作爲一個自學成才的工程師,當我開始在NLP工作幾年前,我完全理解你的無奈。我建議你閱讀NLTK書,這是對應用NLP的精彩介紹。特別是,閱讀第3-7章,涉及處理原始文本數據以提取信息並將其用於標記。這本書是available online

至於您的具體問題:

我想,這可能是更容易創建動物的小單子,然後從包含這些動物名稱的語料庫中提取的句子。維基百科句子就是一個明顯的例子。你可以使用這種方法建立你的語料庫,因爲你已經知道每個句子中動物的名字。

// PSEUDO CODE 
Dictionary animals = ["dog","dogs,"cat","cats","pig","pigs","cow","cows","lion","lions","lioness","lionesses"]; 
String[] sentences = getWikipediaSentences(); 
for(sent: sentences){ 
    for(token: Tokenizer.getTokens(sent)){ 
    if(animals.contains(token){ 
    addSentenceToCorpus(sent) 
    } // else ignore sentence 
    } 
} 

然後,您可以在這些句子上訓練您的算法,以便您可以使用訓練好的模型提取新的動物名稱。這種方法有些警告,因爲你的「訓練數據」是人爲收集的,但它仍然是一個很好的第一次體驗。