2017-04-14 50 views
1

作爲訓練數據,都餐館中XML的評價,與相關聯的目標表達的情感被朝向表達,一個類別,它是離散的標籤這屬於和極性朝向此表示:TextBlob樸素貝葉斯。選擇最高可能性

<text>With the great variety on the menu , I eat here often and never get bored .</text> 
    <Opinions> 
     <Opinion target="menu" category="FOOD#STYLE_OPTIONS" polarity="positive" from="30" to="34"/> 
    </Opinions> 

我已經使用TextBlob NB分類器將目標詞條訓練到關聯的類別。

對於測試數據,我的目標是預測目標表達式,給出一個句子和類別。我首先從句子中提取名詞和名詞短語,假設表達式將是這些的一個子集。對於句子:

"what may be interesting to most is the worst sevice attitude come from the owner of this establishment」,這些都是['sevice attitude', 'owner', 'establishment']

我想知道哪一個是最有可能給出的類別,在這種情況下是SERVICE#GENERAL我怎麼能去這

。?
+0

分類器總是執行標籤製作任務。它應該預測的信息是您在培訓期間作爲標籤提供的信息。如果要預測給定類別的單詞,則需要在訓練過程中提供該類別作爲特徵,並將每個單詞作爲標籤。 – lenz

+0

@lenz好了解。至於將每個句子的分類器限制爲僅限於我的候選集中的單詞(這些是從句子中提取的名詞短語),我該怎麼做? – user3058703

+0

我不確定我是否理解。你可以更新你的問題或發佈一個新的? – lenz

回答

0

默認情況下,TextBlob的NB分類器將文本特徵提取爲一包單詞,因此您可以簡單地連接提取的名詞列表中的單詞,然後將其與該類別連接以將結果用作訓練文本,然後使用目標作爲培訓標籤。

考慮到單詞包單獨處理單詞,你應該只用一個單詞來轉換這些名詞短語。例如,您可以放置​​' - '而不是空間('服務態度'將是'服務態度')。

例子:

from textblob.classifiers import NaiveBayesClassifier 

train = [('sevice-attitude owner establishment SERVICE#GENERAL', 'owner'), 
     ('menu variety FOOD#STYLE_OPTIONS', 'menu')] 

cl = NaiveBayesClassifier(train) 

如果你願意,你可以自定義特徵提取:https://textblob.readthedocs.io/en/dev/classifiers.html#feature-extractors