-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdistanceMeasureSearch.html
155 lines (129 loc) · 7.45 KB
/
distanceMeasureSearch.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<html>
<head>
<title>Distance Measure Search</title>
<style type="text/css">
.infoStyle{
white-space: pre;
font-family: 'Courier New', Courier, monospace;
}
.valueMonitorStyle{
font-size: x-large;
}
.teddyBody{
background-color: rgb(72, 72, 140);
}
</style>
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css">
</head>
<body class="teddyBody">
<py-env>
- paths:
- ./ndigitsets3.py
- ./gematriac.db
- ./gemNumFuncs.py
- ./alphabet.py
- ./getwordsfromdbs.py
</py-env>
<py-script>
from js import window, document, MouseEvent, localStorage, console
from pyodide import create_proxy
from gemNumFuncs import DistanceTeddyBear, getGematria
from getwordsfromdbs import getDeepMem
teddy = DistanceTeddyBear(getDeepMem())
def changeValue(evt):
inputId = evt.currentTarget.inputId
document.getElementById("showValue").innerHTML=document.getElementById(inputId).valueAsNumber
if inputId == "pointBias":
teddy.pointBias = document.getElementById(inputId).valueAsNumber
if inputId == "commonNds":
teddy.commonNds = document.getElementById(inputId).valueAsNumber
if inputId == "commonRoot":
teddy.commonRoot = document.getElementById(inputId).valueAsNumber
if inputId == "commonRoute":
teddy.commonRoute = document.getElementById(inputId).valueAsNumber
if inputId == "commonNumber":
teddy.commonNumber = document.getElementById(inputId).valueAsNumber
if inputId == "sameWord":
teddy.commonNds = document.getElementById(inputId).valueAsNumber
if inputId == "closenessWeight":
teddy.closenessWeight = document.getElementById(inputId).valueAsNumber
if inputId == "numberDistanceWeight":
teddy.commonNds = document.getElementById(inputId).valueAsNumber
if inputId == "rootDistanceWeight":
teddy.rootDistanceWeight = document.getElementById(inputId).valueAsNumber
if inputId == "maxDistance":
teddy.maxDistance = document.getElementById(inputId).valueAsNumber
return
slider = document.getElementById("pointBias")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "pointBias"
slider = document.getElementById("commonNds")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "commonNds"
slider = document.getElementById("commonRoot")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "commonRoot"
slider = document.getElementById("commonRoute")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "commonRoute"
slider = document.getElementById("commonNumber")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "commonNumber"
slider = document.getElementById("sameWord")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "sameWord"
slider = document.getElementById("closenessWeight")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "closenessWeight"
slider = document.getElementById("numberDistanceWeight")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "numberDistanceWeight"
slider = document.getElementById("rootDistanceWeight")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "rootDistanceWeight"
slider = document.getElementById("maxDistance")
slider.addEventListener("change", create_proxy(changeValue))
slider.inputId = "maxDistance"
def searchByDistance(evt):
document.getElementById("searchResults").innerHTML = teddy.getGemValsAndDistancesInRWS(document.getElementById("wordToSeek").value, document.getElementById("cipherCode").value)
return
button = document.getElementById("search")
button.addEventListener("click", create_proxy(searchByDistance))
</py-script>
<p class="infoStyle">
The distance measure is calculated as:
totalPoints = closenessWeight*(commonNds + commonRoot + commonRoute + commonNumber + sameWord + pointBias)
numberDistance = numberDistanceWeight*(abs(gematria(word1) - gematria(word2))
rootDistance = rootDistanceWeight*(abs(root(word1) - root(word2)))
distance = numberDistance + rootDistance / totalPoints
</p>
<form id="distanceTeddyBearParameters">
<label for="pointBias">Point bias (pointBias):</label>
<input type="number" id="pointBias" name="pointBias" min="0.001" max="1.0" step="0.001" value="0.001"><br>
<label for="commonNds">Points for common n-digit set (commonNds):</label>
<input type="number" id="commonNds" name="commonNds" min="0.0" max="64.0" step="0.001" value="0.001"><br>
<label for="commonRoot">Points for common root (commonRoot):</label>
<input type="number" id="commonRoot" name="commonRoot" min="0.0" max="64.0" step="0.001" value="0.3"><br>
<label for="commonRoute">Points for common route (commonRoute):</label>
<input type="number" id="commonRoute" name="commonRoute" min="0.0" max="64.0" step="0.001" value="0.001"><br>
<label for="commonNumber">Points for common number (commonNumber):</label>
<input type="number" id="commonNumber" name="commonNumber" min="0.0" max="64.0" step="0.001" value="0.001"><br>
<label for="sameWord">Points for same word (sameWord):</label>
<input type="number" id="sameWord" name="sameWord" min="0.0" max="64.0" step="0.001" value="0.001"><br>
<label for="closenessWeight">Weight on total points (closenessWeight):</label>
<input type="number" id="closenessWeight" name="closenessWeight" min="0.0" max="1.0" step="0.00001" value="0.3"><br>
<label for="numberDistanceWeight">Weight on distance of gematria values (numberDistanceWeight):</label>
<input type="number" id="numberDistanceWeight" name="numberDistanceWeight" min="0.0" max="1.0" step="0.00001" value="0.3"><br>
<label for="rootDistanceWeight">Weight on distance of roots (rootDistanceWeight):</label>
<input type="number" id="rootDistanceWeight" name="rootDistanceWeight" min="0.0" max="1.0" step="0.00001" value="0.3"><br>
<label for="maxDistance">Search threshold (maxDistance):</label>
<input type="number" id="maxDistance" name="maxDistance" min="0.0" max="1000.0" step="0.1" value="10.0"><br>
<input id="wordToSeek" value="testisana"></input>
<input id="cipherCode" value="ScaExt"></input>
</form>
<div id ="showValue" class ="valueMonitorStyle"></div>
<button id="search">Search</button>
<div id ="searchResults" class ="searchStyle"></div>
</body>
</html>