|
| SenseRelate algorithm |
| 1: |
procedure SenseRelate(concepts, window, distance) |
| 2: |
score ← 0 |
| 3: |
annotation ← null
|
| 4: |
for each concept in concepts do
|
| 5: |
sum ← −1 |
| 6: |
numberterms ← 0 |
| 7: |
for
i = 0 → window.length
do
|
| 8: |
term ← window[i] |
| 9: |
cuis ← getUMLSConcepts(term) |
| 10: |
maxscore ← −1 |
| 11: |
for each cui in cuis do
|
| 12: |
similarity ← getRelatedness(cui, concept) |
| 13: |
if
similarity > maxscore
then
|
| 14: |
maxscore ← similarity
|
| 15: |
end if
|
| 16: |
end for
|
| 17: |
if
maxscore > −1 then
|
| 18: |
|
| 19: |
numberterms ← numberterms + 1 |
| 20: |
end if
|
| 21: |
end for
|
| 22: |
|
| 23: |
if
sum > score
then
|
| 24: |
score ← sum
|
| 25: |
annotation ← concept
|
| 26: |
end if
|
| 27: |
end for
|
| 28: |
return
annotation
|
|
| 29: |
end procedure |