Mining opinion features in customer reviews(aaai, 04, Hu and Liu)

雖然斷斷續續看了一些論文,但感覺有些時間一久就淡忘,所以計劃今後做論文筆記,就當備忘吧,這是第一篇,希望能堅持住,就像王者裏說的,“穩住,我們能贏”哈哈,歡迎交流學習,如有錯誤也歡迎指正。

此次看的論文是Bing Liu在04年在aaai上發的一篇關於從用戶評論中抽取觀點特徵(觀點對象)的文章,所謂opinion features其實就是用戶發表評論的對象,比如一個相機,那麼opinion features就是諸如相機的picture quality,price,size,battery quality等這些描述商品某些方面(aspects)的東西,該文章主要講的就是如何從用戶的評論(reviews)中提取出這些opinion features。

  • 關於爲什麼要提取這些features,其目的是爲了對商品分方面進行評估,能讓用戶快速地對商品進行了解,還是舉相機的例子:
    這裏寫圖片描述
    可以看到,我們能夠方面的看到用戶對相機的圖片質量的評價,大多數人的評價還是好的,同樣對相機的便攜性,即大小的評價也是好的佔大多數。

    PS:另外可能會問,直接問商家商品有哪些features不行嗎?這裏涉及到一些實際的情況,論文舉了4點,詳細地請看原文吧,因爲不是重點所以就不多講了。

首先上個圖,這個圖把提取features的過程表達的很清晰了,心裏先大概有個框架,之後具體可以回頭再看看。
這裏寫圖片描述

總的來說,基本的流程是這樣的:

  1. 用爬蟲從網上獲取商品及評論數據;

  2. frequent features generation(頻繁特徵的產生,後面有談到非頻繁特徵抽取的);但在此之前要先進行part-of-speech tagging(詞性標註),之所以要進行這一步,是因爲評論數據是複雜的,有些評論有直接說出評論對象,有些是隱含的,如:

    • the pictures are very clear.
    • while light, it will not easily fit in pockets.
      第一句有直接指出是picture,第二句則隱含指size,在本文作者指出隱含的特徵出現的頻率要比顯式指出的情況低的多,因此只找出顯式的這種情況,而在這種情況下,這些features基本上都是以名詞或名詞短語的形式出現的,由此也就說明了做詞性標註的原因。

    此階段前也要進行一些預處理的工作,比如stopwords, stemming, fuzzy matching等。

  3. 接下來是真正地開始抽取頻繁特徵了;用的方法就是關聯規則(association rule mining)去找出頻繁項集(這篇文章 詳細說了關聯規則方面的東西https://www.it.uu.se/edu/course/homepage/infoutv/ht08/vldb94_rj.pdf),對應到文中,項集就是一些共同出現的詞或短語的集合。頻繁項集就是那些滿足最小支持度的集合;關聯規則的挖掘則是找出滿足最小支持度和最小置信度的規則。

    文中,使用了作者在98年發在KDD上的文章提出的方法CBA(鏈接https://vvvvw.aaai.org/Papers/KDD/1998/KDD98-012.pdf,該方法是基於Apriori算法的,Apriori和FPgrowth是關聯規則經典的算法)。文中設定了最小支持度1%,找出支持度大於1%的項集作爲頻繁項集,這些項集可能就是我們要找的opinion features。

    More details:
    Apriori算法有兩步,首先找出頻繁項集,然後挖掘強關聯規則,此處我們只要用到第一步就好了。
    我們只需要找出那些包含三個詞或三個詞以下的頻繁項集,因爲一個商品的features包含的詞很少超過三個的。

    所有這些頻繁項集被抽取出來之後,就構成了candidate frequent features(候選頻繁特徵),之所以候選是後面還有剪枝步驟,這些不全是真正的opinion features。

  4. 接下來就是對上一步的candidate frequent features進行剪枝了,主要分爲兩個剪枝步驟,第一個是基於緊密度的剪枝,第二個是冗餘特徵的剪枝。下面分別對兩種方法做下說明。

    • 基於緊密度的剪枝:
      原因:在之前用關聯規則生成頻繁項集的時候,並沒有考慮item(在這裏是word)的位置,但在自然語言中,那些以一定次序一起出現的詞更可能是有意義的短語,這也就是剪枝的原因,就是關聯規則產生的頻繁項集可能有一些是meaningless的,因此要把那些features(這些features包含的詞沒有一起出現的,沒有一起出現可以簡單理解爲在原評論句中的位置隔得較遠,下面有解釋)剪掉。

      這裏先給出緊密的feature phrase的定義:
      什麼情況下認爲特徵短語是緊密的也就是是真正的feature呢?要滿足兩個條件:

      這裏寫圖片描述
      第一個說在包含特徵短語f的句子s中,f中任意兩個相鄰的詞在句子s中的間隔不超過3,那麼認爲f是compact的,就是緊密的。
      第二個說在m個包含f的句子中,如果f是緊密的出現次數爲2次或2次以上,那麼f就是緊密的特徵短語(通過考驗成爲真正的feature phrase,不是candidate了),如果沒有出現兩次是緊密的情況就把它剪掉了。

    • 冗餘特徵剪枝:
      這一步主要是爲了將那些單個詞的冗餘features剪掉,簡單理解是這些單個詞的features包含在一些feature phrase裏了;
      這裏給出純淨支持度的定義:

      Definition 2 p-support (pure support):
      p-support of feature ftr is the number of sentences that ftr appears in as a noun or noun phrase, and these sentences must contain no feature phrase that is a superset of ftr.

      這個定義就是說某個特徵ftr的純淨支持度等於ftr以名詞或名詞短語出現的句子數,並且這些句子中不能有ftr的超集,超集就是:manual code是manual的超集,另一個例子是life和battery life。

    5.至此,就得到了所有保留下來的features,這些就是最終的結果,接下來就是針對這些features進行opinion words的抽取了,再接着是根據opinion words反過來對非頻繁特徵的識別,最後是根據句子中opinion words的orientation來決定句子sentences的orientation,第5步就留着下一篇吧。

有些地方自己還有一些疑惑,如發現有出入的地方,灰常歡迎交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章