Demagic everything in formulas.py. NFC.
Only one file left to go!
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
import math
|
import math
|
||||||
import logging
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from conceptMapping import ConceptMapping
|
from conceptMapping import ConceptMapping
|
||||||
@ -43,23 +42,6 @@ def blur(value):
|
|||||||
return value - root
|
return value - root
|
||||||
|
|
||||||
|
|
||||||
def chooseObjectFromList(objects, attribute):
|
|
||||||
from context import context as ctx
|
|
||||||
temperature = ctx.temperature
|
|
||||||
if not objects:
|
|
||||||
return None
|
|
||||||
probabilities = []
|
|
||||||
for objekt in objects:
|
|
||||||
value = getattr(objekt, attribute)
|
|
||||||
probability = temperature.getAdjustedValue(value)
|
|
||||||
logging.info('Object: %s, value: %d, probability: %d',
|
|
||||||
objekt, value, probability)
|
|
||||||
probabilities += [probability]
|
|
||||||
i = selectListPosition(probabilities)
|
|
||||||
logging.info('Selected: %d', i)
|
|
||||||
return objects[i]
|
|
||||||
|
|
||||||
|
|
||||||
def chooseRelevantDescriptionByActivation(workspaceObject):
|
def chooseRelevantDescriptionByActivation(workspaceObject):
|
||||||
descriptions = workspaceObject.relevantDescriptions()
|
descriptions = workspaceObject.relevantDescriptions()
|
||||||
if not descriptions:
|
if not descriptions:
|
||||||
|
|||||||
@ -3,17 +3,32 @@ import logging
|
|||||||
import formulas
|
import formulas
|
||||||
|
|
||||||
|
|
||||||
|
def __chooseObjectFromList(temperature, objects, attribute):
|
||||||
|
if not objects:
|
||||||
|
return None
|
||||||
|
weights = [
|
||||||
|
temperature.getAdjustedValue(
|
||||||
|
getattr(o, attribute)
|
||||||
|
)
|
||||||
|
for o in objects
|
||||||
|
]
|
||||||
|
i = formulas.selectListPosition(weights)
|
||||||
|
return objects[i]
|
||||||
|
|
||||||
|
|
||||||
def chooseUnmodifiedObject(attribute, inObjects):
|
def chooseUnmodifiedObject(attribute, inObjects):
|
||||||
from context import context as ctx
|
from context import context as ctx
|
||||||
|
temperature = ctx.temperature
|
||||||
workspace = ctx.workspace
|
workspace = ctx.workspace
|
||||||
objects = [o for o in inObjects if o.string != workspace.modified]
|
objects = [o for o in inObjects if o.string != workspace.modified]
|
||||||
if not len(objects):
|
if not len(objects):
|
||||||
print 'no objects available in initial or target strings'
|
print 'no objects available in initial or target strings'
|
||||||
return formulas.chooseObjectFromList(objects, attribute)
|
return __chooseObjectFromList(temperature, objects, attribute)
|
||||||
|
|
||||||
|
|
||||||
def chooseNeighbor(source):
|
def chooseNeighbor(source):
|
||||||
from context import context as ctx
|
from context import context as ctx
|
||||||
|
temperature = ctx.temperature
|
||||||
workspace = ctx.workspace
|
workspace = ctx.workspace
|
||||||
objects = []
|
objects = []
|
||||||
for objekt in workspace.objects:
|
for objekt in workspace.objects:
|
||||||
@ -23,7 +38,7 @@ def chooseNeighbor(source):
|
|||||||
objects += [objekt]
|
objects += [objekt]
|
||||||
elif source.leftIndex == objekt.rightIndex + 1:
|
elif source.leftIndex == objekt.rightIndex + 1:
|
||||||
objects += [objekt]
|
objects += [objekt]
|
||||||
return formulas.chooseObjectFromList(objects, "intraStringSalience")
|
return __chooseObjectFromList(temperature, objects, "intraStringSalience")
|
||||||
|
|
||||||
|
|
||||||
def chooseDirectedNeighbor(source, direction):
|
def chooseDirectedNeighbor(source, direction):
|
||||||
@ -38,6 +53,7 @@ def chooseDirectedNeighbor(source, direction):
|
|||||||
|
|
||||||
def __chooseLeftNeighbor(source):
|
def __chooseLeftNeighbor(source):
|
||||||
from context import context as ctx
|
from context import context as ctx
|
||||||
|
temperature = ctx.temperature
|
||||||
workspace = ctx.workspace
|
workspace = ctx.workspace
|
||||||
objects = []
|
objects = []
|
||||||
for o in workspace.objects:
|
for o in workspace.objects:
|
||||||
@ -48,16 +64,17 @@ def __chooseLeftNeighbor(source):
|
|||||||
else:
|
else:
|
||||||
logging.info('%s is not on left of %s', o, source)
|
logging.info('%s is not on left of %s', o, source)
|
||||||
logging.info('Number of left objects: %s', len(objects))
|
logging.info('Number of left objects: %s', len(objects))
|
||||||
return formulas.chooseObjectFromList(objects, 'intraStringSalience')
|
return __chooseObjectFromList(temperature, objects, 'intraStringSalience')
|
||||||
|
|
||||||
|
|
||||||
def __chooseRightNeighbor(source):
|
def __chooseRightNeighbor(source):
|
||||||
from context import context as ctx
|
from context import context as ctx
|
||||||
|
temperature = ctx.temperature
|
||||||
workspace = ctx.workspace
|
workspace = ctx.workspace
|
||||||
objects = [o for o in workspace.objects
|
objects = [o for o in workspace.objects
|
||||||
if o.string == source.string
|
if o.string == source.string
|
||||||
and o.leftIndex == source.rightIndex + 1]
|
and o.leftIndex == source.rightIndex + 1]
|
||||||
return formulas.chooseObjectFromList(objects, 'intraStringSalience')
|
return __chooseObjectFromList(temperature, objects, 'intraStringSalience')
|
||||||
|
|
||||||
|
|
||||||
def chooseBondFacet(source, destination):
|
def chooseBondFacet(source, destination):
|
||||||
|
|||||||
Reference in New Issue
Block a user