[問題] 好像一個有點難度的問題= =?
假設我有以下的資料:
T1 T2 T3 T4 T5
Doc1 1 2 0 0 1
Doc2 3 1 2 3 0
Doc3 3 0 0 0 1
Doc4 2 1 0 3 0
Doc5 2 2 1 5 1
但我想計算哪幾個詞是相似的,因此我使用兩個詞之間的計算出來的分數
來決定它們之間是否相似(假設如果大於一個給定的值10的話)
1st:
由於一開始沒有決定誰與誰相似,因此,我先指定T1自己為一組==>C1={T1}
2nd:
因此,接下來會進行C1與T2的計算,計算如下:
C1 = <1, 3, 3, 2, 2>, T2 = <2, 1, 0, 1, 2>.
SIM(T2, C1) = 1*2 + 3*1 + 3*0 + 2*1 + 2*2 = 11
由於SIM(T2, C1) = 11 >10,因此T2被認定與C1同一組
所以,現在變成C1 = {T1, T2} 為一組,但由於T1,T2同一組後,要重新計算其權重值
因此,新的權重值為:
C1 = <(1+3)/2, (3+1)/2, (3+0)/2, (2+1)/2, (2+2)/2> = <3/2, 4/2, 3/2, 3/2, 4/2>
3rd:
接下來又去計算與T3的相似程度以決定是否要歸在同組
SIM(T3, C1) = 0 + 8/2 + 0 + 0 + 4/2 = 6 <10
所以T3和C1不同組
==>C1 = {T1, T2} C2 = {T3}
4th:
接下計算T4與C1 及 T4與C2的相似度計算,以決定T4要分至C1或C2去
SIM(T4, C1) = <0, 3, 0, 3, 5> . <3/2, 4/2, 3/2, 3/2, 4/2>
= 0 + 12/2 + 0 + 9/2 + 20/2 = 20.5
SIM(T4, C2) = <0, 3, 0, 3, 5> . <0, 2, 0, 0, 1>
= 0 + 6 + 0 + 0 + 5 = 11
由於皆大於10,因此取最大的,並將其分至最大的那組去
C1 = {T1, T2, T4}
C2 = {T3}
再重新計算C2的權重值,但由於C2沒加入任何的東西,因此即是T3的權重
C2 = <0, 2, 0, 0, 1>
由於C1新增了T4,因此,將T1, T2, T4的相加後除以3
C1 = <3/3, 7/3, 3/3, 6/3, 9/3>
不好意思麻煩大家了= =,寫了好久還是沒什麼頭緒出來,
好像需要用到很多不同的資料結構及技巧才能寫的出來的樣子= =
不知道是否有高手可以補充說明,要怎麼寫會比較好呢?感謝你囉^^
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.141.125
推
03/29 23:20, , 1F
03/29 23:20, 1F
推
03/29 23:59, , 2F
03/29 23:59, 2F
→
03/30 00:01, , 3F
03/30 00:01, 3F
推
03/30 00:07, , 4F
03/30 00:07, 4F
推
03/30 00:14, , 5F
03/30 00:14, 5F
→
03/30 00:15, , 6F
03/30 00:15, 6F
推
03/30 00:19, , 7F
03/30 00:19, 7F
推
03/30 00:19, , 8F
03/30 00:19, 8F
推
03/30 00:23, , 9F
03/30 00:23, 9F
推
03/30 00:26, , 10F
03/30 00:26, 10F
推
03/30 00:40, , 11F
03/30 00:40, 11F
推
03/30 01:01, , 12F
03/30 01:01, 12F
推
03/30 01:07, , 13F
03/30 01:07, 13F
→
03/30 01:09, , 14F
03/30 01:09, 14F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
11
14
Perl 近期熱門文章
PTT數位生活區 即時熱門文章