COMP9414:情緒分析
假設你被一家大型航空公司聘爲數據科學家。你的工做是分析Twitter提要,以肯定客戶對你的公司及其競爭對手的情緒。在這項做業中,你將得到一系列關於美國航空公司的推文。這些微博被人爲地貼上了情感標籤。情緒分爲積極、消極或中性。重要提示:不要在互聯網上發佈這些推文,由於這違反了Twitter的服務條款。您須要使用各類特性和設置來評估各類有監督的機器學習方法,以肯定哪些方法最適合該領域中的情感分類。任務包括兩個部分:編寫一系列用於情緒分析的模型,以及一份評估模型有效性的報告。編程部分包括開發用於tweet數據預處理的Python代碼,以及使用NLP和機器學習工具箱進行方法實驗。該報告包括使用各類指標評估和比較模型,並將機器學習模型與基線方法進行比較。您將使用NLTK工具箱進行基本語言預處理,scikit learn用於功能構建和評估機器學習模型。您將得到一個如何使用NLTK和scikit learn來完成此任務的示例(示例.py). 對於情緒分析基線,NLTK包括一個手工製做的(衆包)情緒分析工具,VADER,1,因爲其使用表情符號和社交媒體文本的其餘特徵來強化情緒,所以在該領域可能表現良好,然而,維德的準確性很難預測,由於:(i)衆包整體上是高度不可靠的,(ii)這個數據集可能不包括太多的情緒和其餘情緒標記的使用。數據和方法訓練數據集是一個tsv(tab分隔值)文件,其中包含許多tweet,每行有一條tweet,tweet中的換行符被刪除。tsv文件的每一行都有三個字段:實例號、tweet文本和情緒(正面、負面或中性)。測試數據集是一個與訓練數據集格式相同的tsv文件,只是代碼應該忽略情感字段。訓練和測試數據集能夠從提供的文件中提取數據集.tsv(見下文)。對於除VADER以外的全部模型,將tweet視爲單詞集合,其中單詞是由至少兩個字母、數字或符號#、@、$或%組成的字符串,並在刪除全部其餘字符後(兩個字符是scikit learn中CountVectorizer的默認最小字長)。URL應該被視爲一個空格,因此要對單詞進行分隔。請注意,刪除「垃圾郵件」字符可能會建立之前由這些字符分隔的較長單詞。使用課堂上討論的監督學習方法:決策樹(DT)、伯努利樸素貝葉斯(BNB)和多項式樸素貝葉斯(MNB)。
情緒分析實際上是一個相對很差量化的內容,每一個人的情緒隨着時間與地點的改變一直在進行這起伏變化。就像課業中提到的分析客戶對自家公司及競爭對手的情緒變化,目的是什麼呢,是尋求到客戶對二者的態度以及選擇趨向的區別,那麼就須要進行大量的平常數據羅列與歸類,在歸類的同時尋找其中的大範圍機率。這也是較難執行的部分
更多討論能夠+V:abby12468編程