主題模型及其在文字情感分析中的應用

2021-07-10 18:09:56 字數 4084 閱讀 9823

(1)「比較了多個智慧型手機後選擇了8150,價效比還可以。另外,就是考慮到它是3.7的螢幕,大小比較合適,否則攜帶很不方便。」(京東**使用者,2011.11.25);

(2)「我以前在杭州做二手房地產,用溫州炒房客的話說:全世界房價降了,杭州的房價永遠不會降,因為他們有一道堅不可摧的屏障,那就是杭州官場的參與。」(網易網友,2011.11.25)。

一、主題模型

如何讓計算機「讀懂」文字,是自然語言處理的基礎問題。google前研究員吳軍曾在《數學之美》中指出,數學是解決資訊檢索和自然語言處理的最好工具。例如,利用向量空間模型進行文字表示,利用餘弦定理進行文字相似性計算,利用隱馬爾科夫模型進行中文分詞,利用奇異值矩陣分解技術進行文字分類等等。目前,以概率論和數理統計為基礎的主題模型是文字挖掘領域較先進的技術,並逐步應用於除傳統資訊檢索之外的關係網路資料探勘、社會**計算、文字情感分析等任務。
l vsm與tf-idf

現在,計算機還不具備人腦的結構,無法理解自然語言,所以需要首先將無結構的自然語言文字轉化為計算機可計算的特徵文字。向量空間模型(vsm)是20世紀60年代提出的一種文字表示模型,它將文件表示成特徵元素(主要是文件中出現的詞語)的集合,即d=。最簡單的計算詞權重的方式是:如果詞出現在文件中,則權值為1;沒有出現,則權值為0。這種方法的缺點在於,它沒有體現詞語在文件中出現的頻率。一般來講,詞語在文件中出現的越多,說明它對該篇文件的重要性越大(此時,「是」、「和」、「中」、「的」、「得」、「地」等幾十個停用詞,應該作為例外被去除);因此,基於詞頻統計的tf方法被提出。但是,詞語的重要性不僅隨著它在文件中出現的次數成正比增加,而且可能會隨著它在語料庫中出現的頻率成反比下降。也就是說,乙個詞語在整個語料庫中出現得越頻繁,則它對於文件的重要性越低,對文件的區分度量越差。因此,上世紀80年代,研究人員又提出tf-idf(詞頻-逆文件頻率)技術,它基於如下假設:對區別文件最有意義的詞語應該是那些在文件中出現頻率高、而在整個語料庫中的其他文件中出現頻率少的詞語。tf-idf結構簡單,容易理解,被廣泛應用。但是,這種假設並不是完全正確的,也無法捕捉文件內部與文件間的統計特徵,更不能解決同義詞/多義詞問題,因此精確度不是很高。現在的搜尋引擎對這種經典的文字降維技術進行了很多細微的優化(例如,考慮詞出現在html結構文件的位置等),使其更加準確地衡量詞語對文件的重要性。
l svd與lsa

鑑於tf-idf存在一些缺點,deerwester等人於2023年提出潛在語義分析(latent semanticanalysis)模型,用於挖掘文件與詞語之間隱含的潛在語義關聯。lsa的理論基礎是數學中的奇異值矩陣分解(svd)技術。

在現實世界中,可以用矩陣描述許多事物之間的關聯。例如,文字檢索領域的「詞-文件」權值矩陣(n個詞、m個文件),推薦系統中的「使用者-產品」評分矩陣(n個使用者,m個產品);社會化網路中的「使用者-使用者」關係矩陣(一般是n*n矩陣)等等。svd的功能是將乙個比較複雜的矩陣轉化幾個更小、更簡單矩陣的乘積:,而這些小矩陣描述了矩陣的重要特徵(feature)。其中的對角線元素為奇異值(特徵值的平方根),用於表示這個特徵的重要性程度; 、 表示與特徵值相關的特徵向量組成的矩陣,用於表示有哪些特徵。在很多情況下,前r大的奇異值之和就佔了全部奇異值之和的99%以上(r遠遠小於n、m)。為了壓縮儲存矩陣,只保留前r個對矩陣影響最大的奇異值,而較小的其他奇異值因為不重要而被刪除,這便是lsa的「降維」思想:(如下圖所示)。

在文字資訊檢索領域,矩陣c描述n個詞語與m個文件之間的已知權重關係(如文件中詞的出現次數),通過lsa將其分解為u、d、vt三個小矩陣。這三個矩陣中,u表示詞的一些特性,vt表示文件的一些特性;u的第1列大致表示每個詞出現的頻繁程度,vt的第1行近似與每篇文件中出現詞的個數成正比例,d中的奇異值表示潛在語義特徵的重要程度;將u、vt的剩餘行、列分別取出,並對它們進行聚類,可以發現文件與詞之間的潛在語義關聯。lsa的優點在於,它對詞-文件之間的關聯關係進行降維,減少了儲存規模;能夠發現詞語間的相似性、文件與文件之間的相似性、文件與詞之間的語義關聯,對近義詞和多義詞有一定的效果。其缺點在於,由於基於svd,迭代計算次數非常多,在處理海量文字資料時,文件和詞的維度將急劇增加,使svd的計算複雜度呈三次方增長。目前,開源專案mahout已經實現了基於hadoop/mapreduce的並行svd的實現。

l plsa與lda

主題模型主要有兩類:plsa和lda。如下圖所示:主題模型假設每個文件由多個主題混合而成(利用文件在所有主題上的概率分布來表示),而每個主題都是詞上的概率分布(即每個詞對主題的貢獻度),這樣文件、詞都可以對映到同乙個潛在語義空間——主題。

