2010-08-11 255 views
8

你能告訴我一個簡單的例子,用http://www.nltk.org/code來判斷一個字符串是關於一個快樂還是不安的情緒?我可以使用NLTK來確定評論是正面評論還是負面評論?

+0

可能。你應該研究分類器的功能;在給定訓練集的情況下,你可以將心情分類爲正面或負面。 – 2010-08-11 23:16:03

+0

參見http://stackoverflow.com/questions/2162718/python-nltk-code-snippet-to-train-a-classifier-naive-bayes-using-feature-freque http://stackoverflow.com/questions/ 1082789/simple-sentiment-analysis http://stackoverflow.com/questions/573768/sentiment-analysis-for-twitter-in-python http://stackoverflow.com/questions/2832394/sentiment-analysis-with-nltk- python-for-sentences-using-sample-data-or-webservice – 2010-08-17 20:38:35

回答

0

不確定。

這是一項任務,遠遠超出了NLTK或任何已知或可以實際想象的語法分析器的能力。查看NLTK Book,看看它可以完成哪些任務,這遠遠不符合你陳述的目的。

作爲一種廉價的例子:

我真的使用紙張來訓練我的狗喜歡。

解析了NLTK,你可以得到

[('I', 'PRP'), ('really', 'RB'), ('enjoyed', 'VBD'), 
('using', 'VBG'), ('your', 'PRP$'), ('paper', 'NN'), 
('to', 'TO'), ('train', 'VB'), ('my', 'PRP$'), ('dog', 'NN')] 

凡解析樹會告訴我,「享受」是簡單句的中心(過去時態)動詞。享受一些東西很好。培訓一些東西通常是一件好事。名詞,名詞,比較詞等都是相對中性的。所以給這個0.90的好成績。

除了我真的是指我用紙打我的狗,或者讓它在你可能認爲不是好東西的紙上排泄。

僱用一個人進行此識別任務。

增加對那些誰想到,即使是訓練的分類是多大用處的:

分類從客戶的真正檢討語料用你喜歡上你喜歡的任何數據集訓練的任何分類這個真實的項目:

本相機在 自動模式下持續自動聚焦,發出嗡嗡聲, 無法停止。這將是真的 好,如果他們已經給了一個選項 停止這種自動聚焦。如果您希望 在 圖片上有日期和時間,則只能通過它們的 軟件從圖像的元數據中讀取圖像的日期 和時間。 所以,如果你使用你的讀卡器和 複製圖像 - 你必須再次 打開他們通過他們的軟件到 把日期和時間。在這方面, 沒有直接的方式來添加日期 和時間 - 你必須說'打印圖像'到不同的目錄,其中有 一個選項來指定日期和時間 。即使是最輕微的搖晃 完全扭曲了你的形象。室內 圖像不是很清楚。你得到 有閃光燈'開'來得到它,即使 你的房間很亮。鏡頭蓋是 真的很煩人。拍攝的電影剪輯 在 中總會有一些「噪音」 - 你無法避免。

我得到的最糟糕的情緒分類是「完全模棱兩可」,但人類可以很容易地確定這是什麼,但不是免費的。這不是一個隨機挑選的數據,而是一個沒有「仇恨」或「suxz」或類似情況而被選擇爲負面偏見的數據。

+2

另請參閱http://en.wikipedia.org/wiki/Sentiment_analysis – msw 2010-08-11 23:08:49

+2

我不會說這超出了NLTK。我的第一個想法是情緒分析,你連接到。給定一個相當大的訓練語料庫,你可以訓練一個分類器給你一個體面的「心情」的近似值。 – Cerin 2010-08-12 12:07:42

+0

@Chris S:但這不是問題的問題;它要求一個沒有的簡單例子。即使是分類器,也可以根據維基百科鏈接的各種語料庫進行真實的文本輸入。對於那些簡單的陳述仍然很麻煩的領域來說,應付細微的差別,諷刺,暗示,以及吝嗇的讚美是非常困難的。 – msw 2010-08-12 12:34:12

4

NLTK不能開箱即用,但如果您正在尋找該領域的一些相關研究,請參閱Offensive Language Detection上的這篇論文。可以採用相同的方法來檢測不冒犯/無害的評論,而是感到高興/不高興。此項目中用於文本分類的主要軟件包稱爲WEKA,並使用多個分類器(根據前面的示例進行培訓)來確定語言是否令人反感(並且此方法使用可調閾值)。

0

您正在尋找一種技術,使用機器學習分類器來確定一段文字是正面還是負面。許多研究小組(例如http://research.yahoo.com/pub/2387http://lingcog.iit.edu/doc/appraisal_sentiment_cikm.pdf)對此進行了各種不同的嘗試,我們可以在確定產品評論是正面還是負面時獲得約80%至90%的準確性。

由於您的問題很簡短,對於我來說,確定產品評論是正面還是負面與您嘗試完成的任務相同還是僅僅是相關任務並不明顯,但我建議您使用貝葉斯分類器(NLTK應該能夠處理)進行袋分類分類很簡單,然後根據精確度如何改進您的技術。

不幸的是,我從來沒有使用NLTK(也不是Python),所以我不能給你一個如何使用NLTK的代碼示例。

+0

NLTK「自然語言處理」書中包含了一個關於文本是否爲正面的例子。 OP的問題和應用對於討論和演示的算法可能太微妙了,但這只是一個開始。 – winwaed 2010-10-28 20:27:08