2013-04-29 123 views
-2

您只是在考慮孤立的單個屬性,例如電影類型,並且您已經定義了特徵提取等功能,它需要一個文件作爲輸入,並返回一個字典/ FEATURESET,看起來像{「類型」:「科幻」}。每個文件可能屬於一個或多個類別箱。如何在Python中表示類標籤,用於在NLTK中訓練具有非二進制特徵值的多標籤分類器?

語境問題可以在這裏找到第6.1節:http://nltk.org/book/ch06.html

你會如何表現的實例和相應的類標籤的列表中進行訓練與非二進制特徵值?

理想地,Python實現也將很容易地在模型規格(如XML的DTD)表示這樣以後添加額外的屬性,發現它們之間的依賴關係將是一個簡單的任務。

+0

我不知所措。你在問關於文件的特徵表示嗎?還是你不確定適當的Python數據結構? – 2013-04-29 19:34:14

+0

我不確定適當的Python數據結構在選擇和提取後表示要素。 – Sean 2013-04-29 19:37:55

+0

@SeanBethard:一個事物列表通常用一個列表來表示。簡單值與字典之間的映射。你做的所有其他課程。 – 2013-04-29 19:43:48

回答

1

頁面上的例子,你鏈接到顯示list comprehensions被用來創造的2元組的列表。元組的第一項包含一個要分類的文檔,而第二個項目包含一個潛在類別。

[(list(movie_reviews.words(fileid)), category) 
...    for category in movie_reviews.categories() 
...    for fileid in movie_reviews.fileids(category)] 

這裏的電影類別的例子是一個非二進制功能的例子。運行此代碼片段將返回(fileid,category)所有排列的列表。然後他們隨機化示例中的順序,以便默認順序不影響分類器。

在從NLTK本書既DecisionTreeClassifier和NaiveBayesClassifier該頁面期待一個訓練以這種格式設置。我認爲假設大多數NLTK分類器將會期望這種格式的2元組列表是安全的。

+2

如果「非二元特徵」你的意思是不二進制類,你給的例子是'pos' VS'neg'類。由於每個元組的第一個元素都是一個單詞列表,因此這還可能會引起誤解,因爲它尚未準備好接受培訓。 – Jared 2013-04-29 21:18:19

相關問題