鑑於lsa存在一些缺點,hofmann等人於2023年提出一種基於概率的潛在語義分析(probabilistic latent semanticanalysis)模型。plsa繼承了「潛在語義」的概念,通過「統一的潛在語義空間」(也就是blei等人於2023年正式提出topic概念)來關聯詞與文件;通過引入概率統計的思想,避免了svd的複雜計算。在plsa中,各個因素(文件、潛在語義空間、詞)之間的概率分布求解是最重要的,em演算法是常用的方法。plsa也存在一些缺點:概率模型不夠完備;隨著文件和詞的個數的增加,模型變得越來越龐大;在文件層面沒有乙個統計模型;em演算法需要反覆迭代,計算量也很大。

鑑於plsa的缺點,blei等人於2023年進一步提出新的主題模型lda(latent dirichletallocation),它是乙個層次貝葉斯模型,把模型的引數也看作隨機變數,從而可以引入控制引數的引數,實現徹底的「概率化」。
是lda模型的dirichlet的先驗分布,表示整個文件集上主題的分布;表示文件d上主題的多項式分布;z表示文件d的第n個詞的主題;w表示文件d的第n個詞;n表示文件d所包含詞的個數;d表示文件集;k表示主題集;表示主題k上詞語的多項式分布;表示所有主題上次的先驗分布。事實上,去掉 和 ,lda就變成了plsa。目前,引數估計是lda最重要的任務,主要有兩種方法:gibbs抽樣法(計算量大,但相對簡單和精確)和變分貝葉斯推斷法(計算量小,精度度弱)。目前,mahout已經實現基於變分推斷法的lda模型,但還有許多功能待完善。

l 主題模型的擴充套件

目前,根據不同的應用需求,已經出現許多擴充套件的主題模型。

ø 考慮上下文資訊:例如,「上下文相關的概率潛在語義分析模型(contextual probabilistic latentsemantic analysis,cplsa)」將詞語上下文資訊引入plsa;也有研究人員考慮「地理位置」上下文資訊,從地理位置相關的文件中發現地理位置關聯的topic。

ø 主題模型的演化:引入文字語料的時間資訊,研究主題隨時間的演化,例如dtm、ctdtm、dmm、olda等模型。

ø 並行主題模型:在大規模資料處理的需求下,基於平行計算的主題模型也開始得到關注。現有的解決方案有:mallet、gpu-lda、async-lda、n.c.l、plda、y!lda、mahout、mr.lda等;其中plda、y!lda、mahout、mr.lda等基於hadoop/mapreduce框架,其他方案則基於傳統的並行程式設計模型;引數估算方面,mallet、async-lda、plda、y!lda等使用gibbs抽樣方法,mr.lda、mahout、n.c.l等使用變分貝葉斯推斷法,gpu-lda同時支援兩種方法。

ø 引入使用者評分資訊:將使用者對產品或者博文的評分資訊引入基本lda模型中,例如《supervised topicmodels》;

二、文字情感分析

按照文字的不同粒度,可將文字情感分析劃分為詞語級、句子級、篇章級和海量資料級:

(1)詞語級是基礎和前提,主要指對評價詞進行抽取,並對其情感傾向(如褒/貶、喜怒哀樂等)進行分類。這裡主要依賴兩種方式:(a)基於語料庫,即利用大語料庫的統計特性,通過觀察詞語之間的共現關係、句子的語法模式等現象,來挖掘語料庫中的評價詞語並判斷極性。(b)基於詞典:主要使用詞典中(如wordnet 或hownet)詞語之間的詞義聯絡(如同義詞、反義詞、下位詞等)來挖掘評價詞語。有些還需要考慮詞語上下文因素。

(2)句子級的任務主要包括:(a)判斷該句子是主觀句還是客觀句;(b)如果是主觀句,則對句子情感傾向進行判斷,並從中提取出與情感傾向性論述相關聯的各個要素,包括:觀點持有者、評價物件、評價物件的特徵(如**、地理位置、售後服務、油耗、價效比等)、情感特徵、評價時間。在這裡,中文分詞技術是句子級中文文字情感分析的乙個基礎,其中中科院的ictclas系統是目前最好的中文分詞工具;監督學習、無監督學習、半監督學習的各種具體方法則應用於句子情感分類。

三、主題模型在文字情感分析中的應用

四、未來

**:hao123

第12課 完全基於情感詞典的文字情感分析

下面我們通過以下幾點來介紹中文自然語言處理情感分析 中文情感分析方法簡介 基於標註好的情感詞典來計算情感值 pytreebank 繪製情感樹 股吧資料情感分類。情感傾向可認為是主體對某一客體主觀存在的內心喜惡,內在評價的一種傾向。它由兩個方面來衡量 乙個情感傾向方向,乙個是情感傾向度。目前,情感傾向...

用python實現簡單的文字情感分析

情感分析就是分析一句話說得是很主觀還是客觀描述,分析這句話表達的是積極的情緒還是消極的情緒。原理 比如這麼一句話 這手機的畫面極好,操作也比較流暢。不過拍照真的太爛了!系統也不好。情感詞 要分析一句話是積極的還是消極的,最簡單最基礎的方法就是找出句子裡面的情感詞,積極的情感詞比如 贊,好,順手,華麗...

實體詞典 情感詞典 文字情感分析的學習筆記

對文字的觀點 喜好 情感傾向進行分類 1 按情感傾向 極性劃分 比如分為正面 負面 中性情感。2 按情感程度深淺劃分 比如分為熱愛 喜歡 一般 不喜歡 厭惡。3 按情感類別來劃分 比如新聞分類。通過分析研究物件的情感分布,可了解輿情,輔助商業 決策。2.1,文件級 為觀點型文件標記整體的情感傾向 極...