1

我正在尋找圖書館,無論它是機器學習還是別的什麼都無所謂,哪些將幫助我對我擁有的內容進行分類。基本上我的內容是寫文章,我想知道他們中的哪一個是政治或體育bla bla,所以我有他們的分類。文件的流派分類

我正在嘗試openNLP,但無法按需要工作,還有什麼能解決我的需求嗎?

我想我需要一些機器學習與自然語言處理NLP,但我找不到什麼能做到這一點的工作。

+0

你能提供任何關鍵字,以便我們可以讓這臺機器學習 - 一個監督的。或者你想自己通過無監督或半監督進行分類?你有什麼選擇。第一還是第二呢? –

+0

監督會對我很好,所以我可以協助修改和工作人員,但任何更好的作品將幫助我開始。 –

+0

培訓語料庫有多少文件? – wcolen

回答

1

這是一個幼稚執行,但你可以進一步湊合。爲了對某個類別下的段落進行分類,首先嚐試提取特定主題的訓練數據的唯一字詞。

例如:使用NLTK來提取段落的集合,談到體育的獨特單詞並將其存儲在一組。然後對其他主題進行類似的操作並將其存儲在一組中。現在減去集合中的常用單詞,以便您現在可以找到可能代表特定主題的特定獨特單詞。

所以,現在當你輸入一個段落時,它應該給你一個熱門的輸出。 現在結合列表中的所有唯一字。

現在,當你分析一個段落,如果你發現那些話,只是把它們作爲1

一樣,分析你的第一個段落後,你可能會得到的結果爲,

[0,0,1,0,1,...,1,0,0] - >由此這表示在位置3被發現,等等

那麼訓練數據中的唯一字將這個作爲輸入和輸出作爲單編碼。 即,如果您有三個類別,並且您的第一個段落屬於第一個主題,則結果將如[1,0,0]。

收集許多輸入和結果來訓練,然後用新輸入測試它。您將在適合的主題上獲得更高的概率。

您可以神經網絡基本和正常SOFTMAX損失函數訓練它。這可能需要你一個小時的時間。

一切順利。

0

我會建議兩個方法,它取決於你的數據:

首先,如果你已經知道你要多少類,在你的文本數據,例如體育vs政治vs科學。在這種情況下,您可以使用監督學習算法(SVM,MLP,LR ..)。

在第二種情況下,如果您不知道數據中會遇到多少類,最好使用無監督學習算法LDA或LSI,它可以將具有相似主題的文檔聚類在一起,而且您只需手工檢查來自每個羣集的一些文檔併爲其分配標籤。

至於你的數據表示,你可以使用SKlearnSPARK countvectorizer來創建BoW(Word of Bag)矢量來提供給你的學習算法。

我只是補充說,如果你有很大的詞彙量,最好使用scipy sparse vectors(記憶效率更高,速度更快)。