Commit ·
fad254c
1
Parent(s): 50d1bef
fix: Calculate cosine_similarity for selected code
Browse files
lib/medical_transcription/coding.ex
CHANGED
|
@@ -169,6 +169,17 @@ defmodule Medicode.Coding do
|
|
| 169 |
)
|
| 170 |
end
|
| 171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
# Retrieves code vectors referenced in past feedback for a given search text. This allows including additional codes
|
| 173 |
# for the weighting process outside of the closest 5 returned by `find_similar/2`.
|
| 174 |
defp find_for_feedback(search_vector, past_feedbacks) do
|
|
|
|
| 169 |
)
|
| 170 |
end
|
| 171 |
|
| 172 |
+
def get_cosine_similarity(vector1, vector2) do
|
| 173 |
+
query =
|
| 174 |
+
from v in CodeVector,
|
| 175 |
+
select: %{cosine_similarity: 1 - cosine_distance(^vector1, ^vector2)},
|
| 176 |
+
limit: 1
|
| 177 |
+
|
| 178 |
+
query
|
| 179 |
+
|> Repo.one()
|
| 180 |
+
|> Map.get(:cosine_similarity)
|
| 181 |
+
end
|
| 182 |
+
|
| 183 |
# Retrieves code vectors referenced in past feedback for a given search text. This allows including additional codes
|
| 184 |
# for the weighting process outside of the closest 5 returned by `find_similar/2`.
|
| 185 |
defp find_for_feedback(search_vector, past_feedbacks) do
|
lib/medical_transcription_web/components/code_select.ex
CHANGED
|
@@ -115,7 +115,8 @@ defmodule MedicodeWeb.Components.CodeSelect do
|
|
| 115 |
assigned_by_user_id: socket.assigns.current_user.id,
|
| 116 |
code_vector_id: selected_code.id,
|
| 117 |
transcription_chunk_id: socket.assigns.chunk.id,
|
| 118 |
-
cosine_similarity:
|
|
|
|
| 119 |
})
|
| 120 |
|
| 121 |
send_update(MedicodeWeb.Components.TranscriptionTextComponent,
|
|
|
|
| 115 |
assigned_by_user_id: socket.assigns.current_user.id,
|
| 116 |
code_vector_id: selected_code.id,
|
| 117 |
transcription_chunk_id: socket.assigns.chunk.id,
|
| 118 |
+
cosine_similarity:
|
| 119 |
+
Medicode.Coding.get_cosine_similarity(text_vector, selected_code.description_vector)
|
| 120 |
})
|
| 121 |
|
| 122 |
send_update(MedicodeWeb.Components.TranscriptionTextComponent,
|