2011-08-29 49 views
4

假設我有一個杆,它是像Java快速字符串匹配(以文本到一個類別相關聯)

  • 標題:「WEB:SEO在2011年」
  • 描述:「一個會議談論SEO中的2011" 網絡

另外,我有相關的類別的關鍵字列表:

  • 「IT」(貓) - >「網絡代徵」, 「搜索引擎優化」, 「發展」, 「網絡開發」(關鍵字)

我有多個類別(IT,藝術,體檢,文學,機械等)

我需要使用java自動升級我的帖子與這些類別和關鍵字(一種標籤),以改善未來的搜索。

上面的例子應該匹配「seo」和「web」,這樣main_category字段應該填充「IT」,並且subfield_category應該填充「seo」或「web」(或者兩者兼而有之,也不錯)

我的問題是,我能想出的唯一解決方案是waaaaay進入bruteforcing(測試所有的單詞,當一個匹配你有類別和與它關聯的關鍵字列表)它會減慢我的表演...

有沒有什麼辦法可以用更好的方式進行搜索?我也可以修改我的類別 - >關鍵字結構來做更好的事情(我仍然不知道如何...)

謝謝所有提前!

編輯:準確性不是那麼重要,因爲阿米特在評論中問道。我不需要100%的標記準確性,因爲我知道基於字符串的原始匹配我可以有一個正確的數量的正確性。

另外,我是thinkinking有關的邏輯是:看文章的標題/描述,搜索的關鍵字匹配,與類別,尋找更多的關鍵字這一類的標籤,節省3至5匹配關鍵字

+0

你有學習樣本嗎? [即一組文件,你知道他們應該如何標記]? – amit

+0

另外,你是否對標籤的準確性感興趣?或者你能否認爲標籤詞總是在主題/描述中? – amit

+0

這是最大的問題:nope :(我只是有原始文檔,沒有任何示例上下文:(準確性不重要,這就是爲什麼我決定將2-3個二級關鍵字關聯到每個帖子 –

回答

1

你可能想嘗試一種不同的方法,使用Machine Learning

算法描述:
首先,創建一個學習樣本[你肯定知道他們應該如何標記的文檔,你可以手動標記的樣品,並把它作爲輸入算法中。然後,爲這些樣品創建Bag Of Words,使用k字袋[您將需要通過基準質量來確定哪個k是最佳的,稍後我會解釋。

每個單詞都是一個'功能',接下來,對於每個新文檔,您將嘗試從學習樣本中找到哪個文檔是[nearest neighbor]。在你的Bag of Words中有大多數'詞語',這個新文檔將被標記爲最近的鄰居。

如何基準質量?
您可以通過從學習樣本中提取10%的文檔來檢查質量,並僅在剩餘的90%中學習。完成學習後,您可以通過檢查剩餘10%的準確性來評估算法的準確性。請注意,如上所述,您可能需要執行幾次操作才能找到最佳k [Bag Of Words size]。

+0

應該每個包都有相同的k?我擁有的所有關鍵詞都是由一些SEO專家或其他人提供的,而且這些列表非常不同(對於某些類別,我有20個關鍵詞,其他類別只有2-3個關鍵詞):我知道學習樣本是,在這種方法中,但是您認爲有可能實現混合解決方案嗎?我想我知道答案,因爲沒有學習基礎,ml是不可能的,對吧? –

+0

你必須有一個學習樣本。然而,這種方法不需要確定哪些詞是關鍵詞,它們將由BoW選擇。我認爲它值得嘗試,當我幾個月前用它來發現推文的正面效果時,它的效果非常好 – amit

+0

我會試一試,我必須非常仔細地計劃它,這是一個阻塞問題(不能在沒有分類的情況下在線),但我不能也花太多時間在上面......我會把這個問題留給其他的建議,但是我正在嘗試你的(如果它是唯一的,我會在2-3天內接受它,諾基亞!) –

相關問題